use of org.eclipse.che.api.workspace.server.spi.environment.InternalRecipe in project devspaces-images by redhat-developer.
the class KubernetesEnvironmentFactoryTest method shouldCreateK8sEnvironmentWithServicesFromRecipe.
@Test
public void shouldCreateK8sEnvironmentWithServicesFromRecipe() throws Exception {
// given
Service service1 = new ServiceBuilder().withNewMetadata().withName("service1").endMetadata().build();
Service service2 = new ServiceBuilder().withNewMetadata().withName("service2").endMetadata().build();
when(k8sRecipeParser.parse(any(InternalRecipe.class))).thenReturn(asList(service1, service2));
// when
KubernetesEnvironment k8sEnv = k8sEnvFactory.doCreate(internalRecipe, emptyMap(), emptyList());
// then
assertEquals(k8sEnv.getServices().size(), 2);
assertEquals(k8sEnv.getServices().get("service1"), service1);
assertEquals(k8sEnv.getServices().get("service2"), service2);
}
use of org.eclipse.che.api.workspace.server.spi.environment.InternalRecipe in project devspaces-images by redhat-developer.
the class KubernetesEnvironmentFactoryTest method exceptionOnObjectWithNoKindSpecified.
@Test(expectedExceptions = ValidationException.class, expectedExceptionsMessageRegExp = "Environment contains object without specified kind field")
public void exceptionOnObjectWithNoKindSpecified() throws Exception {
HasMetadata object = mock(HasMetadata.class);
when(object.getKind()).thenReturn(null);
when(k8sRecipeParser.parse(any(InternalRecipe.class))).thenReturn(singletonList(object));
k8sEnvFactory.doCreate(internalRecipe, emptyMap(), emptyList());
}
use of org.eclipse.che.api.workspace.server.spi.environment.InternalRecipe in project devspaces-images by redhat-developer.
the class KubernetesEnvironmentFactoryTest method exceptionOnObjectWithNoNameSpecified.
@Test(expectedExceptions = ValidationException.class, expectedExceptionsMessageRegExp = "MyObject name must not be null")
public void exceptionOnObjectWithNoNameSpecified() throws Exception {
HasMetadata object = mock(HasMetadata.class);
when(object.getKind()).thenReturn("MyObject");
when(object.getMetadata()).thenReturn(new ObjectMetaBuilder().withName(null).build());
when(k8sRecipeParser.parse(any(InternalRecipe.class))).thenReturn(singletonList(object));
k8sEnvFactory.doCreate(internalRecipe, emptyMap(), emptyList());
}
use of org.eclipse.che.api.workspace.server.spi.environment.InternalRecipe in project devspaces-images by redhat-developer.
the class KubernetesEnvironmentFactoryTest method shouldReconfigureServiceToMatchMergedDeployment.
@Test
public void shouldReconfigureServiceToMatchMergedDeployment() throws Exception {
// given
Pod pod1 = new PodBuilder().withNewMetadata().withName("bare-pod1").withLabels(ImmutableMap.of("name", "pod1")).endMetadata().withNewSpec().endSpec().build();
Pod pod2 = new PodBuilder().withNewMetadata().withName("bare-pod2").withLabels(ImmutableMap.of("name", "pod2")).endMetadata().withNewSpec().endSpec().build();
Service service1 = new ServiceBuilder().withNewMetadata().withName("pod1-service").endMetadata().withNewSpec().withSelector(ImmutableMap.of("name", "pod1")).endSpec().build();
Service service2 = new ServiceBuilder().withNewMetadata().withName("pod2-service").endMetadata().withNewSpec().withSelector(ImmutableMap.of("name", "pod2")).endSpec().build();
when(k8sRecipeParser.parse(any(InternalRecipe.class))).thenReturn(asList(pod1, pod2, service1, service2));
Deployment merged = createEmptyDeployment("merged");
when(podMerger.merge(any())).thenReturn(merged);
// when
final KubernetesEnvironment k8sEnv = k8sEnvFactory.doCreate(internalRecipe, emptyMap(), emptyList());
// then
verify(podMerger).merge(asList(new PodData(pod1), new PodData(pod2)));
PodData mergedPodData = k8sEnv.getPodsData().get("merged");
assertEquals(mergedPodData.getMetadata().getLabels().get(DEPLOYMENT_NAME_LABEL), "merged");
assertTrue(k8sEnv.getServices().values().stream().allMatch(s -> ImmutableMap.of(DEPLOYMENT_NAME_LABEL, "merged").equals(s.getSpec().getSelector())));
}
use of org.eclipse.che.api.workspace.server.spi.environment.InternalRecipe in project devspaces-images by redhat-developer.
the class KubernetesEnvironmentFactoryTest method addPodsWhenRecipeContainsThem.
@Test
public void addPodsWhenRecipeContainsThem() throws Exception {
// given
Pod pod = new PodBuilder().withNewMetadata().withName("pod").endMetadata().withSpec(new PodSpec()).build();
when(k8sRecipeParser.parse(any(InternalRecipe.class))).thenReturn(singletonList(pod));
// when
KubernetesEnvironment k8sEnv = k8sEnvFactory.doCreate(internalRecipe, emptyMap(), emptyList());
// then
assertEquals(k8sEnv.getPodsCopy().size(), 1);
assertEquals(k8sEnv.getPodsCopy().get("pod"), pod);
assertEquals(k8sEnv.getPodsData().size(), 1);
assertEquals(k8sEnv.getPodsData().get("pod").getMetadata(), pod.getMetadata());
assertEquals(k8sEnv.getPodsData().get("pod").getSpec(), pod.getSpec());
}
Aggregations