diff --git a/src/test/java/com/cloudbees/jenkins/plugins/amazonecs/ECSCloudTest.java b/src/test/java/com/cloudbees/jenkins/plugins/amazonecs/ECSCloudTest.java index d54454e0..59b064be 100644 --- a/src/test/java/com/cloudbees/jenkins/plugins/amazonecs/ECSCloudTest.java +++ b/src/test/java/com/cloudbees/jenkins/plugins/amazonecs/ECSCloudTest.java @@ -1,18 +1,12 @@ package com.cloudbees.jenkins.plugins.amazonecs; - import com.amazonaws.services.ecs.model.TaskDefinition; import hudson.model.labels.LabelAtom; import hudson.slaves.NodeProvisioner.PlannedNode; -import static junit.framework.TestCase.assertEquals; -import static junit.framework.TestCase.assertTrue; -import org.junit.Assert; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.jvnet.hudson.test.JenkinsRule; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; +import org.jvnet.hudson.test.junit.jupiter.WithJenkins; import java.util.ArrayList; import java.util.Collection; @@ -21,17 +15,26 @@ import java.util.List; import java.util.UUID; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; -public class ECSCloudTest { +@WithJenkins +class ECSCloudTest { - @Rule - public JenkinsRule j = new JenkinsRule(); + private JenkinsRule j; - @Test - public void provision_oneagent() throws Exception { + @BeforeEach + void setUp(JenkinsRule rule) { + j = rule; + } + @Test + void provision_oneagent() { List templates = new ArrayList<>(); - templates.add(getTaskTemplate("my-template","label")); + templates.add(getTaskTemplate("my-template", "label")); ECSCloud sut = new ECSCloud("mycloud", "", "", "mycluster"); sut.setTemplates(templates); @@ -42,12 +45,11 @@ public void provision_oneagent() throws Exception { sut.setRetentionTimeout(5); Collection plannedNodes = sut.provision(new LabelAtom("label"), 1); - Assert.assertEquals(1, plannedNodes.size()); + assertEquals(1, plannedNodes.size()); } @Test - public void canProvision_unknownLabel_returnsFalse() throws Exception { - + void canProvision_unknownLabel_returnsFalse() { List templates = new ArrayList<>(); ECSCloud sut = new ECSCloud("mycloud", "", "", "mycluster"); @@ -60,31 +62,31 @@ public void canProvision_unknownLabel_returnsFalse() throws Exception { boolean canProvision = sut.canProvision(new LabelAtom("unknownLabel")); - Assert.assertFalse(canProvision); + assertFalse(canProvision); } @Test - public void testFindParentTemplateWhenNoneSupplied() throws Exception { + void testFindParentTemplateWhenNoneSupplied() { ECSService ecsService = mock(ECSService.class); - ECSCloud cloud = new ECSCloud("mycloud","mycluster",ecsService); + ECSCloud cloud = new ECSCloud("mycloud", "mycluster", ecsService); cloud.addTemplate(getTaskTemplate()); ECSTaskTemplate expected = getTaskTemplate("template-name", "template-default"); cloud.addTemplate(expected); ECSTaskTemplate actual = cloud.findParentTemplate(null); - assertEquals(expected,actual); + assertEquals(expected, actual); expected = getTaskTemplate("template-default", ""); cloud.setTemplates(Collections.singletonList(expected)); cloud.addTemplate(getTaskTemplate()); actual = cloud.findParentTemplate(null); - assertEquals(expected,actual); + assertEquals(expected, actual); } @Test - public void addDynamicTemplateRegistersTemplate() throws Exception { + void addDynamicTemplateRegistersTemplate() { ECSService ecsService = mock(ECSService.class); ECSCloud cloud = new ECSCloud("mycloud", "mycluster", ecsService); @@ -96,13 +98,13 @@ public void addDynamicTemplateRegistersTemplate() throws Exception { when(ecsService.registerTemplate(cloud.getDisplayName(), tt)).thenReturn(expectedTask); String actual = cloud.addDynamicTemplate(tt).getDynamicTaskDefinition(); - assertEquals(expected,actual); + assertEquals(expected, actual); } @Test - public void provisionByLabelInheritFromUsingListOfLabels() throws Exception { - ECSCloud cloud = new ECSCloud("mycloud", "", "", "mycluster"); - ECSTaskTemplate expected = getTaskTemplate("somename","label1 label2 label3"); + void provisionByLabelInheritFromUsingListOfLabels() { + ECSCloud cloud = new ECSCloud("mycloud", "", "", "mycluster"); + ECSTaskTemplate expected = getTaskTemplate("somename", "label1 label2 label3"); List currentTemplates = cloud.getTemplates(); List newTemplates = new LinkedList<>(currentTemplates); @@ -112,7 +114,7 @@ public void provisionByLabelInheritFromUsingListOfLabels() throws Exception { } @Test - public void removeJunkTemplateProducesNoError() throws Exception { + void removeJunkTemplateProducesNoError() { ECSService ecsService = mock(ECSService.class); ECSCloud cloud = new ECSCloud("mycloud", "mycluster", ecsService); cloud.setRegionName("us-east-1"); @@ -120,30 +122,28 @@ public void removeJunkTemplateProducesNoError() throws Exception { } @Test - public void isAllowedOverride_empty_returnsFalse() throws Exception { - + void isAllowedOverride_empty_returnsFalse() { ECSCloud sut = new ECSCloud("mycloud", "", "", "mycluster"); - Assert.assertFalse(sut.isAllowedOverride("label")); + assertFalse(sut.isAllowedOverride("label")); } @Test - public void isAllowedOverride_label_returnsTrue() throws Exception { - + void isAllowedOverride_label_returnsTrue() { ECSCloud sut = new ECSCloud("mycloud", "", "", "mycluster"); sut.setAllowedOverrides("label"); - Assert.assertTrue(sut.isAllowedOverride("label")); + assertTrue(sut.isAllowedOverride("label")); } @Test - public void getProvisioningCapacity_returnsZeroWhenMaxAgentsReached () { + void getProvisioningCapacity_returnsZeroWhenMaxAgentsReached() { int onlineExecutors = 4; int connectingExecutors = 1; int excessWorkload = 5; List templates = new ArrayList<>(); - templates.add(getTaskTemplate("my-template","label")); + templates.add(getTaskTemplate("my-template", "label")); ECSCloud sut = new ECSCloud("mycloud", "", "", "mycluster"); sut.setMaxAgents(5); @@ -155,17 +155,17 @@ public void getProvisioningCapacity_returnsZeroWhenMaxAgentsReached () { sut.setRetentionTimeout(5); int provisioningCapacity = sut.getProvisioningCapacity(excessWorkload, onlineExecutors, connectingExecutors); - Assert.assertEquals(0, provisioningCapacity); + assertEquals(0, provisioningCapacity); } @Test - public void getProvisioningCapacity_returnsRemainingMaxAgentsWhenWorkloadExceedsAvailability () { + void getProvisioningCapacity_returnsRemainingMaxAgentsWhenWorkloadExceedsAvailability() { int onlineExecutors = 7; int connectingExecutors = 4; int excessWorkload = 8; List templates = new ArrayList<>(); - templates.add(getTaskTemplate("my-template","label")); + templates.add(getTaskTemplate("my-template", "label")); ECSCloud sut = new ECSCloud("mycloud", "", "", "mycluster"); sut.setMaxAgents(14); @@ -177,17 +177,17 @@ public void getProvisioningCapacity_returnsRemainingMaxAgentsWhenWorkloadExceeds sut.setRetentionTimeout(5); int provisioningCapacity = sut.getProvisioningCapacity(excessWorkload, onlineExecutors, connectingExecutors); - Assert.assertEquals(3, provisioningCapacity); + assertEquals(3, provisioningCapacity); } @Test - public void getProvisioningCapacity_returnsExcessWorkloadWithoutMaxAgents () { + void getProvisioningCapacity_returnsExcessWorkloadWithoutMaxAgents() { int onlineExecutors = 6; int connectingExecutors = 2; int excessWorkload = 10; List templates = new ArrayList<>(); - templates.add(getTaskTemplate("my-template","label")); + templates.add(getTaskTemplate("my-template", "label")); ECSCloud sut = new ECSCloud("mycloud", "", "", "mycluster"); sut.setMaxAgents(0); @@ -198,17 +198,17 @@ public void getProvisioningCapacity_returnsExcessWorkloadWithoutMaxAgents () { sut.setRetentionTimeout(5); int provisioningCapacity = sut.getProvisioningCapacity(excessWorkload, onlineExecutors, connectingExecutors); - Assert.assertEquals(10, provisioningCapacity); + assertEquals(10, provisioningCapacity); } @Test - public void getProvisioningCapacity_returnsExcessWorkloadWhenWorkloadDoesNotExceedAvailability () { + void getProvisioningCapacity_returnsExcessWorkloadWhenWorkloadDoesNotExceedAvailability() { int onlineExecutors = 3; int connectingExecutors = 2; int excessWorkload = 4; List templates = new ArrayList<>(); - templates.add(getTaskTemplate("my-template","label")); + templates.add(getTaskTemplate("my-template", "label")); ECSCloud sut = new ECSCloud("mycloud", "", "", "mycluster"); sut.setMaxAgents(10); @@ -219,17 +219,17 @@ public void getProvisioningCapacity_returnsExcessWorkloadWhenWorkloadDoesNotExce sut.setRetentionTimeout(5); int provisioningCapacity = sut.getProvisioningCapacity(excessWorkload, onlineExecutors, connectingExecutors); - Assert.assertEquals(4, provisioningCapacity); + assertEquals(4, provisioningCapacity); } @Test - public void getProvisioningCapacity_returnsZeroWhenOverflowEncountered () { + void getProvisioningCapacity_returnsZeroWhenOverflowEncountered() { int onlineExecutors = Integer.MAX_VALUE; int connectingExecutors = 1; int excessWorkload = 1; List templates = new ArrayList<>(); - templates.add(getTaskTemplate("my-template","label")); + templates.add(getTaskTemplate("my-template", "label")); ECSCloud sut = new ECSCloud("mycloud", "", "", "mycluster"); sut.setMaxAgents(10); @@ -240,17 +240,17 @@ public void getProvisioningCapacity_returnsZeroWhenOverflowEncountered () { sut.setRetentionTimeout(5); int provisioningCapacity = sut.getProvisioningCapacity(excessWorkload, onlineExecutors, connectingExecutors); - Assert.assertEquals(0, provisioningCapacity); + assertEquals(0, provisioningCapacity); } @Test - public void getProvisioningCapacity_returnsZeroWhenCurrentAgentsGreaterThanMaxAgents () { + void getProvisioningCapacity_returnsZeroWhenCurrentAgentsGreaterThanMaxAgents() { int onlineExecutors = 5; int connectingExecutors = 5; int excessWorkload = 1; List templates = new ArrayList<>(); - templates.add(getTaskTemplate("my-template","label")); + templates.add(getTaskTemplate("my-template", "label")); ECSCloud sut = new ECSCloud("mycloud", "", "", "mycluster"); sut.setMaxAgents(1); @@ -261,12 +261,13 @@ public void getProvisioningCapacity_returnsZeroWhenCurrentAgentsGreaterThanMaxAg sut.setRetentionTimeout(5); int provisioningCapacity = sut.getProvisioningCapacity(excessWorkload, onlineExecutors, connectingExecutors); - Assert.assertEquals(0, provisioningCapacity); + assertEquals(0, provisioningCapacity); } private ECSTaskTemplate getTaskTemplate() { - return getTaskTemplate(UUID.randomUUID().toString(),UUID.randomUUID().toString()); + return getTaskTemplate(UUID.randomUUID().toString(), UUID.randomUUID().toString()); } + private ECSTaskTemplate getTaskTemplate(String templateName, String label) { return new ECSTaskTemplate( templateName, diff --git a/src/test/java/com/cloudbees/jenkins/plugins/amazonecs/ECSComputerListenerTest.java b/src/test/java/com/cloudbees/jenkins/plugins/amazonecs/ECSComputerListenerTest.java index c1935fb1..94e2f38a 100644 --- a/src/test/java/com/cloudbees/jenkins/plugins/amazonecs/ECSComputerListenerTest.java +++ b/src/test/java/com/cloudbees/jenkins/plugins/amazonecs/ECSComputerListenerTest.java @@ -1,19 +1,29 @@ package com.cloudbees.jenkins.plugins.amazonecs; import hudson.slaves.OfflineCause; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.jvnet.hudson.test.JenkinsRule; +import org.jvnet.hudson.test.junit.jupiter.WithJenkins; import org.mockito.Mockito; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; -public class ECSComputerListenerTest { - @Rule - public JenkinsRule j = new JenkinsRule(); +@WithJenkins +class ECSComputerListenerTest { + + private JenkinsRule j; + + @BeforeEach + void setUp(JenkinsRule rule) { + j = rule; + } @Test - public void unsurvivable_node_is_terminated_when_computer_is_offline() throws Exception { + void unsurvivable_node_is_terminated_when_computer_is_offline() throws Exception { ECSComputer computer = mock(ECSComputer.class); OfflineCause cause = mock(OfflineCause.class); ECSSlave node = mock(ECSSlave.class); @@ -27,7 +37,7 @@ public void unsurvivable_node_is_terminated_when_computer_is_offline() throws Ex } @Test - public void survivable_node_is_not_terminated_when_computer_is_offline() throws Exception { + void survivable_node_is_not_terminated_when_computer_is_offline() throws Exception { ECSComputer computer = mock(ECSComputer.class); OfflineCause cause = mock(OfflineCause.class); ECSSlave node = mock(ECSSlave.class); diff --git a/src/test/java/com/cloudbees/jenkins/plugins/amazonecs/ECSLauncherTest.java b/src/test/java/com/cloudbees/jenkins/plugins/amazonecs/ECSLauncherTest.java index 5944bc55..a539a903 100644 --- a/src/test/java/com/cloudbees/jenkins/plugins/amazonecs/ECSLauncherTest.java +++ b/src/test/java/com/cloudbees/jenkins/plugins/amazonecs/ECSLauncherTest.java @@ -4,27 +4,37 @@ import com.amazonaws.services.ecs.model.Task; import com.amazonaws.waiters.WaiterUnrecoverableException; import hudson.model.TaskListener; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.jvnet.hudson.test.JenkinsRule; +import org.jvnet.hudson.test.junit.jupiter.WithJenkins; import org.mockito.Mockito; import java.io.ByteArrayOutputStream; import java.io.PrintStream; -import static org.junit.Assert.assertThrows; +import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.anyLong; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; -public class ECSLauncherTest { +@WithJenkins +class ECSLauncherTest { - @Rule - public JenkinsRule j = new JenkinsRule(); + private JenkinsRule j; - @Test - public void generic_ecs_exception_is_not_retried() throws Exception { + @BeforeEach + void setUp(JenkinsRule rule) { + j = rule; + } + @Test + void generic_ecs_exception_is_not_retried() throws Exception { ECSService ecsService = mock(ECSService.class); ECSCloud cloud = mock(ECSCloud.class); ECSComputer computer = mock(ECSComputer.class); @@ -38,16 +48,14 @@ public void generic_ecs_exception_is_not_retried() throws Exception { doThrow(new WaiterUnrecoverableException("Generic ecs exception")).when(launcher).launchECSTask(any(ECSComputer.class), any(TaskListener.class), anyLong()); - assertThrows("Generic ECS exception", WaiterUnrecoverableException.class, () -> { - launcher.launch(computer, listener); - }); + assertThrows(WaiterUnrecoverableException.class, () -> + launcher.launch(computer, listener), "Generic ECS exception"); verify(launcher, times(1)).launchECSTask(any(ECSComputer.class), any(TaskListener.class), anyLong()); } @Test - public void eni_timeout_exception_is_retried() throws Exception { - + void eni_timeout_exception_is_retried() throws Exception { ECSService ecsService = mock(ECSService.class); ECSCloud cloud = mock(ECSCloud.class); ECSComputer computer = mock(ECSComputer.class); diff --git a/src/test/java/com/cloudbees/jenkins/plugins/amazonecs/ECSServiceTest.java b/src/test/java/com/cloudbees/jenkins/plugins/amazonecs/ECSServiceTest.java index 00904a92..69cfc1ae 100644 --- a/src/test/java/com/cloudbees/jenkins/plugins/amazonecs/ECSServiceTest.java +++ b/src/test/java/com/cloudbees/jenkins/plugins/amazonecs/ECSServiceTest.java @@ -1,32 +1,29 @@ package com.cloudbees.jenkins.plugins.amazonecs; -import static org.junit.Assert.*; -import org.junit.Ignore; -import org.junit.Test; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; /** * Whoever wrote the original class should implement some tests */ -public class ECSServiceTest { - +class ECSServiceTest { @Test - @Ignore - public void testDescribeTask() { + @Disabled + void testDescribeTask() { } @Test - @Ignore - public void registerTemplate() { - + @Disabled + void registerTemplate() { + } @Test - @Ignore - public void testStopTask() { -// ECSService service = new ECSService("us-east-1"); - + @Disabled + void testStopTask() { + // ECSService service = new ECSService("us-east-1"); } } \ No newline at end of file diff --git a/src/test/java/com/cloudbees/jenkins/plugins/amazonecs/ECSSlaveTest.java b/src/test/java/com/cloudbees/jenkins/plugins/amazonecs/ECSSlaveTest.java index 4165b50e..c4f7983f 100644 --- a/src/test/java/com/cloudbees/jenkins/plugins/amazonecs/ECSSlaveTest.java +++ b/src/test/java/com/cloudbees/jenkins/plugins/amazonecs/ECSSlaveTest.java @@ -1,79 +1,39 @@ package com.cloudbees.jenkins.plugins.amazonecs; -import java.io.ByteArrayOutputStream; -import java.io.PrintStream; - import com.amazonaws.services.ecs.model.ClientException; - import com.amazonaws.services.ecs.model.Task; -import org.junit.Assert; -import org.junit.Rule; -import org.junit.Test; -import org.jvnet.hudson.test.JenkinsRule; -import org.mockito.Mockito; - import hudson.model.TaskListener; import hudson.slaves.JNLPLauncher; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.jvnet.hudson.test.JenkinsRule; +import org.jvnet.hudson.test.junit.jupiter.WithJenkins; +import org.mockito.Mockito; -import static org.mockito.Mockito.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; -public class ECSSlaveTest { +@WithJenkins +class ECSSlaveTest { - @Rule - public JenkinsRule j = new JenkinsRule(); + private JenkinsRule j; - private ECSTaskTemplate getTaskTemplate() { - return new ECSTaskTemplate( - "templateName", - "label", - "agentContainerName", - "taskDefinitionOverride", - null, - "image", - "repositoryCredentials", - "launchType", - "operatingSystemFamily", - "cpuArchitecture", - false, - null, - "networkMode", - "remoteFSRoot", - false, - null, - 0, - 0, - 0, - null, - null, - null, - false, - false, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - 0, - false); + @BeforeEach + void setUp(JenkinsRule rule) { + j = rule; } @Test - public void terminateRunningTask() throws Exception { - + void terminateRunningTask() throws Exception { ECSService ecsService = mock(ECSService.class); ECSCloud cloud = mock(ECSCloud.class); Mockito.when(cloud.getEcsService()).thenReturn(ecsService); - ByteArrayOutputStream bo = new ByteArrayOutputStream(); TaskListener listener = mock(TaskListener.class); ECSTaskTemplate template = getTaskTemplate(); @@ -89,8 +49,7 @@ public void terminateRunningTask() throws Exception { } @Test - public void terminate_ThrowsException_ignoreException() throws Exception { - + void terminate_ThrowsException_ignoreException() throws Exception { ECSService ecsService = mock(ECSService.class); Mockito.doThrow(new ClientException("failed")) .when(ecsService).stopTask("mytaskarn", "myclusterarn"); @@ -98,7 +57,6 @@ public void terminate_ThrowsException_ignoreException() throws Exception { ECSCloud cloud = mock(ECSCloud.class); Mockito.when(cloud.getEcsService()).thenReturn(ecsService); - ByteArrayOutputStream bo = new ByteArrayOutputStream(); TaskListener listener = mock(TaskListener.class); ECSTaskTemplate template = getTaskTemplate(); @@ -129,39 +87,39 @@ private void test_node_is_survivable_with_last_status_and_desired_status(String Mockito.when(ecsService.describeTask(sut.getTaskArn(), sut.getClusterArn())).thenReturn(task); if (expectedSurvivable) { - Assert.assertTrue(sut.isSurvivable()); + assertTrue(sut.isSurvivable()); } else { - Assert.assertFalse(sut.isSurvivable()); + assertFalse(sut.isSurvivable()); } } @Test - public void node_is_survivable_if_task_is_provisioning_and_desired_status_is_running() throws Exception { + void node_is_survivable_if_task_is_provisioning_and_desired_status_is_running() throws Exception { test_node_is_survivable_with_last_status_and_desired_status("PROVISIONING", "RUNNING", true); } @Test - public void node_is_survivable_if_task_is_running_and_desired_status_is_running() throws Exception { + void node_is_survivable_if_task_is_running_and_desired_status_is_running() throws Exception { test_node_is_survivable_with_last_status_and_desired_status("RUNNING", "RUNNING", true); } @Test - public void node_is_not_survivable_if_task_is_stopped_and_desired_status_is_running() throws Exception { + void node_is_not_survivable_if_task_is_stopped_and_desired_status_is_running() throws Exception { test_node_is_survivable_with_last_status_and_desired_status("STOPPED", "RUNNING", false); } @Test - public void node_is_not_survivable_if_task_is_running_and_desired_status_is_stopped() throws Exception { + void node_is_not_survivable_if_task_is_running_and_desired_status_is_stopped() throws Exception { test_node_is_survivable_with_last_status_and_desired_status("RUNNING", "STOPPED", false); } @Test - public void node_is_not_survivable_if_task_is_stopped_and_desired_status_is_stopped() throws Exception { + void node_is_not_survivable_if_task_is_stopped_and_desired_status_is_stopped() throws Exception { test_node_is_survivable_with_last_status_and_desired_status("STOPPED", "STOPPED", false); } @Test - public void node_is_not_survivable_if_task_cannot_be_found() throws Exception { + void node_is_not_survivable_if_task_cannot_be_found() throws Exception { ECSService ecsService = mock(ECSService.class); ECSCloud cloud = mock(ECSCloud.class); Mockito.when(cloud.getEcsService()).thenReturn(ecsService); @@ -173,11 +131,11 @@ public void node_is_not_survivable_if_task_cannot_be_found() throws Exception { Mockito.when(ecsService.describeTask(sut.getTaskArn(), sut.getClusterArn())).thenReturn(null); - Assert.assertFalse(sut.isSurvivable()); + assertFalse(sut.isSurvivable()); } @Test - public void agent_has_1_executor_as_default() throws Exception { + void agent_has_1_executor_as_default() throws Exception { ECSService ecsService = mock(ECSService.class); ECSCloud cloud = mock(ECSCloud.class); Mockito.when(cloud.getEcsService()).thenReturn(ecsService); @@ -185,11 +143,11 @@ public void agent_has_1_executor_as_default() throws Exception { ECSSlave sut = new ECSSlave(cloud, "myagent", template, new JNLPLauncher()); - Assert.assertEquals(1, sut.getNumExecutors()); + assertEquals(1, sut.getNumExecutors()); } @Test - public void agent_has_4_executors_when_configured() throws Exception { + void agent_has_4_executors_when_configured() throws Exception { ECSService ecsService = mock(ECSService.class); ECSCloud cloud = mock(ECSCloud.class); Mockito.when(cloud.getEcsService()).thenReturn(ecsService); @@ -199,6 +157,51 @@ public void agent_has_4_executors_when_configured() throws Exception { ECSSlave sut = new ECSSlave(cloud, "myagent", template, new JNLPLauncher()); - Assert.assertEquals(4, sut.getNumExecutors()); + assertEquals(4, sut.getNumExecutors()); + } + + private ECSTaskTemplate getTaskTemplate() { + return new ECSTaskTemplate( + "templateName", + "label", + "agentContainerName", + "taskDefinitionOverride", + null, + "image", + "repositoryCredentials", + "launchType", + "operatingSystemFamily", + "cpuArchitecture", + false, + null, + "networkMode", + "remoteFSRoot", + false, + null, + 0, + 0, + 0, + null, + null, + null, + false, + false, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 0, + false); } + } diff --git a/src/test/java/com/cloudbees/jenkins/plugins/amazonecs/ECSTaskTemplateTest.java b/src/test/java/com/cloudbees/jenkins/plugins/amazonecs/ECSTaskTemplateTest.java index f0248400..4dbbf422 100644 --- a/src/test/java/com/cloudbees/jenkins/plugins/amazonecs/ECSTaskTemplateTest.java +++ b/src/test/java/com/cloudbees/jenkins/plugins/amazonecs/ECSTaskTemplateTest.java @@ -1,41 +1,25 @@ package com.cloudbees.jenkins.plugins.amazonecs; -import static org.junit.Assert.assertEquals; -import org.junit.Test; -import static org.junit.Assert.assertTrue; import org.apache.commons.lang.builder.EqualsBuilder; +import org.junit.jupiter.api.Test; import java.util.ArrayList; -public class ECSTaskTemplateTest { +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; - ECSTaskTemplate getParent() { - return new ECSTaskTemplate( - "parent-name", "parent-label", - null, null, null, "parent-image", "parent-repository-credentials", "FARGATE", "LINUX", "X86_64",false, null, "parent-network-mode", "parent-remoteFSRoot", - false, null, 0, 0, 0, null, null, null, false, false, - "parent-containerUser", "parent-kernelCapabilities", null, new ArrayList<>(), null, null, null, null, null, null,null, null, null, null, 0, false); - } - - ECSTaskTemplate getChild(String parent) { - return new ECSTaskTemplate( - "child-name", "child-label", - null, null, null, "child-image", "child-repository-credentials", "EC2", "LINUX", "X86_64",false, null, "child-network-mode", "child-remoteFSRoot", - false, null, 0, 0, 0, null, null, null, false, false, - "child-containerUser", "child-kernelCapabilities", null, new ArrayList<>(), null, null, null, null, null, null,null, null, null, parent, 0, false); - } +class ECSTaskTemplateTest { @Test - public void shouldMerge() throws Exception { - + void shouldMerge() { ECSTaskTemplate parent = getParent(); ECSTaskTemplate child = getChild("parent"); ECSTaskTemplate expected = new ECSTaskTemplate( - "child-name", "child-label", - null, null, null, "child-image", "child-repository-credentials", "EC2", "LINUX", "X86_64",false, null, "child-network-mode", "child-remoteFSRoot", - false, null, 0, 0, 0, null, null, null, false, false, - "child-containerUser", "child-kernelCapabilities", null, new ArrayList<>(), null, null, null, null, null, null,null, null, null, null, 0, false); + "child-name", "child-label", + null, null, null, "child-image", "child-repository-credentials", "EC2", "LINUX", "X86_64", false, null, "child-network-mode", "child-remoteFSRoot", + false, null, 0, 0, 0, null, null, null, false, false, + "child-containerUser", "child-kernelCapabilities", null, new ArrayList<>(), null, null, null, null, null, null, null, null, null, null, 0, false); ECSTaskTemplate result = child.merge(parent); @@ -43,40 +27,38 @@ public void shouldMerge() throws Exception { } @Test - public void shouldReturnSettingsFromParent() throws Exception { - + void shouldReturnSettingsFromParent() { ECSTaskTemplate parent = getParent(); ECSTaskTemplate child = getChild("parent"); ECSTaskTemplate expected = new ECSTaskTemplate( - "child-name", "child-label", - null, null, null, "child-image", "child-repository-credentials", "EC2", "LINUX", "X86_64",false, null, "child-network-mode", "child-remoteFSRoot", - false, null, 0, 0, 0, null, null, null, false, false, - "child-containerUser", "child-kernelCapabilities", null, new ArrayList<>(), null, null, null, null, null, null,null, null, null, null, 0, false); + "child-name", "child-label", + null, null, null, "child-image", "child-repository-credentials", "EC2", "LINUX", "X86_64", false, null, "child-network-mode", "child-remoteFSRoot", + false, null, 0, 0, 0, null, null, null, false, false, + "child-containerUser", "child-kernelCapabilities", null, new ArrayList<>(), null, null, null, null, null, null, null, null, null, null, 0, false); ECSTaskTemplate result = child.merge(parent); - assertEquals(expected,result); + assertEquals(expected, result); } @Test - public void shouldReturnChildIfNoParent() throws Exception { - + void shouldReturnChildIfNoParent() { ECSTaskTemplate child = getChild(null); ECSTaskTemplate expected = new ECSTaskTemplate( - "child-name", "child-label", - null, null, null, "child-image", "child-repository-credentials", "EC2", "LINUX", "X86_64",false, null, "child-network-mode", "child-remoteFSRoot", - false, null, 0, 0, 0, null, null, null, false, false, - "child-containerUser", "child-kernelCapabilities", null, new ArrayList<>(), null, null, null, null, null, null,null, null, null, null, 0, false); + "child-name", "child-label", + null, null, null, "child-image", "child-repository-credentials", "EC2", "LINUX", "X86_64", false, null, "child-network-mode", "child-remoteFSRoot", + false, null, 0, 0, 0, null, null, null, false, false, + "child-containerUser", "child-kernelCapabilities", null, new ArrayList<>(), null, null, null, null, null, null, null, null, null, null, 0, false); ECSTaskTemplate result = child.merge(null); - assertEquals(expected,result); + assertEquals(expected, result); } @Test - public void shouldOverrideEntrypoint() { + void shouldOverrideEntrypoint() { String entrypoint = "/bin/bash"; ECSTaskTemplate parent = getParent(); @@ -84,9 +66,9 @@ public void shouldOverrideEntrypoint() { ECSTaskTemplate expected = new ECSTaskTemplate( "child-name", "child-label", - null, null, null, "child-image", "child-repository-credentials", "EC2", "LINUX", "X86_64",false, null, "child-network-mode", "child-remoteFSRoot", + null, null, null, "child-image", "child-repository-credentials", "EC2", "LINUX", "X86_64", false, null, "child-network-mode", "child-remoteFSRoot", false, null, 0, 0, 0, null, null, null, false, false, - "child-containerUser", "child-kernelCapabilities", null, new ArrayList<>(), null, null, null, null, null, null,null, null, null, null, 0, false); + "child-containerUser", "child-kernelCapabilities", null, new ArrayList<>(), null, null, null, null, null, null, null, null, null, null, 0, false); //Child entrypoint should equal to parent by default parent.setEntrypoint(entrypoint); @@ -99,4 +81,20 @@ public void shouldOverrideEntrypoint() { expected.setEntrypoint("/bin/false"); assertTrue(EqualsBuilder.reflectionEquals(expected, child.merge(parent))); } + + private ECSTaskTemplate getParent() { + return new ECSTaskTemplate( + "parent-name", "parent-label", + null, null, null, "parent-image", "parent-repository-credentials", "FARGATE", "LINUX", "X86_64", false, null, "parent-network-mode", "parent-remoteFSRoot", + false, null, 0, 0, 0, null, null, null, false, false, + "parent-containerUser", "parent-kernelCapabilities", null, new ArrayList<>(), null, null, null, null, null, null, null, null, null, null, 0, false); + } + + private ECSTaskTemplate getChild(String parent) { + return new ECSTaskTemplate( + "child-name", "child-label", + null, null, null, "child-image", "child-repository-credentials", "EC2", "LINUX", "X86_64", false, null, "child-network-mode", "child-remoteFSRoot", + false, null, 0, 0, 0, null, null, null, false, false, + "child-containerUser", "child-kernelCapabilities", null, new ArrayList<>(), null, null, null, null, null, null, null, null, null, parent, 0, false); + } } diff --git a/src/test/java/com/cloudbees/jenkins/plugins/amazonecs/pipeline/ECSTaskTemplateStepExecutionTest.java b/src/test/java/com/cloudbees/jenkins/plugins/amazonecs/pipeline/ECSTaskTemplateStepExecutionTest.java index cf8808e3..e59f5240 100644 --- a/src/test/java/com/cloudbees/jenkins/plugins/amazonecs/pipeline/ECSTaskTemplateStepExecutionTest.java +++ b/src/test/java/com/cloudbees/jenkins/plugins/amazonecs/pipeline/ECSTaskTemplateStepExecutionTest.java @@ -7,40 +7,41 @@ import org.jenkinsci.plugins.workflow.steps.BodyExecutionCallback; import org.jenkinsci.plugins.workflow.steps.BodyInvoker; import org.jenkinsci.plugins.workflow.steps.StepContext; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.jvnet.hudson.test.JenkinsRule; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; +import org.jvnet.hudson.test.junit.jupiter.WithJenkins; import java.util.ArrayList; import java.util.Arrays; import java.util.Random; import java.util.UUID; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + /** * @author cbongiorno on 2020-04-09. */ -public class ECSTaskTemplateStepExecutionTest { - @Rule - public JenkinsRule j = new JenkinsRule(); - private ECSTaskTemplateStep step; - +@WithJenkins +class ECSTaskTemplateStepExecutionTest { - @Before - public void setUp() throws Exception { + private ECSTaskTemplateStep step; + private JenkinsRule j; + @BeforeEach + void setUp(JenkinsRule rule) { + j = rule; } @Test - public void testMerge() throws Exception { - StepContext context = mock(StepContext.class); - BodyInvoker invoker = mock(BodyInvoker.class); + void testMerge() throws Exception { + StepContext context = mock(StepContext.class); + BodyInvoker invoker = mock(BodyInvoker.class); when(context.newBodyInvoker()).thenReturn(invoker); when(invoker.withCallback(any(BodyExecutionCallback.TailCall.class))).thenReturn(invoker); @@ -60,7 +61,7 @@ public void testMerge() throws Exception { Jenkins.CloudList clouds = new Jenkins.CloudList(); clouds.add(cloud); - step.setOverrides(Arrays.asList("image","taskRole")); + step.setOverrides(Arrays.asList("image", "taskRole")); ECSTaskTemplateStepExecution executionStep = new ECSTaskTemplateStepExecution(step, context, (SerializableSupplier) () -> clouds); Random r = new Random(); @@ -148,14 +149,13 @@ public void testMerge() throws Exception { when(invoker.withContext(step)).thenReturn(invoker); executionStep.start(); - verify(cloud,times(1)).addDynamicTemplate(expected); - - - + verify(cloud, times(1)).addDynamicTemplate(expected); } + private ECSTaskTemplate getTaskTemplate() { - return getTaskTemplate(UUID.randomUUID().toString(),UUID.randomUUID().toString()); + return getTaskTemplate(UUID.randomUUID().toString(), UUID.randomUUID().toString()); } + private ECSTaskTemplate getTaskTemplate(String templateName, String label) { return new ECSTaskTemplate( templateName,