1616 */
1717package org .apache .logging .log4j .core .appender .db ;
1818
19+ import java .util .concurrent .TimeUnit ;
20+
1921import org .apache .logging .log4j .core .Filter ;
2022import org .apache .logging .log4j .core .LogEvent ;
21- import org .junit .After ;
2223import org .junit .Test ;
23-
24- import static org .easymock .EasyMock .*;
24+ import org .junit .runner .RunWith ;
25+ import org .mockito .Mock ;
26+ import org .mockito .runners .MockitoJUnitRunner ;
2527
2628import static org .junit .Assert .*;
29+ import static org .mockito .ArgumentMatchers .same ;
30+ import static org .mockito .BDDMockito .given ;
31+ import static org .mockito .BDDMockito .then ;
32+ import static org .mockito .Mockito .mock ;
33+ import static org .mockito .Mockito .reset ;
2734
35+ @ RunWith (MockitoJUnitRunner .class )
2836public class AbstractDatabaseAppenderTest {
2937 private LocalAbstractDatabaseAppender appender ;
38+ @ Mock
3039 private LocalAbstractDatabaseManager manager ;
3140
3241 public void setUp (final String name ) {
33- this .manager = createMockBuilder (LocalAbstractDatabaseManager .class )
34- .withConstructor (String .class , int .class )
35- .withArgs (name , 0 )
36- .addMockedMethod ("close" )
37- .createStrictMock ();
38-
39- this .appender = createMockBuilder (LocalAbstractDatabaseAppender .class )
40- .withConstructor (String .class , Filter .class , boolean .class , LocalAbstractDatabaseManager .class )
41- .withArgs (name , null , true , this .manager )
42- .createStrictMock ();
43- }
44-
45- @ After
46- public void tearDown () {
47- verify (this .manager , this .appender );
42+ appender = new LocalAbstractDatabaseAppender (name , null , true , manager );
4843 }
4944
5045 @ Test
5146 public void testNameAndGetLayout01 () {
52- this . setUp ("testName01" );
47+ setUp ("testName01" );
5348
54- replay (this .manager , this .appender );
55-
56- assertEquals ("The name is not correct." , "testName01" , this .appender .getName ());
57- assertNull ("The layout should always be null." , this .appender .getLayout ());
49+ assertEquals ("The name is not correct." , "testName01" , appender .getName ());
50+ assertNull ("The layout should always be null." , appender .getLayout ());
5851 }
5952
6053 @ Test
6154 public void testNameAndGetLayout02 () {
62- this .setUp ("anotherName02" );
63-
64- replay (this .manager , this .appender );
55+ setUp ("anotherName02" );
6556
66- assertEquals ("The name is not correct." , "anotherName02" , this . appender .getName ());
67- assertNull ("The layout should always be null." , this . appender .getLayout ());
57+ assertEquals ("The name is not correct." , "anotherName02" , appender .getName ());
58+ assertNull ("The layout should always be null." , appender .getLayout ());
6859 }
6960
7061 @ Test
7162 public void testStartAndStop () throws Exception {
72- this .setUp ("name" );
73-
74- this .manager .startupInternal ();
75- expectLastCall ();
76- replay (this .manager , this .appender );
77-
78- this .appender .start ();
63+ setUp ("name" );
7964
80- verify (this .manager , this .appender );
81- reset (this .manager , this .appender );
82- this .manager .shutdownInternal ();
83- expectLastCall ().andReturn (Boolean .TRUE );
84- replay (this .manager , this .appender );
65+ appender .start ();
66+ then (manager ).should ().startupInternal ();
8567
86- this .appender .stop ();
68+ appender .stop ();
69+ then (manager ).should ().stop (0L , TimeUnit .MILLISECONDS );
8770 }
8871
8972 @ Test
9073 public void testReplaceManager () throws Exception {
91- this . setUp ("name" );
74+ setUp ("name" );
9275
93- replay (this .manager , this .appender );
76+ final LocalAbstractDatabaseManager oldManager = appender .getManager ();
77+ assertSame ("The manager should be the same." , manager , oldManager );
9478
95- final LocalAbstractDatabaseManager manager = this .appender .getManager ();
79+ final LocalAbstractDatabaseManager newManager = mock (LocalAbstractDatabaseManager .class );
80+ appender .replaceManager (newManager );
81+ then (manager ).should ().close ();
82+ then (newManager ).should ().startupInternal ();
9683
97- assertSame ("The manager should be the same." , this .manager , manager );
84+ appender .stop ();
85+ then (newManager ).should ().stop (0L , TimeUnit .MILLISECONDS );
86+ }
9887
99- verify (this .manager , this .appender );
100- reset (this .manager , this .appender );
101- this .manager .close ();
102- expectLastCall ();
103- final LocalAbstractDatabaseManager newManager = createMockBuilder (LocalAbstractDatabaseManager .class )
104- .withConstructor (String .class , int .class ).withArgs ("name" , 0 ).addMockedMethod ("close" )
105- .createStrictMock ();
106- newManager .startupInternal ();
107- expectLastCall ();
108- replay (this .manager , this .appender , newManager );
88+ @ Test
89+ public void testAppend () {
90+ setUp ("name" );
91+ given (manager .commitAndClose ()).willReturn (true );
10992
110- this .appender .replaceManager (newManager );
93+ final LogEvent event1 = mock (LogEvent .class );
94+ final LogEvent event2 = mock (LogEvent .class );
11195
112- verify (this .manager , this .appender , newManager );
113- reset (this .manager , this .appender , newManager );
114- newManager .shutdownInternal ();
115- expectLastCall ().andReturn (Boolean .TRUE );
116- replay (this .manager , this .appender , newManager );
96+ appender .append (event1 );
97+ then (manager ).should ().connectAndStart ();
98+ then (manager ).should ().writeInternal (same (event1 ));
99+ then (manager ).should ().commitAndClose ();
117100
118- this . appender . stop ( );
101+ reset ( manager );
119102
120- verify (newManager );
121- }
122-
123- @ Test
124- public void testAppend () {
125- this .setUp ("name" );
126-
127- final LogEvent event1 = createStrictMock (LogEvent .class );
128- final LogEvent event2 = createStrictMock (LogEvent .class );
129-
130- this .manager .connectAndStart ();
131- expectLastCall ();
132- this .manager .writeInternal (same (event1 ));
133- expectLastCall ();
134- this .manager .commitAndClose ();
135- expectLastCall ().andReturn (Boolean .TRUE );
136- replay (this .manager , this .appender );
137-
138- this .appender .append (event1 );
139-
140- verify (this .manager , this .appender );
141- reset (this .manager , this .appender );
142- this .manager .connectAndStart ();
143- expectLastCall ();
144- this .manager .writeInternal (same (event2 ));
145- expectLastCall ();
146- this .manager .commitAndClose ();
147- expectLastCall ().andReturn (Boolean .TRUE );
148- replay (this .manager , this .appender );
149-
150- this .appender .append (event2 );
103+ appender .append (event2 );
104+ then (manager ).should ().connectAndStart ();
105+ then (manager ).should ().writeInternal (same (event2 ));
106+ then (manager ).should ().commitAndClose ();
151107 }
152108
153109 private static abstract class LocalAbstractDatabaseManager extends AbstractDatabaseManager {
@@ -156,8 +112,7 @@ public LocalAbstractDatabaseManager(final String name, final int bufferSize) {
156112 }
157113 }
158114
159- private static abstract class LocalAbstractDatabaseAppender extends
160- AbstractDatabaseAppender <LocalAbstractDatabaseManager > {
115+ private static class LocalAbstractDatabaseAppender extends AbstractDatabaseAppender <LocalAbstractDatabaseManager > {
161116
162117 public LocalAbstractDatabaseAppender (final String name , final Filter filter , final boolean exceptionSuppressed ,
163118 final LocalAbstractDatabaseManager manager ) {
0 commit comments