Skip to content

Commit

Permalink
more tests, more javadocs
Browse files Browse the repository at this point in the history
Signed-off-by: Ceki Gulcu <ceki@qos.ch>
  • Loading branch information
ceki committed Dec 7, 2023
1 parent 0497273 commit ce201ea
Show file tree
Hide file tree
Showing 2 changed files with 70 additions and 1 deletion.
26 changes: 26 additions & 0 deletions slf4j-api/src/main/java/org/slf4j/MDCHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,32 @@
/**
* This class assists in the creation and removal (aka closing) of MDC entries.
*
* <p>Typical Usage example:</p>
*
* <pre>
* MDCHelper mdch = new MDCHelper();
* try {
* mdch.put("k0", "v0");
* throw new RuntimeException();
* } catch (RuntimeException e) {
* // here MDC.get("k0") would return "v0"
* } finally {
* // MDC remove "k0"
* mdch.removeSet();
* }
* </pre>
*
* <p>It is also possible to chain {@link #put} invocations. For example:</p>
* <pre>
* MDCHelper mdch = new MDCHelper();
* try {
* // assume "k0" was added to MDC at an earlier stage
* mdch.addKey("k0").put("k1", "v1").put("k2, "v2");
* } finally {
* // MDC remove "k0", "k1", "k2"
* mdch.removeSet();
* }
* </pre>
* @since 2.0.10
*/
public class MDCHelper {
Expand Down
45 changes: 44 additions & 1 deletion slf4j-api/src/test/java/org/slf4j/MDCHelperTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;

public class MDCHelperTest {

Expand All @@ -39,6 +38,10 @@ public class MDCHelperTest {

String k0 = "k0";
String v0 = "v0";
String k1 = "k1";
String v1 = "v0";
String k2 = "k2";
String v2 = "v2";
String kUnused = "kUnused";

void throwRuntimeException() {
Expand Down Expand Up @@ -69,4 +72,44 @@ public void empty() {
}
assertNull(mdcAdapter.get(k0));
}

@Test
public void addKeyTest() {
mdcAdapter.put(k0, v0);
try {
mdch.addKey(k0);
assertEquals(v0, mdcAdapter.get(k0));
assertNull(mdcAdapter.get(kUnused));
throwRuntimeException();
} catch (RuntimeException e) {
assertEquals(v0, mdcAdapter.get(k0));
} finally {
mdch.removeSet();
}
assertNull(mdcAdapter.get(k0));
}

@Test
public void combinedPut_addKeyTest() {
mdcAdapter.put(k0, v0);
try {
mdch.addKey(k0).put(k1, v1).put(k2, v2);
assertEquals(v0, mdcAdapter.get(k0));
assertEquals(v1, mdcAdapter.get(k1));
assertEquals(v2, mdcAdapter.get(k2));
assertNull(mdcAdapter.get(kUnused));
throwRuntimeException();
} catch (RuntimeException e) {
assertEquals(v0, mdcAdapter.get(k0));
assertEquals(v1, mdcAdapter.get(k1));
assertEquals(v2, mdcAdapter.get(k2));
} finally {
mdch.removeSet();
}
assertNull(mdcAdapter.get(k0));
assertNull(mdcAdapter.get(k1));
assertNull(mdcAdapter.get(k2));
}


}

0 comments on commit ce201ea

Please sign in to comment.