Skip to content

Commit

Permalink
Merge pull request fabric8io#2690 from rohanKanojia/pr/add-integratio…
Browse files Browse the repository at this point in the history
…ntests-for-more-resources
  • Loading branch information
fusesource-ci committed Jan 14, 2021
2 parents c9bf95d + 99541c1 commit 54561af
Show file tree
Hide file tree
Showing 48 changed files with 2,031 additions and 141 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,11 @@ public Boolean call() {
case "ReplicationController":
return isDeleted(this.client.replicationControllers().inNamespace(this.namespace).list().getItems());
case "ReplicaSet":
return isDeleted(this.client.apps().replicaSets().inNamespace(this.namespace).list().getItems());
if (this.name == null) {
return isDeleted(this.client.apps().replicaSets().inNamespace(this.namespace).list().getItems());
} else {
return isDeleted(this.client.apps().replicaSets().inNamespace(this.namespace).withName(this.name).get());
}
case "NetworkPolicy":
return isDeleted(this.client.network().networkPolicies().inNamespace(this.namespace).withName(name).get());
case "SecurityContextConstraints":
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
/**
* Copyright (C) 2015 Red Hat, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package io.fabric8.kubernetes;

import io.fabric8.commons.ClusterEntity;
import io.fabric8.kubernetes.api.model.APIService;
import io.fabric8.kubernetes.api.model.APIServiceBuilder;
import io.fabric8.kubernetes.api.model.APIServiceList;
import io.fabric8.kubernetes.client.KubernetesClient;
import org.arquillian.cube.kubernetes.impl.requirement.RequiresKubernetes;
import org.arquillian.cube.requirement.ArquillianConditionalRunner;
import org.jboss.arquillian.test.api.ArquillianResource;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;

import static junit.framework.TestCase.assertTrue;
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;

@RunWith(ArquillianConditionalRunner.class)
@RequiresKubernetes
public class APIServiceIT {
@ArquillianResource
KubernetesClient client;

@BeforeClass
public static void init() {
ClusterEntity.apply(APIServiceIT.class.getResourceAsStream("/apiservice-it.yml"));
}

@Test
public void get() {
APIService apiService = client.apiServices().withName("v1beta1.get.fabric8.io").get();
assertThat(apiService).isNotNull();
}

@Test
public void list() {
APIServiceList aAPIServiceList = client.apiServices().list();
assertNotNull(aAPIServiceList);
assertTrue(aAPIServiceList.getItems().size() >= 1);
}

@Test
public void update() {
APIService apiService = client.apiServices().withName("v1beta1.update.fabric8.io").edit(c -> new APIServiceBuilder(c)
.editOrNewMetadata().addToAnnotations("foo", "bar").endMetadata()
.build());

assertNotNull(apiService);
assertEquals("bar", apiService.getMetadata().getAnnotations().get("foo"));
}

@Test
public void delete() {
assertTrue(client.apiServices().withName("v1beta1.delete.fabric8.io").delete());
}

@AfterClass
public static void cleanup() {
ClusterEntity.remove(APIServiceIT.class.getResourceAsStream("/apiservice-it.yml"));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
/**
* Copyright (C) 2015 Red Hat, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package io.fabric8.kubernetes;

import io.fabric8.commons.ClusterEntity;
import io.fabric8.kubernetes.api.model.certificates.CertificateSigningRequest;
import io.fabric8.kubernetes.api.model.certificates.CertificateSigningRequestBuilder;
import io.fabric8.kubernetes.api.model.certificates.CertificateSigningRequestList;
import io.fabric8.kubernetes.client.KubernetesClient;
import org.arquillian.cube.kubernetes.impl.requirement.RequiresKubernetes;
import org.arquillian.cube.requirement.ArquillianConditionalRunner;
import org.jboss.arquillian.test.api.ArquillianResource;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;

import static junit.framework.TestCase.assertTrue;
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;

@RunWith(ArquillianConditionalRunner.class)
@Ignore
@RequiresKubernetes
public class CertificateSigningRequestIT {
@ArquillianResource
KubernetesClient client;

@BeforeClass
public static void init() {
ClusterEntity.apply(CertificateSigningRequestIT.class.getResourceAsStream("/certificatesigningrequest-it.yml"));
}

@Test
public void get() {
CertificateSigningRequest certificateSigningRequest = client.certificateSigningRequests().withName("csr-get").get();
assertThat(certificateSigningRequest).isNotNull();
}

@Test
public void list() {
CertificateSigningRequestList certificateSigningRequestList = client.certificateSigningRequests().list();
assertNotNull(certificateSigningRequestList);
assertTrue(certificateSigningRequestList.getItems().size() >= 1);
}

@Test
public void update() {
CertificateSigningRequest certificateSigningRequest = client.certificateSigningRequests().withName("csr-update").edit(c -> new CertificateSigningRequestBuilder(c)
.editOrNewMetadata().addToAnnotations("foo", "bar").endMetadata().build());

assertNotNull(certificateSigningRequest);
assertEquals("bar", certificateSigningRequest.getMetadata().getAnnotations().get("foo"));
}

@Test
public void delete() {
assertTrue(client.certificateSigningRequests().withName("csr-delete").delete());
}

@AfterClass
public static void cleanup() {
ClusterEntity.remove(CertificateSigningRequestIT.class.getResourceAsStream("/certificatesigningrequest-it.yml"));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
import io.fabric8.kubernetes.api.model.rbac.ClusterRoleBindingList;

import io.fabric8.kubernetes.client.KubernetesClient;
import org.arquillian.cube.kubernetes.api.Session;
import org.arquillian.cube.kubernetes.impl.requirement.RequiresKubernetes;
import org.arquillian.cube.requirement.ArquillianConditionalRunner;
import org.jboss.arquillian.test.api.ArquillianResource;
Expand All @@ -45,11 +44,6 @@ public class ClusterRoleBindingIT {
@ArquillianResource
KubernetesClient client;

@ArquillianResource
Session session;

private ClusterRoleBinding clusterRoleBinding;

@BeforeClass
public static void init() {
ClusterEntity.apply(ClusterRoleBindingIT.class.getResourceAsStream("/clusterrolebinding-it.yml"));
Expand All @@ -58,7 +52,7 @@ public static void init() {
@Test
public void get() {

clusterRoleBinding = client.rbac().clusterRoleBindings().withName("read-nodes-get").get();
ClusterRoleBinding clusterRoleBinding = client.rbac().clusterRoleBindings().withName("read-nodes-get").get();

assertNotNull(clusterRoleBinding);
assertEquals("ClusterRoleBinding", clusterRoleBinding.getKind());
Expand Down Expand Up @@ -131,7 +125,7 @@ public void list() {
@Test
public void update() {

clusterRoleBinding = client.rbac().clusterRoleBindings().withName("read-nodes-update").edit(c -> new ClusterRoleBindingBuilder(c)
ClusterRoleBinding clusterRoleBinding = client.rbac().clusterRoleBindings().withName("read-nodes-update").edit(c -> new ClusterRoleBindingBuilder(c)
.editSubject(0).withName("jane-new").endSubject().build());

assertNotNull(clusterRoleBinding);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
import io.fabric8.kubernetes.api.model.rbac.ClusterRoleBuilder;
import io.fabric8.kubernetes.api.model.rbac.ClusterRoleList;
import io.fabric8.kubernetes.client.KubernetesClient;
import org.arquillian.cube.kubernetes.api.Session;
import org.arquillian.cube.kubernetes.impl.requirement.RequiresKubernetes;
import org.arquillian.cube.requirement.ArquillianConditionalRunner;
import org.jboss.arquillian.test.api.ArquillianResource;
Expand All @@ -44,11 +43,6 @@ public class ClusterRoleIT {
@ArquillianResource
KubernetesClient client;

@ArquillianResource
Session session;

private ClusterRole clusterRole;

@BeforeClass
public static void init() {
ClusterEntity.apply(ClusterRoleIT.class.getResourceAsStream("/clusterrole-it.yml"));
Expand All @@ -57,7 +51,7 @@ public static void init() {
@Test
public void get() {

clusterRole = client.rbac().clusterRoles().withName("node-reader-get").get();
ClusterRole clusterRole = client.rbac().clusterRoles().withName("node-reader-get").get();

assertNotNull(clusterRole);
assertEquals("ClusterRole", clusterRole.getKind());
Expand Down Expand Up @@ -143,7 +137,7 @@ public void list() {
@Test
public void update() {

clusterRole = client.rbac().clusterRoles().withName("node-reader-update").edit(c -> new ClusterRoleBuilder(c)
ClusterRole clusterRole = client.rbac().clusterRoles().withName("node-reader-update").edit(c -> new ClusterRoleBuilder(c)
.editRule(0).addToApiGroups(1, "extensions").endRule().build());

assertNotNull(clusterRole);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,9 @@
package io.fabric8.kubernetes;

import io.fabric8.commons.ClusterEntity;
import io.fabric8.kubernetes.api.model.*;
import io.fabric8.kubernetes.api.model.ConfigMap;
import io.fabric8.kubernetes.api.model.ConfigMapBuilder;
import io.fabric8.kubernetes.api.model.ConfigMapList;
import io.fabric8.kubernetes.client.KubernetesClient;
import org.arquillian.cube.kubernetes.api.Session;
import org.arquillian.cube.kubernetes.impl.requirement.RequiresKubernetes;
Expand All @@ -42,8 +44,6 @@ public class ConfigMapIT {
@ArquillianResource
Session session;

private ConfigMap configMap;

@BeforeClass
public static void init() {
ClusterEntity.apply(ConfigMapIT.class.getResourceAsStream("/configmap-it.yml"));
Expand All @@ -58,7 +58,7 @@ public void load() {

@Test
public void get() {
configMap = client.configMaps().inNamespace(session.getNamespace()).withName("configmap-get").get();
ConfigMap configMap = client.configMaps().inNamespace(session.getNamespace()).withName("configmap-get").get();
assertThat(configMap).isNotNull();
}

Expand All @@ -71,7 +71,7 @@ public void list() {

@Test
public void update() {
configMap = client.configMaps().inNamespace(session.getNamespace()).withName("configmap-update").edit(c -> new ConfigMapBuilder(c)
ConfigMap configMap = client.configMaps().inNamespace(session.getNamespace()).withName("configmap-update").edit(c -> new ConfigMapBuilder(c)
.addToData("MSSQL", "Microsoft Database").build());

assertNotNull(configMap);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,6 @@ public class CronJobIT {
@ArquillianResource
Session session;

private CronJob cronJob1;

private String currentNamespace;

@BeforeClass
Expand All @@ -63,7 +61,7 @@ public void load() {
@Test
public void get() {
currentNamespace = session.getNamespace();
cronJob1 = client.batch().cronjobs().inNamespace(currentNamespace).withName("hello-get").get();
CronJob cronJob1 = client.batch().cronjobs().inNamespace(currentNamespace).withName("hello-get").get();
assertThat(cronJob1).isNotNull();
}

Expand All @@ -78,7 +76,7 @@ public void list() {
@Test
public void update() {
currentNamespace = session.getNamespace();
cronJob1 = client.batch().cronjobs().inNamespace(currentNamespace).withName("hello-update")
CronJob cronJob1 = client.batch().cronjobs().inNamespace(currentNamespace).withName("hello-update")
.edit(c -> new CronJobBuilder(c)
.editSpec()
.withSchedule("*/1 * * * *")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,32 +20,25 @@
import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionList;
import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionVersionBuilder;
import io.fabric8.kubernetes.client.KubernetesClient;
import org.arquillian.cube.kubernetes.api.Session;
import org.arquillian.cube.kubernetes.impl.requirement.RequiresKubernetes;
import org.arquillian.cube.requirement.ArquillianConditionalRunner;
import org.jboss.arquillian.test.api.ArquillianResource;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;

import java.util.Collections;

import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.assertNotNull;

@RunWith(ArquillianConditionalRunner.class)
@RequiresKubernetes
public class CustomResourceDefinitionIT {
@ArquillianResource
KubernetesClient client;

@ArquillianResource
Session session;

private CustomResourceDefinition crd1;

@Before
public void init() {
crd1 = new CustomResourceDefinitionBuilder()
public CustomResourceDefinition createCRD() {
return new CustomResourceDefinitionBuilder()
.withApiVersion("apiextensions.k8s.io/v1beta1")
.withNewMetadata()
.withName("itests.examples.fabric8.io")
Expand All @@ -67,31 +60,33 @@ public void init() {
.endNames()
.endSpec()
.build();

client.customResourceDefinitions().create(crd1);
}

@Test
public void testCrdOperations() {
// Load
CustomResourceDefinition aCustomResourceDefinition = client.customResourceDefinitions().load(getClass().getResourceAsStream("/test-crd.yml")).get();
assertThat(aCustomResourceDefinition).isNotNull();
CustomResourceDefinition crd1 = client.customResourceDefinitions().load(getClass().getResourceAsStream("/test-crd.yml")).get();
assertThat(crd1).isNotNull();

// Create
crd1 = client.apiextensions().v1beta1().customResourceDefinitions().create(createCRD());
assertNotNull(crd1);

// Get
crd1 = client.customResourceDefinitions().withName(crd1.getMetadata().getName()).get();
crd1 = client.apiextensions().v1beta1().customResourceDefinitions().withName(crd1.getMetadata().getName()).get();
assertThat(crd1).isNotNull();

// List
CustomResourceDefinitionList crdList = client.customResourceDefinitions().list();
CustomResourceDefinitionList crdList = client.apiextensions().v1beta1().customResourceDefinitions().list();
assertThat(crdList).isNotNull();
assertThat(crdList.getItems().size()).isGreaterThan(0);
assertThat(crdList.getItems().size()).isPositive();

// Update
CustomResourceDefinition updatedCrd = client.customResourceDefinitions().withName(crd1.getMetadata().getName()).edit(c -> new CustomResourceDefinitionBuilder(c).editSpec().editOrNewNames().addNewShortName("its").endNames().endSpec().build());
CustomResourceDefinition updatedCrd = client.apiextensions().v1beta1().customResourceDefinitions().withName(crd1.getMetadata().getName()).edit(c -> new CustomResourceDefinitionBuilder(c).editSpec().editOrNewNames().addNewShortName("its").endNames().endSpec().build());
assertThat(updatedCrd.getSpec().getNames().getShortNames().size()).isEqualTo(2);

// Delete
boolean bDeleted = client.customResourceDefinitions().withName(crd1.getMetadata().getName()).delete();
boolean bDeleted = client.apiextensions().v1beta1().customResourceDefinitions().withName(crd1.getMetadata().getName()).delete();
assertThat(bDeleted).isTrue();
}
}

0 comments on commit 54561af

Please sign in to comment.