/* * The MIT License * * Copyright (c) <2011> <Bruno P. Kinoshita> * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ package hudson.plugins.testlink; 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 java.util.ArrayList; import java.util.List; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.jvnet.hudson.test.Issue; import org.jvnet.hudson.test.JenkinsRule; import hudson.EnvVars; import hudson.plugins.testlink.util.TestLinkHelper; import hudson.tasks.BuildStep; import hudson.tasks.Shell; import hudson.util.VariableResolver; import hudson.util.VariableResolver.ByMap; /** * Tests TestLinkBuilder class. * * @author Bruno P. Kinoshita - http://www.kinoshita.eti.br * @since 2.1 */ public class TestTestLinkBuilder { @Rule public JenkinsRule j = new JenkinsRule(); private TestLinkBuilder builder = null; @Before public void setUp() throws Exception { builder = new TestLinkBuilder("No testlink", "No project", "No plan", "No platform", "No build", "class, time, sample-job-$BUILD_ID", "host, user",Boolean.FALSE, Boolean.FALSE, Boolean.FALSE, Boolean.FALSE, null, null, null, null, Boolean.FALSE, Boolean.FALSE, Boolean.FALSE, Boolean.FALSE, null); } /** * Tests the generated list of custom fields. */ @Issue("13173") @Test public void testListOfCustomFields() { EnvVars envVars = new EnvVars(); @SuppressWarnings({ "unchecked", "rawtypes" }) VariableResolver<String> varRes = new ByMap.ByMap(envVars); envVars.put("BUILD_ID", "1"); String[] customFieldsNames = TestLinkHelper.createArrayOfCustomFieldsNames(varRes, envVars, builder.getCustomFields()); assertNotNull(customFieldsNames); assertTrue(customFieldsNames.length == 3); assertEquals(customFieldsNames[0], "class"); assertEquals(customFieldsNames[1], "time"); assertEquals(customFieldsNames[2], "sample-job-1"); } @Test public void testNull() { builder = new TestLinkBuilder(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null); assertNotNull(builder); assertNull(builder.getTestLinkName()); assertNull(builder.getTestProjectName()); assertNull(builder.getTestPlanName()); assertNull(builder.getPlatformName()); assertNull(builder.getBuildName()); assertNull(builder.getSingleBuildSteps()); assertNull(builder.getBeforeIteratingAllTestCasesBuildSteps()); assertNull(builder.getIterativeBuildSteps()); assertNull(builder.getAfterIteratingAllTestCasesBuildSteps()); assertNull(builder.getCustomFields()); assertNull(builder.getTestPlanCustomFields()); assertNull(builder.getTransactional()); assertNull(builder.getFailIfNoResults()); assertNull(builder.getFailOnNotRun()); } /** * Tests getters methods. */ @Test public void testGetters() { Shell shell = new Shell("ls -la"); List<BuildStep> singleBuildSteps = new ArrayList<BuildStep>(); singleBuildSteps.add(shell); builder = new TestLinkBuilder("No testlink", "No project", "No plan", "No platform", "No build", "class, time", "host, user", Boolean.FALSE, Boolean.FALSE, Boolean.FALSE, Boolean.FALSE, singleBuildSteps, null, null, null, Boolean.FALSE, Boolean.FALSE, Boolean.FALSE, Boolean.FALSE, null); // FreeStyleProject project = new FreeStyleProject(hudson, "No // project"); // assertNotNull ( (AbstractProject<?, // ?>)builder.getProjectAction(project) ); assertNotNull(builder.getTestLinkName()); assertEquals(builder.getTestLinkName(), "No testlink"); assertNotNull(builder.getTestProjectName()); assertEquals(builder.getTestProjectName(), "No project"); assertNotNull(builder.getTestPlanName()); assertEquals(builder.getTestPlanName(), "No plan"); assertNotNull(builder.getPlatformName()); assertEquals(builder.getPlatformName(), "No platform"); assertNotNull(builder.getBuildName()); assertEquals(builder.getBuildName(), "No build"); assertNotNull(builder.getSingleBuildSteps()); assertEquals(builder.getSingleBuildSteps(), singleBuildSteps); assertEquals(builder.getSingleBuildSteps().size(), 1); assertNotNull(builder.getCustomFields()); assertEquals(builder.getCustomFields(), "class, time"); assertNotNull(builder.getTestPlanCustomFields()); assertEquals(builder.getTestPlanCustomFields(), "host, user"); assertFalse(builder.getTransactional()); assertFalse(builder.getFailIfNoResults()); assertFalse(builder.getFailOnNotRun()); } }