42
42
import com .developer .nefarious .zjoule .plugin .core .ui .IViewRender ;
43
43
import com .developer .nefarious .zjoule .plugin .core .ui .ViewListener ;
44
44
import com .developer .nefarious .zjoule .plugin .core .ui .ViewRender ;
45
+ import com .developer .nefarious .zjoule .plugin .core .utils .SystemProvider ;
45
46
46
47
public class ViewListenerTest {
47
48
@@ -64,6 +65,8 @@ public class ViewListenerTest {
64
65
private MockedStatic <ClearHandler > mockedStaticClearHandler ;
65
66
66
67
private MockedStatic <LogoutHandler > mockedStaticLogoutHandler ;
68
+
69
+ private MockedStatic <SystemProvider > mockedSystemProvider ;
67
70
68
71
@ Mock
69
72
private Shell mockShell ;
@@ -111,8 +114,8 @@ public void setUp() {
111
114
mockedStaticLoginHandler = mockStatic (LoginHandler .class );
112
115
mockedStaticClearHandler = mockStatic (ClearHandler .class );
113
116
mockedStaticLogoutHandler = mockStatic (LogoutHandler .class );
117
+ mockedSystemProvider = mockStatic (SystemProvider .class );
114
118
115
- mockedStaticBrowserFactory .when (() -> BrowserFactory .create (mockParent , SWT .WEBKIT )).thenReturn (mockBrowser );
116
119
mockedStaticSelectionListener .when (() -> SelectionListener .create (mockBrowser )).thenReturn (mockSelectionListener );
117
120
mockedStaticViewRender .when (ViewRender ::create ).thenReturn (mockViewRender );
118
121
mockedStaticPartListener .when (() -> PartListener .create (mockBrowser )).thenReturn (mockPartListener );
@@ -125,10 +128,59 @@ public void setUp() {
125
128
cut = spy (new ViewListener ());
126
129
cut .setShell (mockShell );
127
130
}
131
+
132
+ @ Test
133
+ public void shouldPlumbPartControlForWindows () {
134
+ // Arrange
135
+ mockedSystemProvider .when (SystemProvider ::getCurrentSystem ).thenReturn ("Windows 95" );
136
+ mockedStaticBrowserFactory .when (() -> BrowserFactory .create (mockParent , SWT .EDGE )).thenReturn (mockBrowser );
137
+
138
+ String mockBuildResult = "html-text" ;
139
+ when (mockViewRender .build ()).thenReturn (mockBuildResult );
140
+
141
+ IWorkbenchPartSite mockSite = mock (IWorkbenchPartSite .class );
142
+ doReturn (mockSite ).when (cut ).getSite ();
143
+
144
+ IWorkbenchPage mockPage = mock (IWorkbenchPage .class );
145
+ when (mockSite .getPage ()).thenReturn (mockPage );
146
+
147
+ IViewSite mockViewSite = mock (IViewSite .class );
148
+ doReturn (mockViewSite ).when (cut ).getViewSite ();
149
+ IActionBars mockActionBars = mock (IActionBars .class );
150
+ when (mockViewSite .getActionBars ()).thenReturn (mockActionBars );
151
+
152
+ IToolBarManager mockToolBarManager = mock (IToolBarManager .class );
153
+ when (mockActionBars .getToolBarManager ()).thenReturn (mockToolBarManager );
154
+
155
+ IMenuManager mockMenuManager = mock (IMenuManager .class );
156
+ when (mockActionBars .getMenuManager ()).thenReturn (mockMenuManager );
157
+
158
+ // Act
159
+ cut .createPartControl (mockParent );
160
+
161
+ // Assert
162
+ verify (mockBrowser ).setText (mockBuildResult );
163
+ verify (mockBrowser ).addDisposeListener (any (DisposeListener .class ));
164
+ verify (mockPage ).addPartListener (mockPartListener );
165
+ verify (mockPage ).addSelectionListener (mockSelectionListener );
166
+
167
+ ArgumentCaptor <Runnable > captor = ArgumentCaptor .forClass (Runnable .class );
168
+ verify (mockDisplay ).asyncExec (captor .capture ());
169
+ Runnable actualRunnable = captor .getValue ();
170
+ assertTrue (actualRunnable instanceof Initialization );
171
+
172
+ verify (mockToolBarManager ).add (mockLoginHandler );
173
+ verify (mockMenuManager ).add (mockClearHandler );
174
+ verify (mockMenuManager ).add (any (Separator .class ));
175
+ verify (mockMenuManager ).add (mockLogoutHandler );
176
+ }
128
177
129
178
@ Test
130
- public void shouldPlumbPartControl () {
179
+ public void shouldPlumbPartControlForOtherSystems () {
131
180
// Arrange
181
+ mockedSystemProvider .when (SystemProvider ::getCurrentSystem ).thenReturn ("Mac OS" );
182
+ mockedStaticBrowserFactory .when (() -> BrowserFactory .create (mockParent , SWT .WEBKIT )).thenReturn (mockBrowser );
183
+
132
184
String mockBuildResult = "html-text" ;
133
185
when (mockViewRender .build ()).thenReturn (mockBuildResult );
134
186
@@ -169,6 +221,7 @@ public void shouldPlumbPartControl() {
169
221
verify (mockMenuManager ).add (mockLogoutHandler );
170
222
}
171
223
224
+ //CHECKSTYLE:OFF CyclomaticComplexity
172
225
@ AfterEach
173
226
public void tearDown () {
174
227
if (mockedStaticBrowserFactory != null ) {
@@ -198,7 +251,11 @@ public void tearDown() {
198
251
if (mockedStaticLogoutHandler != null ) {
199
252
mockedStaticLogoutHandler .close ();
200
253
}
254
+ if (mockedSystemProvider != null ) {
255
+ mockedSystemProvider .close ();
256
+ }
201
257
}
258
+ //CHECKSTYLE:ON CyclomaticComplexity
202
259
203
260
@ Test
204
261
public void testDispose () {
0 commit comments