Skip to content

Commit

Permalink
refactor: ProjectLabelEnricherTest misc refactors
Browse files Browse the repository at this point in the history
  • Loading branch information
manusa committed Sep 24, 2021
1 parent 95f0539 commit d462655
Showing 1 changed file with 153 additions and 223 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -41,228 +41,158 @@
*/
public class ProjectLabelEnricherTest {

@Mocked
private JKubeEnricherContext context;

@Before
public void setupExpectations() {
new Expectations() {{
context.getGav();
result = new GroupArtifactVersion("groupId", "artifactId", "version");
}};
}

@Test
public void testCustomAppName() {

// Setup
final String APP = "my-custom-app-name";
final Properties properties = new Properties();
properties.setProperty("jkube.enricher.jkube-project-label.app", APP);
// @formatter:off
new Expectations() {{
context.getProperties(); result = properties;
}};
// @formatter:on

ProjectLabelEnricher projectEnricher = new ProjectLabelEnricher(context);

KubernetesListBuilder builder = createListWithDeploymentConfig();
projectEnricher.enrich(PlatformMode.kubernetes, builder);
KubernetesList list = builder.build();

Map<String, String> labels = list.getItems().get(0).getMetadata().getLabels();

assertNotNull(labels);
assertEquals("groupId", labels.get("group"));
assertEquals(APP, labels.get("app"));
assertEquals("version", labels.get("version"));
assertNull(labels.get("project"));

builder = new KubernetesListBuilder().withItems(new DeploymentBuilder().build());
projectEnricher.create(PlatformMode.kubernetes, builder);

Deployment deployment = (Deployment)builder.buildFirstItem();
Map<String, String> selectors = deployment.getSpec().getSelector().getMatchLabels();
assertEquals("groupId", selectors.get("group"));
assertEquals(APP, selectors.get("app"));
assertNull(selectors.get("version"));
assertNull(selectors.get("project"));
}

@Test
public void testEmptyCustomAppName() {

// Setup
final String APP = "";
final Properties properties = new Properties();
properties.setProperty("jkube.enricher.jkube-project-label.app", APP);
// @formatter:off
new Expectations() {{
context.getProperties(); result = properties;
}};
// @formatter:on

ProjectLabelEnricher projectEnricher = new ProjectLabelEnricher(context);

KubernetesListBuilder builder = createListWithDeploymentConfig();
projectEnricher.enrich(PlatformMode.kubernetes, builder);
KubernetesList list = builder.build();

Map<String, String> labels = list.getItems().get(0).getMetadata().getLabels();

assertNotNull(labels);
assertEquals("groupId", labels.get("group"));
assertEquals(APP, labels.get("app"));
assertEquals("version", labels.get("version"));
assertNull(labels.get("project"));

builder = new KubernetesListBuilder().withItems(new DeploymentBuilder().build());
projectEnricher.create(PlatformMode.kubernetes, builder);

Deployment deployment = (Deployment)builder.buildFirstItem();
Map<String, String> selectors = deployment.getSpec().getSelector().getMatchLabels();
assertEquals("groupId", selectors.get("group"));
assertEquals(APP, selectors.get("app"));
assertNull(selectors.get("version"));
assertNull(selectors.get("project"));
}

@Test
public void testDefaultAppName() {
ProjectLabelEnricher projectEnricher = new ProjectLabelEnricher(context);

KubernetesListBuilder builder = createListWithDeploymentConfig();
projectEnricher.enrich(PlatformMode.kubernetes, builder);
KubernetesList list = builder.build();

Map<String, String> labels = list.getItems().get(0).getMetadata().getLabels();

assertNotNull(labels);
assertEquals("groupId", labels.get("group"));
assertEquals("artifactId", labels.get("app"));
assertEquals("version", labels.get("version"));
assertNull(labels.get("project"));

builder = new KubernetesListBuilder().withItems(new DeploymentBuilder().build());
projectEnricher.create(PlatformMode.kubernetes, builder);

Deployment deployment = (Deployment)builder.buildFirstItem();
Map<String, String> selectors = deployment.getSpec().getSelector().getMatchLabels();
assertEquals("groupId", selectors.get("group"));
assertEquals("artifactId", selectors.get("app"));
assertNull(selectors.get("version"));
assertNull(selectors.get("project"));
}

@Test
public void testCustomProvider() {

// Setup
final String PROVIDER = "my-custom-provider";
final Properties properties = new Properties();
properties.setProperty("jkube.enricher.jkube-project-label.provider", PROVIDER);
// @formatter:off
new Expectations() {{
context.getProperties(); result = properties;
}};
// @formatter:on

ProjectLabelEnricher projectEnricher = new ProjectLabelEnricher(context);

KubernetesListBuilder builder = createListWithDeploymentConfig();
projectEnricher.enrich(PlatformMode.kubernetes, builder);
KubernetesList list = builder.build();

Map<String, String> labels = list.getItems().get(0).getMetadata().getLabels();

assertNotNull(labels);
assertEquals("groupId", labels.get("group"));
assertEquals(PROVIDER, labels.get("provider"));
assertEquals("version", labels.get("version"));
assertNull(labels.get("project"));

builder = new KubernetesListBuilder().withItems(new DeploymentBuilder().build());
projectEnricher.create(PlatformMode.kubernetes, builder);

Deployment deployment = (Deployment)builder.buildFirstItem();
Map<String, String> selectors = deployment.getSpec().getSelector().getMatchLabels();
assertEquals("groupId", selectors.get("group"));
assertEquals(PROVIDER, selectors.get("provider"));
assertNull(selectors.get("version"));
assertNull(selectors.get("project"));
}

@Test
public void testEmptyCustomProvider() {

// Setup
final String PROVIDER = "";
final Properties properties = new Properties();
properties.setProperty("jkube.enricher.jkube-project-label.provider", PROVIDER);
// @formatter:off
new Expectations() {{
context.getProperties(); result = properties;
}};
// @formatter:on

ProjectLabelEnricher projectEnricher = new ProjectLabelEnricher(context);

KubernetesListBuilder builder = createListWithDeploymentConfig();
projectEnricher.enrich(PlatformMode.kubernetes, builder);
KubernetesList list = builder.build();

Map<String, String> labels = list.getItems().get(0).getMetadata().getLabels();

assertNotNull(labels);
assertEquals("groupId", labels.get("group"));
assertEquals(PROVIDER, labels.get("provider"));
assertEquals("version", labels.get("version"));
assertNull(labels.get("project"));

builder = new KubernetesListBuilder().withItems(new DeploymentBuilder().build());
projectEnricher.create(PlatformMode.kubernetes, builder);

Deployment deployment = (Deployment)builder.buildFirstItem();
Map<String, String> selectors = deployment.getSpec().getSelector().getMatchLabels();
assertEquals("groupId", selectors.get("group"));
assertEquals(PROVIDER, selectors.get("provider"));
assertNull(selectors.get("version"));
assertNull(selectors.get("project"));
}

@Test
public void testDefaultProvider() {
ProjectLabelEnricher projectEnricher = new ProjectLabelEnricher(context);

KubernetesListBuilder builder = createListWithDeploymentConfig();
projectEnricher.enrich(PlatformMode.kubernetes, builder);
KubernetesList list = builder.build();

Map<String, String> labels = list.getItems().get(0).getMetadata().getLabels();

assertNotNull(labels);
assertEquals("groupId", labels.get("group"));
assertEquals("jkube", labels.get("provider"));
assertEquals("version", labels.get("version"));
assertNull(labels.get("project"));

builder = new KubernetesListBuilder().withItems(new DeploymentBuilder().build());
projectEnricher.create(PlatformMode.kubernetes, builder);

Deployment deployment = (Deployment)builder.buildFirstItem();
Map<String, String> selectors = deployment.getSpec().getSelector().getMatchLabels();
assertEquals("groupId", selectors.get("group"));
assertEquals("jkube", selectors.get("provider"));
assertNull(selectors.get("version"));
assertNull(selectors.get("project"));
}

private KubernetesListBuilder createListWithDeploymentConfig() {
return new KubernetesListBuilder().addToItems(new DeploymentConfigBuilder()
.withNewMetadata().endMetadata()
.withNewSpec().endSpec()
.build());
}
@Mocked
private JKubeEnricherContext context;

private Properties properties;
private ProjectLabelEnricher projectLabelEnricher;

@Before
public void setupExpectations() {
projectLabelEnricher = new ProjectLabelEnricher(context);
properties = new Properties();
// @formatter:off
new Expectations() {{
context.getProperties(); result = properties;
context.getGav();
result = new GroupArtifactVersion("groupId", "artifactId", "version");
}};
// @formatter:on
}

@Test
public void testCustomAppName() {
// Setup
properties.setProperty("jkube.enricher.jkube-project-label.app", "my-custom-app-name");

KubernetesListBuilder builder = createListWithDeploymentConfig();
projectLabelEnricher.enrich(PlatformMode.kubernetes, builder);
KubernetesList list = builder.build();

Map<String, String> labels = list.getItems().get(0).getMetadata().getLabels();

assertNotNull(labels);
assertEquals("groupId", labels.get("group"));
assertEquals("my-custom-app-name", labels.get("app"));
assertEquals("version", labels.get("version"));
assertNull(labels.get("project"));

builder = new KubernetesListBuilder().withItems(new DeploymentBuilder().build());
projectLabelEnricher.create(PlatformMode.kubernetes, builder);

Deployment deployment = (Deployment) builder.buildFirstItem();
Map<String, String> selectors = deployment.getSpec().getSelector().getMatchLabels();
assertEquals("groupId", selectors.get("group"));
assertEquals("my-custom-app-name", selectors.get("app"));
assertNull(selectors.get("version"));
assertNull(selectors.get("project"));
}

@Test
public void testEmptyCustomAppName() {
// Setup
properties.setProperty("jkube.enricher.jkube-project-label.app", "");

KubernetesListBuilder builder = createListWithDeploymentConfig();
projectLabelEnricher.enrich(PlatformMode.kubernetes, builder);
KubernetesList list = builder.build();

Map<String, String> labels = list.getItems().get(0).getMetadata().getLabels();

assertNotNull(labels);
assertEquals("groupId", labels.get("group"));
assertEquals("", labels.get("app"));
assertEquals("version", labels.get("version"));
assertNull(labels.get("project"));

builder = new KubernetesListBuilder().withItems(new DeploymentBuilder().build());
projectLabelEnricher.create(PlatformMode.kubernetes, builder);

Deployment deployment = (Deployment) builder.buildFirstItem();
Map<String, String> selectors = deployment.getSpec().getSelector().getMatchLabels();
assertEquals("groupId", selectors.get("group"));
assertEquals("", selectors.get("app"));
assertNull(selectors.get("version"));
assertNull(selectors.get("project"));
}

@Test
public void testDefaultAppName() {
KubernetesListBuilder builder = createListWithDeploymentConfig();
projectLabelEnricher.enrich(PlatformMode.kubernetes, builder);
KubernetesList list = builder.build();

Map<String, String> labels = list.getItems().get(0).getMetadata().getLabels();

assertNotNull(labels);
assertEquals("groupId", labels.get("group"));
assertEquals("artifactId", labels.get("app"));
assertEquals("version", labels.get("version"));
assertNull(labels.get("project"));

builder = new KubernetesListBuilder().withItems(new DeploymentBuilder().build());
projectLabelEnricher.create(PlatformMode.kubernetes, builder);

Deployment deployment = (Deployment) builder.buildFirstItem();
Map<String, String> selectors = deployment.getSpec().getSelector().getMatchLabels();
assertEquals("groupId", selectors.get("group"));
assertEquals("artifactId", selectors.get("app"));
assertNull(selectors.get("version"));
assertNull(selectors.get("project"));
}

@Test
public void testEnrichCustomProvider() {
properties.setProperty("jkube.enricher.jkube-project-label.provider", "my-custom-provider");
KubernetesListBuilder builder = createListWithDeploymentConfig();

projectLabelEnricher.enrich(PlatformMode.kubernetes, builder);

Map<String, String> labels = builder.build().getItems().get(0).getMetadata().getLabels();
assertNotNull(labels);
assertEquals("my-custom-provider", labels.get("provider"));
}

@Test
public void testCreateCustomProvider() {
properties.setProperty("jkube.enricher.jkube-project-label.provider", "my-custom-provider");
KubernetesListBuilder builder = new KubernetesListBuilder().withItems(new DeploymentBuilder().build());

projectLabelEnricher.create(PlatformMode.kubernetes, builder);

Deployment deployment = (Deployment) builder.buildFirstItem();
Map<String, String> selectors = deployment.getSpec().getSelector().getMatchLabels();
assertEquals("my-custom-provider", selectors.get("provider"));
}

@Test
public void testEnrichDefaultProvider() {
KubernetesListBuilder builder = createListWithDeploymentConfig();

projectLabelEnricher.enrich(PlatformMode.kubernetes, builder);

Map<String, String> labels = builder.build().getItems().get(0).getMetadata().getLabels();
assertNotNull(labels);
assertEquals("jkube", labels.get("provider"));

}

@Test
public void testCreateDefaultProvider() {
KubernetesListBuilder builder = new KubernetesListBuilder().withItems(new DeploymentBuilder().build());

projectLabelEnricher.create(PlatformMode.kubernetes, builder);

Deployment deployment = (Deployment) builder.buildFirstItem();
Map<String, String> selectors = deployment.getSpec().getSelector().getMatchLabels();
assertEquals("jkube", selectors.get("provider"));
}

private KubernetesListBuilder createListWithDeploymentConfig() {
return new KubernetesListBuilder().addToItems(new DeploymentConfigBuilder()
.withNewMetadata().endMetadata()
.withNewSpec().endSpec()
.build());
}

}

0 comments on commit d462655

Please sign in to comment.