Skip to content

Commit 82001b5

Browse files
hulkobaninetteadhikari
authored andcommitted
JndiExtension and JndiLookupTest
1 parent 4b3bfd5 commit 82001b5

File tree

2 files changed

+58
-10
lines changed

2 files changed

+58
-10
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
/*
2+
* Licensed to the Apache Software Foundation (ASF) under one or more
3+
* contributor license agreements. See the NOTICE file distributed with
4+
* this work for additional information regarding copyright ownership.
5+
* The ASF licenses this file to you under the Apache License, Version 2.0
6+
* (the "License"); you may not use this file except in compliance with
7+
* the License. You may obtain a copy of the License at
8+
*
9+
* http://www.apache.org/licenses/LICENSE-2.0
10+
*
11+
* Unless required by applicable law or agreed to in writing, software
12+
* distributed under the License is distributed on an "AS IS" BASIS,
13+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
* See the License for the specific language governing permissions and
15+
* limitations under the License.
16+
*/
17+
package org.apache.logging.log4j.core.test.junit;
18+
19+
import java.util.Collections;
20+
import java.util.Map;
21+
import javax.naming.Context;
22+
import org.junit.jupiter.api.extension.BeforeEachCallback;
23+
import org.junit.jupiter.api.extension.ExtensionContext;
24+
import org.springframework.mock.jndi.SimpleNamingContextBuilder;
25+
26+
/**
27+
* JUnit Extension to create a mock {@link Context} and bind an object to a name.
28+
*
29+
*/
30+
public class JndiExtension implements BeforeEachCallback {
31+
32+
private final Map<String, Object> initialBindings;
33+
34+
public JndiExtension(final String name, final Object value) {
35+
this.initialBindings = Collections.singletonMap(name, value);
36+
}
37+
38+
public JndiExtension(final Map<String, Object> initialBindings) {
39+
this.initialBindings = initialBindings;
40+
}
41+
42+
public void beforeEach(ExtensionContext ctx) throws Exception {
43+
final SimpleNamingContextBuilder builder = SimpleNamingContextBuilder.emptyActivatedContextBuilder();
44+
for (final Map.Entry<String, Object> entry : initialBindings.entrySet()) {
45+
builder.bind(entry.getKey(), entry.getValue());
46+
}
47+
}
48+
}

log4j-core-test/src/test/java/org/apache/logging/log4j/core/lookup/JndiLookupTest.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,17 @@
1616
*/
1717
package org.apache.logging.log4j.core.lookup;
1818

19-
import static org.junit.Assert.assertEquals;
20-
import static org.junit.Assert.assertNull;
19+
import static org.junit.jupiter.api.Assertions.assertEquals;
20+
import static org.junit.jupiter.api.Assertions.assertNull;
2121

2222
import java.util.Arrays;
2323
import java.util.Collection;
2424
import java.util.HashMap;
2525
import java.util.Map;
26-
import org.apache.logging.log4j.core.test.junit.JndiRule;
27-
import org.junit.BeforeClass;
28-
import org.junit.Rule;
29-
import org.junit.Test;
26+
import org.apache.logging.log4j.core.test.junit.JndiExtension;
27+
import org.junit.jupiter.api.BeforeAll;
28+
import org.junit.jupiter.api.Test;
29+
import org.junit.jupiter.api.extension.RegisterExtension;
3030

3131
/**
3232
* JndiLookupTest
@@ -40,11 +40,11 @@ public class JndiLookupTest {
4040
private static final String TEST_STRINGS_NAME = "string-collection";
4141
private static final Collection<String> TEST_STRINGS_COLLECTION = Arrays.asList("one", "two", "three");
4242

43-
@Rule
44-
public JndiRule jndiRule = new JndiRule(createBindings());
43+
@RegisterExtension
44+
public final JndiExtension ext = new JndiExtension(createBindings());
4545

46-
@BeforeClass
47-
public static void beforeClass() {
46+
@BeforeAll
47+
public static void beforeAll() {
4848
System.setProperty("log4j2.enableJndiLookup", "true");
4949
}
5050

0 commit comments

Comments
 (0)