2626import static org .mockito .Mockito .mockConstruction ;
2727import static org .mockito .Mockito .mockStatic ;
2828import static org .mockito .Mockito .verify ;
29- import static org .mockito .Mockito .verifyNoMoreInteractions ;
30- import static org .mockito .Mockito .when ;
3129
3230import java .util .Set ;
3331import java .util .function .Consumer ;
3432
3533import io .fabric8 .kubernetes .client .KubernetesClient ;
3634import io .javaoperatorsdk .operator .Operator ;
37- import io .javaoperatorsdk .operator .RegisteredController ;
3835import org .junit .jupiter .api .Assertions ;
3936import org .junit .jupiter .api .Test ;
4037import org .mockito .MockedConstruction ;
4946import org .apache .spark .k8s .operator .metrics .source .KubernetesMetricsInterceptor ;
5047import org .apache .spark .k8s .operator .probe .ProbeService ;
5148import org .apache .spark .k8s .operator .reconciler .SparkAppReconciler ;
52- import org .apache .spark .k8s .operator .reconciler .SparkClusterReconciler ;
5349import org .apache .spark .k8s .operator .utils .Utils ;
5450
5551class SparkOperatorTest {
@@ -86,7 +82,6 @@ void testOperatorConstructionWithDynamicConfigEnabled() {
8682 mockUtils .when (Utils ::getWatchedNamespaces ).thenReturn (Set .of ("namespace-1" ));
8783
8884 SparkOperator sparkOperator = new SparkOperator ();
89- Assertions .assertEquals (1 , sparkOperator .registeredSparkControllers .size ());
9085 Assertions .assertEquals (2 , operatorConstruction .constructed ().size ());
9186 Assertions .assertEquals (1 , sparkAppReconcilerConstruction .constructed ().size ());
9287 Assertions .assertEquals (1 , configReconcilerConstruction .constructed ().size ());
@@ -129,7 +124,6 @@ void testOperatorConstructionWithDynamicConfigDisabled() {
129124 .when (() -> KubernetesClientFactory .buildKubernetesClient (any ()))
130125 .thenReturn (mockClient );
131126 SparkOperator sparkOperator = new SparkOperator ();
132- Assertions .assertEquals (1 , sparkOperator .registeredSparkControllers .size ());
133127 Assertions .assertEquals (1 , operatorConstruction .constructed ().size ());
134128 Assertions .assertEquals (1 , sparkAppReconcilerConstruction .constructed ().size ());
135129 Assertions .assertEquals (1 , probeServiceConstruction .constructed ().size ());
@@ -140,57 +134,4 @@ void testOperatorConstructionWithDynamicConfigDisabled() {
140134 setConfigKey (SparkOperatorConf .DYNAMIC_CONFIG_ENABLED , dynamicConfigEnabled );
141135 }
142136 }
143-
144- @ SuppressWarnings ("PMD.UnusedLocalVariable" )
145- @ Test
146- void testUpdateWatchedNamespacesWithDynamicConfigEnabled () {
147- MetricsSystem mockMetricsSystem = mock (MetricsSystem .class );
148- KubernetesClient mockClient = mock (KubernetesClient .class );
149- var registeredController = mock (RegisteredController .class );
150- when (registeredController .allowsNamespaceChanges ()).thenReturn (true );
151- boolean dynamicConfigEnabled = SparkOperatorConf .DYNAMIC_CONFIG_ENABLED .getValue ();
152-
153- try (MockedStatic <MetricsSystemFactory > mockMetricsSystemFactory =
154- mockStatic (MetricsSystemFactory .class );
155- MockedStatic <KubernetesClientFactory > mockKubernetesClientFactory =
156- mockStatic (KubernetesClientFactory .class );
157- MockedStatic <Utils > mockUtils = mockStatic (Utils .class );
158- MockedConstruction <Operator > operatorConstruction =
159- mockConstruction (
160- Operator .class ,
161- (mock , context ) -> {
162- when (mock .register (any (SparkAppReconciler .class ), any (Consumer .class )))
163- .thenReturn (registeredController );
164- when (mock .register (any (SparkClusterReconciler .class ), any (Consumer .class )))
165- .thenReturn (registeredController );
166- });
167- MockedConstruction <SparkAppReconciler > sparkAppReconcilerConstruction =
168- mockConstruction (SparkAppReconciler .class );
169- MockedConstruction <SparkOperatorConfigMapReconciler > configReconcilerConstruction =
170- mockConstruction (SparkOperatorConfigMapReconciler .class );
171- MockedConstruction <ProbeService > probeServiceConstruction =
172- mockConstruction (ProbeService .class );
173- MockedConstruction <MetricsService > metricsServiceConstruction =
174- mockConstruction (MetricsService .class );
175- MockedConstruction <KubernetesMetricsInterceptor > interceptorMockedConstruction =
176- mockConstruction (KubernetesMetricsInterceptor .class )) {
177- setConfigKey (SparkOperatorConf .DYNAMIC_CONFIG_ENABLED , true );
178- mockMetricsSystemFactory
179- .when (MetricsSystemFactory ::createMetricsSystem )
180- .thenReturn (mockMetricsSystem );
181- mockKubernetesClientFactory
182- .when (() -> KubernetesClientFactory .buildKubernetesClient (any ()))
183- .thenReturn (mockClient );
184- mockUtils .when (Utils ::getWatchedNamespaces ).thenReturn (Set .of ("namespace-1" ));
185- SparkOperator sparkOperator = new SparkOperator ();
186- Set <String > updatedNamespaces = Set .of ("namespace-1" , "namespace-2" );
187- Assertions .assertTrue (sparkOperator .updateWatchingNamespaces (updatedNamespaces ));
188- Assertions .assertEquals (updatedNamespaces , sparkOperator .watchedNamespaces );
189- verify (registeredController ).allowsNamespaceChanges ();
190- verify (registeredController ).changeNamespaces (updatedNamespaces );
191- verifyNoMoreInteractions (registeredController );
192- } finally {
193- setConfigKey (SparkOperatorConf .DYNAMIC_CONFIG_ENABLED , dynamicConfigEnabled );
194- }
195- }
196137}
0 commit comments