2
2
3
3
import static org .junit .Assert .*;
4
4
import static org .mockito .Mockito .verifyNoMoreInteractions ;
5
- import static org .mockito .Mockito .when ;
5
+ import static org .powermock . api . mockito .PowerMockito .when ;
6
6
import static org .mockito .Mockito .verify ;
7
7
8
8
import hudson .model .AbstractBuild ;
24
24
import org .junit .runner .RunWith ;
25
25
import org .mockito .Mock ;
26
26
import org .mockito .junit .MockitoJUnitRunner ;
27
-
28
- @ RunWith (MockitoJUnitRunner .class )
27
+ import org .powermock .api .mockito .PowerMockito ;
28
+ import org .powermock .core .classloader .annotations .PowerMockIgnore ;
29
+ import org .powermock .core .classloader .annotations .PrepareForTest ;
30
+ import org .powermock .modules .junit4 .PowerMockRunner ;
31
+
32
+ @ RunWith (PowerMockRunner .class )
33
+ @ PowerMockIgnore ({"javax.crypto.*" })
34
+ @ PrepareForTest (LogstashConfiguration .class )
29
35
public class LogstashConsoloLogFilterTest {
36
+
37
+ @ Mock
38
+ private LogstashConfiguration logstashConfiguration ;
39
+
30
40
// Extension of the unit under test that avoids making calls to statics or constructors
31
41
static class MockLogstashConsoloeLogFilter extends LogstashConsoleLogFilter {
32
42
LogstashWriter writer ;
@@ -62,6 +72,10 @@ LogstashWriter getLogStashWriter(Run<?, ?> build, OutputStream errorStream) {
62
72
@ Before
63
73
public void before () throws Exception {
64
74
buildWrappers = new DescribableList <BuildWrapper ,Descriptor <BuildWrapper >>(mockProject );
75
+ PowerMockito .mockStatic (LogstashConfiguration .class );
76
+ when (LogstashConfiguration .getInstance ()).thenReturn (logstashConfiguration );
77
+ when (logstashConfiguration .isEnableGlobally ()).thenReturn (false );
78
+
65
79
when (mockWriter .isConnectionBroken ()).thenReturn (false );
66
80
when (mockBuild .getParent ()).thenReturn (mockProject );
67
81
when (mockProject .getBuildWrappersList ()).thenReturn (buildWrappers );
@@ -77,7 +91,7 @@ public void after() throws Exception {
77
91
}
78
92
79
93
@ Test
80
- public void decorateLoggerSuccess () throws Exception {
94
+ public void decorateLoggerSuccessBuildWrapper () throws Exception {
81
95
buildWrappers .add (new LogstashBuildWrapper ());
82
96
MockLogstashConsoloeLogFilter buildWrapper = new MockLogstashConsoloeLogFilter (mockWriter );
83
97
@@ -93,7 +107,7 @@ public void decorateLoggerSuccess() throws Exception {
93
107
}
94
108
95
109
@ Test
96
- public void decorateLoggerSuccessNoLogstashBuildWrapper () throws Exception {
110
+ public void decorateLoggerSuccessLogstashNotEnabled () throws Exception {
97
111
MockLogstashConsoloeLogFilter buildWrapper = new MockLogstashConsoloeLogFilter (mockWriter );
98
112
99
113
// Unit under test
@@ -122,4 +136,21 @@ public void decorateLoggerSuccessBadWriter() throws Exception {
122
136
assertEquals ("Error was not written" , "Mocked Constructor failure" , buffer .toString ());
123
137
verify (mockWriter ).isConnectionBroken ();
124
138
}
139
+
140
+ @ Test
141
+ public void decorateLoggerSuccessEnabledGlobally () throws IOException , InterruptedException
142
+ {
143
+ when (logstashConfiguration .isEnableGlobally ()).thenReturn (true );
144
+ MockLogstashConsoloeLogFilter buildWrapper = new MockLogstashConsoloeLogFilter (mockWriter );
145
+
146
+ // Unit under test
147
+ OutputStream result = buildWrapper .decorateLogger (mockBuild , buffer );
148
+
149
+ // Verify results
150
+ assertNotNull ("Result was null" , result );
151
+ assertTrue ("Result is not the right type" , result instanceof LogstashOutputStream );
152
+ assertSame ("Result has wrong writer" , mockWriter , ((LogstashOutputStream ) result ).getLogstashWriter ());
153
+ assertEquals ("Results don't match" , "" , buffer .toString ());
154
+ verify (mockWriter ).isConnectionBroken ();
155
+ }
125
156
}
0 commit comments