/*
* Copyright 2013, The Sporting Exchange Limited
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.betfair.cougar.tests.updatedcomponenttests.logging;
import com.betfair.testing.utils.cougar.assertions.AssertionUtils;
import com.betfair.testing.utils.cougar.beans.HttpCallBean;
import com.betfair.testing.utils.cougar.beans.HttpResponseBean;
import com.betfair.testing.utils.cougar.enums.CougarMessageContentTypeEnum;
import com.betfair.testing.utils.cougar.enums.CougarMessageProtocolRequestTypeEnum;
import com.betfair.testing.utils.cougar.enums.CougarMessageProtocolResponseTypeEnum;
import com.betfair.testing.utils.cougar.manager.CougarManager;
import com.betfair.testing.utils.cougar.manager.ServiceLogRequirement;
import org.testng.annotations.Test;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;
import java.sql.Timestamp;
import java.util.Collections;
import java.util.Map;
import static com.betfair.testing.utils.cougar.enums.CougarMessageProtocolResponseTypeEnum.RESTJSONJSON;
/**
* Ensure that jetty does not produce warnings in suppressed classes.
* These classes marked in jetty-transport-defaults.properties
*/
public class LoggingCheckJettySuppressTest {
@Test
public void SuppressInvalidCookieHeader() throws Exception {
CougarManager cougarManager = CougarManager.getInstance();
HttpCallBean callBean = cougarManager.getNewHttpCallBean();
Timestamp startTime = new Timestamp(System.currentTimeMillis());
callBean.setServiceName("baseline", "cougarBaseline");
callBean.setOperationName("stringSimpleTypeEcho", "stringEcho");
callBean.setVersion("v2");
callBean.setQueryParams(Collections.singletonMap("msg", "foo"));
callBean.setAlternativeURL("/cookie");
callBean.setHeaderParams(Collections.singletonMap("Cookie", "Invalid {[Cookie]-Name}=SomeValue"));
cougarManager.makeRestCougarHTTPCall(callBean, CougarMessageProtocolRequestTypeEnum.RESTJSON,
CougarMessageContentTypeEnum.JSON);
Map<CougarMessageProtocolResponseTypeEnum, HttpResponseBean> responses = callBean.getResponses();
AssertionUtils.multiAssertEquals("\"foo\"", responses.get(RESTJSONJSON).getResponseObject());
expectNoWarningsAfter(cougarManager, startTime);
}
@Test
public void SuppressEofWarning() throws Exception {
CougarManager cougarManager = CougarManager.getInstance();
HttpCallBean callBean = cougarManager.getNewHttpCallBean();
Timestamp startTime = new Timestamp(System.currentTimeMillis());
Socket socket = new Socket(callBean.getHost(), Integer.parseInt(callBean.getPort()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
out.println("GET /cougarBaseline/v2.8/simple/sleep?sleep=500 HTTP/1.1");
out.println("Host: " + callBean.getHost());
out.println("Accept-Encoding: gzip");
out.println();
socket.setSoLinger(true, 0); // RST
socket.close();
expectNoWarningsAfter(cougarManager, startTime);
}
private void expectNoWarningsAfter(CougarManager cougarManager, Timestamp startTime) throws IOException, InterruptedException {
cougarManager.verifyNoServiceLogEntriesAfterDate(startTime, 2000, new ServiceLogRequirement("WARN", true));
}
}