Add tests, add docu, use subpackage.

This commit is contained in:
Stephan Schnabel 2020-08-13 18:32:41 +02:00
parent 333f3302ec
commit c4b1d1d2f6
Signed by: stephan.schnabel
GPG key ID: F74FE2422AA07290
10 changed files with 345 additions and 110 deletions

View file

@ -0,0 +1,25 @@
package io.kokuwa.micronaut.logging;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.MethodOrderer.Alphanumeric;
import org.junit.jupiter.api.TestMethodOrder;
import org.slf4j.MDC;
import io.micronaut.test.annotation.MicronautTest;
/**
* Base for tests regarding logging.
*
* @author Stephan Schnabel
*/
@MicronautTest
@TestMethodOrder(Alphanumeric.class)
public abstract class AbstractTest {
@BeforeEach
@AfterEach
void setUpMdc() {
MDC.clear();
}
}

View file

@ -0,0 +1,111 @@
package io.kokuwa.micronaut.logging.mdc;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.MDC;
import io.kokuwa.micronaut.logging.AbstractTest;
import io.micronaut.test.annotation.MicronautTest;
/**
* Test for {@link MDCTurboFilterConfigurer}.
*
* @author Stephan Schnabel
*/
@DisplayName("mdc")
@MicronautTest(environments = "test-mdc")
public class MDCTurboFilterTest extends AbstractTest {
final Logger logA = LoggerFactory.getLogger("io.kokuwa.a");
final Logger logB = LoggerFactory.getLogger("io.kokuwa.b");
final Logger logC = LoggerFactory.getLogger("io.kokuwa.c");
final Logger logOther = LoggerFactory.getLogger("org.example");
@DisplayName("no key set")
@Test
void noKeySet() {
assertFalse(logA.isDebugEnabled());
assertFalse(logA.isTraceEnabled());
assertFalse(logB.isDebugEnabled());
assertFalse(logB.isTraceEnabled());
assertFalse(logC.isDebugEnabled());
assertFalse(logC.isTraceEnabled());
assertFalse(logOther.isDebugEnabled());
assertFalse(logOther.isTraceEnabled());
}
@DisplayName("match nothing")
@Test
void matchNothing() {
MDC.put("key", "value-4");
assertFalse(logA.isDebugEnabled());
assertFalse(logA.isTraceEnabled());
assertFalse(logB.isDebugEnabled());
assertFalse(logB.isTraceEnabled());
assertFalse(logC.isDebugEnabled());
assertFalse(logC.isTraceEnabled());
assertFalse(logOther.isDebugEnabled());
assertFalse(logOther.isTraceEnabled());
}
@DisplayName("match root logger")
@Test
void matchRootLogger() {
MDC.put("key", "value-3");
assertTrue(logA.isDebugEnabled());
assertTrue(logA.isTraceEnabled());
assertTrue(logB.isDebugEnabled());
assertTrue(logB.isTraceEnabled());
assertTrue(logC.isDebugEnabled());
assertTrue(logC.isTraceEnabled());
assertFalse(logOther.isDebugEnabled());
assertFalse(logOther.isTraceEnabled());
}
@DisplayName("match single filter")
@Test
void matchSingleFilter() {
MDC.put("key", "value-1");
assertTrue(logA.isDebugEnabled());
assertFalse(logA.isTraceEnabled());
assertTrue(logB.isDebugEnabled());
assertFalse(logB.isTraceEnabled());
assertFalse(logC.isDebugEnabled());
assertFalse(logC.isTraceEnabled());
assertFalse(logOther.isDebugEnabled());
assertFalse(logOther.isTraceEnabled());
}
@DisplayName("match multiple filter")
@Test
void matchMultipleFilter() {
MDC.put("key", "value-2");
assertTrue(logA.isDebugEnabled());
assertFalse(logA.isTraceEnabled());
assertTrue(logB.isDebugEnabled());
assertTrue(logB.isTraceEnabled());
assertTrue(logC.isDebugEnabled());
assertTrue(logC.isTraceEnabled());
assertFalse(logOther.isDebugEnabled());
assertFalse(logOther.isTraceEnabled());
}
@DisplayName("match simple config")
@Test
void matchSimpleConfig() {
MDC.put("user", "foobar");
assertTrue(logA.isDebugEnabled());
assertTrue(logA.isTraceEnabled());
assertTrue(logB.isDebugEnabled());
assertTrue(logB.isTraceEnabled());
assertTrue(logC.isDebugEnabled());
assertTrue(logC.isTraceEnabled());
assertTrue(logOther.isDebugEnabled());
assertTrue(logOther.isTraceEnabled());
}
}

View file

@ -0,0 +1,2 @@
serviceName: ${project.artifactId}
serviceVersion: ${project.version}

View file

@ -0,0 +1,26 @@
logger:
mdc:
key1:
key: key
level: DEBUG
loggers:
- io.kokuwa.a
- io.kokuwa.b
values:
- value-1
- value-2
key2:
key: key
level: TRACE
loggers:
- io.kokuwa.b
- io.kokuwa.c
values:
- value-2
key:
level: TRACE
loggers:
- io.kokuwa
values:
- value-3
user: {}