bed5cec20e6f6126cf80c5f3fe44996a773656d3
[sdc.git] /
1 /*
2  * Copyright © 2016-2018 European Support Limited
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package org.openecomp.sdc.logging.slf4j;
18
19 import static org.testng.Assert.assertEquals;
20
21 import java.util.EnumMap;
22 import java.util.Map;
23 import org.slf4j.MDC;
24 import org.testng.annotations.AfterMethod;
25 import org.testng.annotations.Test;
26
27 /**
28  * Unit-tests context replacement on MDC.
29  *
30  * @author evitaliy
31  * @since 23 Mar 2018
32  */
33 public class ContextTest {
34
35     private static final ContextField FIELD = ContextField.SERVICE_NAME;
36     private static final String KEY = FIELD.asKey();
37     private static final String VALUE = "service-name-value";
38
39     @AfterMethod
40     public void clearMdc() {
41         MDC.clear();
42     }
43
44     @Test
45     public void mdcUpdatedWhenContextReplaced() {
46
47         MDC.put(KEY, VALUE);
48         Context context = new Context();
49         MDC.put(KEY, "modified-" + VALUE);
50
51         context.replace();
52         assertEquals(MDC.get(KEY), VALUE);
53     }
54
55     @Test
56     public void oldValueReturnedWhenContextReplaced() {
57
58         MDC.put(KEY, VALUE);
59         Map<ContextField, String> old = new Context().replace();
60         assertEquals(old.size(), 1);
61         assertEquals(old.get(FIELD), VALUE);
62     }
63
64     @Test
65     public void mdcUpdatedWhenContextReverted() {
66
67         Context context = new Context();
68         Map<ContextField, String> values = new EnumMap<>(ContextField.class);
69         values.put(FIELD, VALUE);
70         context.revert(values);
71         assertEquals(MDC.get(KEY), VALUE);
72     }
73 }