use of io.fabric8.kubernetes.client.dsl.ApiextensionsAPIGroupDSL in project strimzi by strimzi.
the class MockKube method build.
@SuppressWarnings("unchecked")
@SuppressFBWarnings("BC_UNCONFIRMED_CAST_OF_RETURN_VALUE")
public KubernetesClient build() {
if (mockClient != null) {
return mockClient;
}
configMapMockBuilder = addMockBuilder("configmaps", new MockBuilder<>(ConfigMap.class, ConfigMapList.class, MockBuilder.castClass(Resource.class), cmDb));
endpointMockBuilder = addMockBuilder("endpoints", new MockBuilder<>(Endpoints.class, EndpointsList.class, MockBuilder.castClass(Resource.class), endpointDb));
serviceMockBuilder = addMockBuilder("services", new ServiceMockBuilder(svcDb, endpointDb));
secretMockBuilder = addMockBuilder("secrets", new MockBuilder<>(Secret.class, SecretList.class, MockBuilder.castClass(Resource.class), secretDb));
serviceAccountMockBuilder = addMockBuilder("serviceaccounts", new MockBuilder<>(ServiceAccount.class, ServiceAccountList.class, MockBuilder.castClass(Resource.class), serviceAccountDb));
routeMockBuilder = addMockBuilder("routes", new MockBuilder<>(Route.class, RouteList.class, MockBuilder.castClass(Resource.class), routeDb));
buildConfigMockBuilder = addMockBuilder("buildConfigs", new MockBuilder<>(BuildConfig.class, BuildConfigList.class, MockBuilder.castClass(Resource.class), buildConfigDb));
podDisruptionBudgedMockBuilder = addMockBuilder("poddisruptionbudgets", new MockBuilder<>(PodDisruptionBudget.class, PodDisruptionBudgetList.class, MockBuilder.castClass(Resource.class), pdbDb));
podDisruptionBudgedV1Beta1MockBuilder = addMockBuilder("poddisruptionbudgetsV1Beta1", new MockBuilder<>(io.fabric8.kubernetes.api.model.policy.v1beta1.PodDisruptionBudget.class, io.fabric8.kubernetes.api.model.policy.v1beta1.PodDisruptionBudgetList.class, MockBuilder.castClass(Resource.class), pdbDbV1Beta1));
roleBindingMockBuilder = addMockBuilder("rolebindings", new MockBuilder<>(RoleBinding.class, RoleBindingList.class, MockBuilder.castClass(Resource.class), pdbRb));
roleMockBuilder = addMockBuilder("roles", new MockBuilder<>(Role.class, RoleList.class, MockBuilder.castClass(Resource.class), roleDb));
clusterRoleBindingMockBuilder = addMockBuilder("clusterrolebindings", new MockBuilder<>(ClusterRoleBinding.class, ClusterRoleBindingList.class, MockBuilder.castClass(Resource.class), pdbCrb));
networkPolicyMockBuilder = addMockBuilder("networkpolicies", new MockBuilder<>(NetworkPolicy.class, NetworkPolicyList.class, MockBuilder.castClass(Resource.class), policyDb));
ingressMockBuilder = addMockBuilder("ingresses", new MockBuilder<>(Ingress.class, IngressList.class, MockBuilder.castClass(Resource.class), ingressDb));
ingressV1Beta1MockBuilder = addMockBuilder("ingresses", new MockBuilder<>(io.fabric8.kubernetes.api.model.networking.v1beta1.Ingress.class, io.fabric8.kubernetes.api.model.networking.v1beta1.IngressList.class, MockBuilder.castClass(Resource.class), ingressV1Beta1Db));
podMockBuilder = addMockBuilder("pods", new MockBuilder<>(Pod.class, PodList.class, MockBuilder.castClass(PodResource.class), podDb));
MixedOperation<Pod, PodList, PodResource<Pod>> mockPods = podMockBuilder.build();
persistentVolumeClaimMockBuilder = addMockBuilder("persistentvolumeclaims", new MockBuilder<>(PersistentVolumeClaim.class, PersistentVolumeClaimList.class, MockBuilder.castClass(Resource.class), pvcDb));
MixedOperation<PersistentVolumeClaim, PersistentVolumeClaimList, Resource<PersistentVolumeClaim>> mockPersistentVolumeClaims = persistentVolumeClaimMockBuilder.build();
deploymentMockBuilder = addMockBuilder("deployments", new DeploymentMockBuilder(depDb, mockPods));
MixedOperation<StatefulSet, StatefulSetList, RollableScalableResource<StatefulSet>> mockSs = buildStatefulSets(podMockBuilder, mockPods, mockPersistentVolumeClaims);
// Top level group
mockClient = mock(KubernetesClient.class);
configMapMockBuilder.build2(mockClient::configMaps);
serviceMockBuilder.build2(mockClient::services);
secretMockBuilder.build2(mockClient::secrets);
serviceAccountMockBuilder.build2(mockClient::serviceAccounts);
when(mockClient.pods()).thenReturn(mockPods);
endpointMockBuilder.build2(mockClient::endpoints);
when(mockClient.persistentVolumeClaims()).thenReturn(mockPersistentVolumeClaims);
// API group
AppsAPIGroupDSL api = mock(AppsAPIGroupDSL.class);
when(mockClient.apps()).thenReturn(api);
when(api.statefulSets()).thenReturn(mockSs);
deploymentMockBuilder.build2(api::deployments);
MixedOperation<CustomResourceDefinition, CustomResourceDefinitionList, Resource<CustomResourceDefinition>> mockCrds = mock(MixedOperation.class);
// Custom Resources
if (mockedCrds != null && !mockedCrds.isEmpty()) {
NonNamespaceOperation<CustomResourceDefinition, CustomResourceDefinitionList, Resource<CustomResourceDefinition>> crds = mock(MixedOperation.class);
for (MockedCrd<?, ?, ?> mockedCrd : this.mockedCrds) {
CustomResourceDefinition crd = mockedCrd.crd;
Resource crdResource = mock(Resource.class);
when(crdResource.get()).thenReturn(crd);
when(crds.withName(crd.getMetadata().getName())).thenReturn(crdResource);
String key = crdKey(mockedCrd.crClass);
CreateOrReplaceable crdMixedOp = crdMixedOps.get(key);
if (crdMixedOp == null) {
CustomResourceMockBuilder customResourceMockBuilder = addMockBuilder(crd.getSpec().getNames().getPlural(), new CustomResourceMockBuilder<>((MockedCrd) mockedCrd));
crdMixedOp = (MixedOperation<CustomResource, ? extends KubernetesResource, Resource<CustomResource>>) customResourceMockBuilder.build();
crdMixedOps.put(key, crdMixedOp);
}
when(mockCrds.withName(eq(crd.getMetadata().getName()))).thenReturn(crdResource);
}
ApiextensionsAPIGroupDSL mockApiEx = mock(ApiextensionsAPIGroupDSL.class);
V1ApiextensionAPIGroupDSL mockv1 = mock(V1ApiextensionAPIGroupDSL.class);
when(mockClient.apiextensions()).thenReturn(mockApiEx);
when(mockApiEx.v1()).thenReturn(mockv1);
when(mockv1.customResourceDefinitions()).thenReturn(mockCrds);
mockCrs(mockClient);
}
// Network group
NetworkAPIGroupDSL network = mock(NetworkAPIGroupDSL.class);
V1NetworkAPIGroupDSL networkV1 = mock(V1NetworkAPIGroupDSL.class);
V1beta1NetworkAPIGroupDSL networkV1beta1 = mock(V1beta1NetworkAPIGroupDSL.class);
when(mockClient.network()).thenReturn(network);
when(network.v1()).thenReturn(networkV1);
when(network.v1beta1()).thenReturn(networkV1beta1);
networkPolicyMockBuilder.build2(network::networkPolicies);
ingressMockBuilder.build2(networkV1::ingresses);
ingressV1Beta1MockBuilder.build2(networkV1beta1::ingresses);
// Policy group
PolicyAPIGroupDSL policy = mock(PolicyAPIGroupDSL.class);
V1PolicyAPIGroupDSL v1policy = mock(V1PolicyAPIGroupDSL.class);
when(mockClient.policy()).thenReturn(policy);
when(policy.v1()).thenReturn(v1policy);
V1beta1PolicyAPIGroupDSL v1beta1policy = mock(V1beta1PolicyAPIGroupDSL.class);
when(mockClient.policy()).thenReturn(policy);
when(policy.v1beta1()).thenReturn(v1beta1policy);
podDisruptionBudgedMockBuilder.build2(mockClient.policy().v1()::podDisruptionBudget);
podDisruptionBudgedV1Beta1MockBuilder.build2(mockClient.policy().v1beta1()::podDisruptionBudget);
// RBAC group
RbacAPIGroupDSL rbac = mock(RbacAPIGroupDSL.class);
when(mockClient.rbac()).thenReturn(rbac);
roleBindingMockBuilder.build2(mockClient.rbac()::roleBindings);
roleMockBuilder.build2(mockClient.rbac()::roles);
clusterRoleBindingMockBuilder.buildNns(mockClient.rbac()::clusterRoleBindings);
// Openshift group
OpenShiftClient mockOpenShiftClient = mock(OpenShiftClient.class);
when(mockClient.adapt(OpenShiftClient.class)).thenReturn(mockOpenShiftClient);
routeMockBuilder.build2(mockOpenShiftClient::routes);
buildConfigMockBuilder.build2(mockOpenShiftClient::buildConfigs);
if (mockedCrds != null && !mockedCrds.isEmpty()) {
ApiextensionsAPIGroupDSL mockApiEx = mock(ApiextensionsAPIGroupDSL.class);
V1ApiextensionAPIGroupDSL mockv1 = mock(V1ApiextensionAPIGroupDSL.class);
when(mockOpenShiftClient.apiextensions()).thenReturn(mockApiEx);
when(mockApiEx.v1()).thenReturn(mockv1);
when(mockv1.customResourceDefinitions()).thenReturn(mockCrds);
mockCrs(mockOpenShiftClient);
}
doAnswer(i -> {
for (MockBuilder<?, ?, ?> a : mockBuilders.values()) {
a.assertNoWatchers();
}
return null;
}).when(mockClient).close();
return mockClient;
}
use of io.fabric8.kubernetes.client.dsl.ApiextensionsAPIGroupDSL in project strimzi-kafka-operator by strimzi.
the class MockKube method build.
@SuppressWarnings("unchecked")
@SuppressFBWarnings("BC_UNCONFIRMED_CAST_OF_RETURN_VALUE")
public KubernetesClient build() {
if (mockClient != null) {
return mockClient;
}
configMapMockBuilder = addMockBuilder("configmaps", new MockBuilder<>(ConfigMap.class, ConfigMapList.class, MockBuilder.castClass(Resource.class), cmDb));
endpointMockBuilder = addMockBuilder("endpoints", new MockBuilder<>(Endpoints.class, EndpointsList.class, MockBuilder.castClass(Resource.class), endpointDb));
serviceMockBuilder = addMockBuilder("services", new ServiceMockBuilder(svcDb, endpointDb));
secretMockBuilder = addMockBuilder("secrets", new MockBuilder<>(Secret.class, SecretList.class, MockBuilder.castClass(Resource.class), secretDb));
serviceAccountMockBuilder = addMockBuilder("serviceaccounts", new MockBuilder<>(ServiceAccount.class, ServiceAccountList.class, MockBuilder.castClass(Resource.class), serviceAccountDb));
routeMockBuilder = addMockBuilder("routes", new MockBuilder<>(Route.class, RouteList.class, MockBuilder.castClass(Resource.class), routeDb));
buildConfigMockBuilder = addMockBuilder("buildConfigs", new MockBuilder<>(BuildConfig.class, BuildConfigList.class, MockBuilder.castClass(Resource.class), buildConfigDb));
podDisruptionBudgedMockBuilder = addMockBuilder("poddisruptionbudgets", new MockBuilder<>(PodDisruptionBudget.class, PodDisruptionBudgetList.class, MockBuilder.castClass(Resource.class), pdbDb));
podDisruptionBudgedV1Beta1MockBuilder = addMockBuilder("poddisruptionbudgetsV1Beta1", new MockBuilder<>(io.fabric8.kubernetes.api.model.policy.v1beta1.PodDisruptionBudget.class, io.fabric8.kubernetes.api.model.policy.v1beta1.PodDisruptionBudgetList.class, MockBuilder.castClass(Resource.class), pdbDbV1Beta1));
roleBindingMockBuilder = addMockBuilder("rolebindings", new MockBuilder<>(RoleBinding.class, RoleBindingList.class, MockBuilder.castClass(Resource.class), pdbRb));
roleMockBuilder = addMockBuilder("roles", new MockBuilder<>(Role.class, RoleList.class, MockBuilder.castClass(Resource.class), roleDb));
clusterRoleBindingMockBuilder = addMockBuilder("clusterrolebindings", new MockBuilder<>(ClusterRoleBinding.class, ClusterRoleBindingList.class, MockBuilder.castClass(Resource.class), pdbCrb));
networkPolicyMockBuilder = addMockBuilder("networkpolicies", new MockBuilder<>(NetworkPolicy.class, NetworkPolicyList.class, MockBuilder.castClass(Resource.class), policyDb));
ingressMockBuilder = addMockBuilder("ingresses", new MockBuilder<>(Ingress.class, IngressList.class, MockBuilder.castClass(Resource.class), ingressDb));
ingressV1Beta1MockBuilder = addMockBuilder("ingresses", new MockBuilder<>(io.fabric8.kubernetes.api.model.networking.v1beta1.Ingress.class, io.fabric8.kubernetes.api.model.networking.v1beta1.IngressList.class, MockBuilder.castClass(Resource.class), ingressV1Beta1Db));
podMockBuilder = addMockBuilder("pods", new MockBuilder<>(Pod.class, PodList.class, MockBuilder.castClass(PodResource.class), podDb));
MixedOperation<Pod, PodList, PodResource<Pod>> mockPods = podMockBuilder.build();
persistentVolumeClaimMockBuilder = addMockBuilder("persistentvolumeclaims", new MockBuilder<>(PersistentVolumeClaim.class, PersistentVolumeClaimList.class, MockBuilder.castClass(Resource.class), pvcDb));
MixedOperation<PersistentVolumeClaim, PersistentVolumeClaimList, Resource<PersistentVolumeClaim>> mockPersistentVolumeClaims = persistentVolumeClaimMockBuilder.build();
deploymentMockBuilder = addMockBuilder("deployments", new DeploymentMockBuilder(depDb, mockPods));
MixedOperation<StatefulSet, StatefulSetList, RollableScalableResource<StatefulSet>> mockSs = buildStatefulSets(podMockBuilder, mockPods, mockPersistentVolumeClaims);
// Top level group
mockClient = mock(KubernetesClient.class);
configMapMockBuilder.build2(mockClient::configMaps);
serviceMockBuilder.build2(mockClient::services);
secretMockBuilder.build2(mockClient::secrets);
serviceAccountMockBuilder.build2(mockClient::serviceAccounts);
when(mockClient.pods()).thenReturn(mockPods);
endpointMockBuilder.build2(mockClient::endpoints);
when(mockClient.persistentVolumeClaims()).thenReturn(mockPersistentVolumeClaims);
// API group
AppsAPIGroupDSL api = mock(AppsAPIGroupDSL.class);
when(mockClient.apps()).thenReturn(api);
when(api.statefulSets()).thenReturn(mockSs);
deploymentMockBuilder.build2(api::deployments);
MixedOperation<CustomResourceDefinition, CustomResourceDefinitionList, Resource<CustomResourceDefinition>> mockCrds = mock(MixedOperation.class);
// Custom Resources
if (mockedCrds != null && !mockedCrds.isEmpty()) {
NonNamespaceOperation<CustomResourceDefinition, CustomResourceDefinitionList, Resource<CustomResourceDefinition>> crds = mock(MixedOperation.class);
for (MockedCrd<?, ?, ?> mockedCrd : this.mockedCrds) {
CustomResourceDefinition crd = mockedCrd.crd;
Resource crdResource = mock(Resource.class);
when(crdResource.get()).thenReturn(crd);
when(crds.withName(crd.getMetadata().getName())).thenReturn(crdResource);
String key = crdKey(mockedCrd.crClass);
CreateOrReplaceable crdMixedOp = crdMixedOps.get(key);
if (crdMixedOp == null) {
CustomResourceMockBuilder customResourceMockBuilder = addMockBuilder(crd.getSpec().getNames().getPlural(), new CustomResourceMockBuilder<>((MockedCrd) mockedCrd));
crdMixedOp = (MixedOperation<CustomResource, ? extends KubernetesResource, Resource<CustomResource>>) customResourceMockBuilder.build();
crdMixedOps.put(key, crdMixedOp);
}
when(mockCrds.withName(eq(crd.getMetadata().getName()))).thenReturn(crdResource);
}
ApiextensionsAPIGroupDSL mockApiEx = mock(ApiextensionsAPIGroupDSL.class);
V1ApiextensionAPIGroupDSL mockv1 = mock(V1ApiextensionAPIGroupDSL.class);
when(mockClient.apiextensions()).thenReturn(mockApiEx);
when(mockApiEx.v1()).thenReturn(mockv1);
when(mockv1.customResourceDefinitions()).thenReturn(mockCrds);
mockCrs(mockClient);
}
// Network group
NetworkAPIGroupDSL network = mock(NetworkAPIGroupDSL.class);
V1NetworkAPIGroupDSL networkV1 = mock(V1NetworkAPIGroupDSL.class);
V1beta1NetworkAPIGroupDSL networkV1beta1 = mock(V1beta1NetworkAPIGroupDSL.class);
when(mockClient.network()).thenReturn(network);
when(network.v1()).thenReturn(networkV1);
when(network.v1beta1()).thenReturn(networkV1beta1);
networkPolicyMockBuilder.build2(network::networkPolicies);
ingressMockBuilder.build2(networkV1::ingresses);
ingressV1Beta1MockBuilder.build2(networkV1beta1::ingresses);
// Policy group
PolicyAPIGroupDSL policy = mock(PolicyAPIGroupDSL.class);
V1PolicyAPIGroupDSL v1policy = mock(V1PolicyAPIGroupDSL.class);
when(mockClient.policy()).thenReturn(policy);
when(policy.v1()).thenReturn(v1policy);
V1beta1PolicyAPIGroupDSL v1beta1policy = mock(V1beta1PolicyAPIGroupDSL.class);
when(mockClient.policy()).thenReturn(policy);
when(policy.v1beta1()).thenReturn(v1beta1policy);
podDisruptionBudgedMockBuilder.build2(mockClient.policy().v1()::podDisruptionBudget);
podDisruptionBudgedV1Beta1MockBuilder.build2(mockClient.policy().v1beta1()::podDisruptionBudget);
// RBAC group
RbacAPIGroupDSL rbac = mock(RbacAPIGroupDSL.class);
when(mockClient.rbac()).thenReturn(rbac);
roleBindingMockBuilder.build2(mockClient.rbac()::roleBindings);
roleMockBuilder.build2(mockClient.rbac()::roles);
clusterRoleBindingMockBuilder.buildNns(mockClient.rbac()::clusterRoleBindings);
// Openshift group
OpenShiftClient mockOpenShiftClient = mock(OpenShiftClient.class);
when(mockClient.adapt(OpenShiftClient.class)).thenReturn(mockOpenShiftClient);
routeMockBuilder.build2(mockOpenShiftClient::routes);
buildConfigMockBuilder.build2(mockOpenShiftClient::buildConfigs);
if (mockedCrds != null && !mockedCrds.isEmpty()) {
ApiextensionsAPIGroupDSL mockApiEx = mock(ApiextensionsAPIGroupDSL.class);
V1ApiextensionAPIGroupDSL mockv1 = mock(V1ApiextensionAPIGroupDSL.class);
when(mockOpenShiftClient.apiextensions()).thenReturn(mockApiEx);
when(mockApiEx.v1()).thenReturn(mockv1);
when(mockv1.customResourceDefinitions()).thenReturn(mockCrds);
mockCrs(mockOpenShiftClient);
}
doAnswer(i -> {
for (MockBuilder<?, ?, ?> a : mockBuilders.values()) {
a.assertNoWatchers();
}
return null;
}).when(mockClient).close();
return mockClient;
}
Aggregations