[DMAAP-BC] Consolidate bus controller repos
[dmaap/buscontroller.git] / dmaap-bc / src / test / java / org / onap / dmaap / dbcapi / resources / RequestTimeLogFilterTest.java
1 /*-\r
2  * ============LICENSE_START=======================================================\r
3  * org.onap.dmaap\r
4  * ================================================================================\r
5  * Copyright (C) 2019 Nokia Intellectual Property. All rights reserved.\r
6  * ================================================================================\r
7  * Licensed under the Apache License, Version 2.0 (the "License");\r
8  * you may not use this file except in compliance with the License.\r
9  * You may obtain a copy of the License at\r
10  *\r
11  *      http://www.apache.org/licenses/LICENSE-2.0\r
12  *\r
13  * Unless required by applicable law or agreed to in writing, software\r
14  * distributed under the License is distributed on an "AS IS" BASIS,\r
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
16  * See the License for the specific language governing permissions and\r
17  * limitations under the License.\r
18  * ============LICENSE_END=========================================================\r
19  */\r
20 package org.onap.dmaap.dbcapi.resources;\r
21 \r
22 import static org.junit.Assert.assertNotNull;\r
23 import static org.mockito.Matchers.anyString;\r
24 import static org.mockito.Matchers.eq;\r
25 import static org.mockito.Mockito.verify;\r
26 import static org.mockito.Mockito.when;\r
27 import com.att.eelf.configuration.EELFLogger;\r
28 import java.time.Clock;\r
29 import java.time.Instant;\r
30 import java.time.ZoneId;\r
31 import javax.ws.rs.container.ContainerRequestContext;\r
32 import javax.ws.rs.container.ContainerResponseContext;\r
33 import org.junit.Before;\r
34 import org.junit.Test;\r
35 import org.junit.runner.RunWith;\r
36 import org.mockito.Mock;\r
37 import org.mockito.runners.MockitoJUnitRunner;\r
38 \r
39 @RunWith(MockitoJUnitRunner.class)\r
40 public class RequestTimeLogFilterTest {\r
41 \r
42     private Clock clock ;\r
43     private RequestTimeLogFilter requestTimeLogFilter;\r
44     public static final long START = 1L;\r
45     @Mock\r
46     private ContainerRequestContext requestContext;\r
47     @Mock\r
48     private ContainerResponseContext responseContext;\r
49     @Mock\r
50     private EELFLogger logger;\r
51 \r
52 \r
53     @Before\r
54     public void setup() {\r
55         clock = Clock.fixed(Instant.parse("1970-01-01T00:00:10Z"), ZoneId.systemDefault());\r
56         requestTimeLogFilter = new RequestTimeLogFilter(logger, clock);\r
57     }\r
58 \r
59     @Test\r
60     public void shouldHaveDefaultConstructor() {\r
61         assertNotNull(new RequestTimeLogFilter());\r
62     }\r
63 \r
64     @Test\r
65     public void filterShouldSetStartTimestampProperty() {\r
66         requestTimeLogFilter.filter(requestContext);\r
67         verify(requestContext).setProperty("start",clock.millis());\r
68     }\r
69 \r
70     @Test\r
71     public void filterShouldPrintElapsedTime() {\r
72         when(requestContext.getProperty("start")).thenReturn(START);\r
73 \r
74         requestTimeLogFilter.filter(requestContext, responseContext);\r
75 \r
76         verify(logger).info(anyString(),eq(clock.millis() - START));\r
77     }\r
78 }