From 5bad03a97150bfc9cf97e87a3273f8ebbb2645c3 Mon Sep 17 00:00:00 2001 From: Yash Pal <112522911+yashpal2104@users.noreply.github.com> Date: Wed, 1 Jan 2025 22:34:03 +0530 Subject: [PATCH] Add test for JobInclusionJobProperty class (#423) * Add test for JobInclusionJobProperty class * Remove unused code from test * Add static methods to manage and add job groups in JobInclusionJobProperty for extensive tests - Introduce `addJobGroup` method to add job groups with display name and value. - Introduce `getJobGroups` method to retrieve the list of job groups. * Add static methods to manage and add job groups in JobInclusionJobProperty for extensive tests - Introduce `addJobGroup` method to add job groups with display name and value. - Introduce `getJobGroups` method to retrieve the list of job groups. * Add extensive test assertions - Introduce `addJobGroup` method to add job groups with display name and value. - Introduce `getJobGroups` method to retrieve the list of job groups. * Add extensive test assertions - Introduce `addJobGroup` method to add job groups with display name and value. - Introduce `getJobGroups` method to retrieve the list of job groups. * Removed getRequiredMonitorService method since not able to deepen assertions * Added necessary changes made by review * Added necessary changes made by review * Reduce diffs to master branch * Reduce diffs to master branch --------- Co-authored-by: Mark Waite --- .../strategy/JobInclusionJobPropertyTest.java | 87 +++++++++++++++++-- 1 file changed, 80 insertions(+), 7 deletions(-) diff --git a/src/test/java/jenkins/advancedqueue/jobinclusion/strategy/JobInclusionJobPropertyTest.java b/src/test/java/jenkins/advancedqueue/jobinclusion/strategy/JobInclusionJobPropertyTest.java index 0988d016..f81c10d5 100644 --- a/src/test/java/jenkins/advancedqueue/jobinclusion/strategy/JobInclusionJobPropertyTest.java +++ b/src/test/java/jenkins/advancedqueue/jobinclusion/strategy/JobInclusionJobPropertyTest.java @@ -3,24 +3,40 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; +import hudson.model.FreeStyleProject; +import org.junit.After; import org.junit.Before; +import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; +import org.junit.rules.TestName; import org.jvnet.hudson.test.JenkinsRule; public class JobInclusionJobPropertyTest { - private JobInclusionJobProperty jobProperty; - private JobInclusionJobProperty.DescriptorImpl descriptor; + + @ClassRule + public static JenkinsRule j = new JenkinsRule(); @Rule - public JenkinsRule jenkinsRule = new JenkinsRule(); + public TestName testName = new TestName(); + + private JobInclusionJobProperty jobProperty; + private FreeStyleProject jobProject; + private JobInclusionJobProperty.DescriptorImpl descriptor; @Before - public void setup() { + public void setUp() throws Exception { jobProperty = new JobInclusionJobProperty(true, "TestJobGroup"); - descriptor = new JobInclusionJobProperty.DescriptorImpl(); + descriptor = jobProperty.getDescriptor(); + jobProject = j.createFreeStyleProject("testFolder_" + testName.getMethodName()); + } + + @After + public void deleteProject() throws Exception { + jobProject.delete(); } @Test @@ -28,14 +44,71 @@ public void getJobGroupNameTest() { assertEquals("TestJobGroup", jobProperty.getJobGroupName()); } + @Test + public void getJobGroupNameReturnsNullWhenNotSetAndFalse() { + // Create a JobInclusionJobProperty with useJobGroup set to false and jobGroupName set to null + jobProperty = new JobInclusionJobProperty(false, null); + assertFalse(jobProperty.isUseJobGroup()); + assertNull(jobProperty.getJobGroupName()); + } + + @Test + public void getJobGroupNameReturnsNullWhenNotSetAndTrue() { + // Create a JobInclusionJobProperty with useJobGroup set to true and jobGroupName set to null + jobProperty = new JobInclusionJobProperty(true, null); + assertTrue(jobProperty.isUseJobGroup()); + assertNull(jobProperty.getJobGroupName()); + } + + @Test + public void isUseJobGroupReturnsCorrectValue() { + // Create a JobInclusionJobProperty with useJobGroup set to true + jobProperty = new JobInclusionJobProperty(true, "groupName"); + assertTrue(jobProperty.isUseJobGroup()); + assertEquals("groupName", jobProperty.getJobGroupName()); + + // Create a JobInclusionJobProperty with useJobGroup set to false + JobInclusionJobProperty jobPropertyFalse = new JobInclusionJobProperty(false, "groupName"); + assertFalse(jobPropertyFalse.isUseJobGroup()); + assertEquals("groupName", jobPropertyFalse.getJobGroupName()); + + // Create a JobInclusionJobProperty with null jobGroupName + JobInclusionJobProperty jobPropertyNull = new JobInclusionJobProperty(true, null); + assertTrue(jobPropertyNull.isUseJobGroup()); + assertNull(jobPropertyNull.getJobGroupName()); + } + @Test public void isUseJobGroupTest() { assertTrue(jobProperty.isUseJobGroup()); + + // Create a JobInclusionJobProperty with useJobGroup set to false + JobInclusionJobProperty jobPropertyFalse = new JobInclusionJobProperty(false, "groupName2"); + assertFalse(jobPropertyFalse.isUseJobGroup()); + assertEquals("groupName2", jobPropertyFalse.getJobGroupName()); + + // Create a JobInclusionJobProperty with null jobGroupName + JobInclusionJobProperty jobPropertyNull = new JobInclusionJobProperty(true, null); + assertTrue(jobPropertyNull.isUseJobGroup()); + assertNull(jobPropertyNull.getJobGroupName()); } @Test - public void getDescriptorTest() { - assertNotNull(jobProperty.getDescriptor()); + public void getJobGroupNameReturnsNullWhenJobGroupNameNotSet() { + // Create a JobInclusionJobProperty with useJobGroup set to true and jobGroupName set to null + JobInclusionJobProperty jobProperty = new JobInclusionJobProperty(true, null); + assertTrue(jobProperty.isUseJobGroup()); + assertNull(jobProperty.getJobGroupName()); + + // Create a JobInclusionJobProperty with useJobGroup set to false and jobGroupName set to null + JobInclusionJobProperty jobPropertyFalse = new JobInclusionJobProperty(false, null); + assertFalse(jobPropertyFalse.isUseJobGroup()); + assertNull(jobPropertyFalse.getJobGroupName()); + + // Create a JobInclusionJobProperty with useJobGroup set to true and jobGroupName set to a non-null value + JobInclusionJobProperty jobPropertyWithGroupName = new JobInclusionJobProperty(true, "testJobGroupName"); + assertTrue(jobPropertyWithGroupName.isUseJobGroup()); + assertEquals("testJobGroupName", jobPropertyWithGroupName.getJobGroupName()); } @Test