@Test
public void testDoFilterInternal_normal() throws ServletException, IOException {

    // do setup test case.
    MDC.put("key0", "value0");
    // do test.
    testTarget.doFilterInternal(mockRequest, mockResponse, mockFilterChain);
    // do assert.
    // not remove existing values from MDC on before chain.
    assertThat(mockFilterChain.actualMdcContextMap.size(), is(1));
    assertThat(mockFilterChain.actualMdcContextMap.containsKey("key0"), is(
            true));
    // remove all values from MDC on after chain.
    assertThat(MDC.getCopyOfContextMap(), is(nullValue()));
}