@Test public void testPerformReturnsSuccessIfNoExceptionsThrown() throws Exception { final BPInstanceConfig instanceConfig = createInstanceConfig(publishers, false, false, false); instanceConfig.setHostConfigurationAccess(mockHostConfigurationAccess); final BapPublisher mockPublisher = createAndAddMockPublisher(hostConfiguration.getName()); mockPublisher.perform(hostConfiguration, buildInfo); assertResult(Result.SUCCESS, instanceConfig); }
@Test public void testDoNotCreateNodeName() throws Exception { final BPInstanceConfig instanceConfig = createInstanceConfig(publishers, false, false, false, "master"); instanceConfig.setHostConfigurationAccess(mockHostConfigurationAccess); final BapPublisher mockPublisher = createAndAddMockPublisher(hostConfiguration.getName()); mockPublisher.perform(hostConfiguration, buildInfo); assertResult(Result.SUCCESS, instanceConfig); assertFalse(buildInfo.getCurrentBuildEnv().getEnvVars().containsKey(BPBuildInfo.ENV_NODE_NAME)); }
@Test public void testPerformReturnsFailureIfFailOnError() throws Exception { final BapPublisher mockPub1 = createAndAddMockPublisher(hostConfiguration.getName()); mockPub1.perform(hostConfiguration, buildInfo); EasyMock.expectLastCall().andThrow(new RuntimeException("Bad stuff here!")); createAndAddMockPublisher(null); final BPInstanceConfig instanceConfig = createInstanceConfig(publishers, false, true, false); instanceConfig.setHostConfigurationAccess(mockHostConfigurationAccess); assertResult(Result.FAILURE, instanceConfig); }
@Test public void testPerformReturnsUnstableAndDoesNotInvokeOtherPublishers() throws Exception { final BapPublisher mockPub1 = createAndAddMockPublisher(hostConfiguration.getName()); mockPub1.perform(hostConfiguration, buildInfo); EasyMock.expectLastCall().andThrow(new RuntimeException("Bad stuff here!")); createAndAddMockPublisher(null); final BPInstanceConfig instanceConfig = createInstanceConfig(publishers, false, false, false); instanceConfig.setHostConfigurationAccess(mockHostConfigurationAccess); assertResult(Result.UNSTABLE, instanceConfig); }
@Test public void testParameterizedPublishing() throws Exception { final String paramName = "PUB_PATTERN"; final ParamPublish paramPublish = new ParamPublish(paramName); buildInfo.getCurrentBuildEnv().getEnvVars().put(paramName, "Bill|Ted"); final BPInstanceConfig instanceConfig = createInstanceConfig(publishers, false, false, false, null, paramPublish); instanceConfig.setHostConfigurationAccess(mockHostConfigurationAccess); createLabeledPublisher("Bill", true); createLabeledPublisher("Neo", false); createLabeledPublisher("Ted", true); createLabeledPublisher("Trinity", false); assertResult(Result.SUCCESS, instanceConfig); }
private void assertFixNodeName( final Map<String, String> envVars, final String nodeName, final String masterNodeName, final String expectedNodeName) throws Exception { envVars.put(BPBuildInfo.ENV_NODE_NAME, nodeName); final BPInstanceConfig instanceConfig = createInstanceConfig(publishers, false, false, false, masterNodeName); instanceConfig.setHostConfigurationAccess(mockHostConfigurationAccess); final BapPublisher mockPublisher = createAndAddMockPublisher(hostConfiguration.getName()); mockPublisher.perform(hostConfiguration, buildInfo); assertResult(Result.SUCCESS, instanceConfig); assertEquals(expectedNodeName, envVars.get(BPBuildInfo.ENV_NODE_NAME)); }
@Test public void testPerformReturnsUnstableWhenNoHostConfigFound() throws Exception { final BapPublisher mockPublisher = createAndAddMockPublisher(null); mockPublisher.setEffectiveEnvironmentInBuildInfo( (AbstractBuild) EasyMock.anyObject(), (BPBuildInfo) EasyMock.anyObject()); EasyMock.expect(mockPublisher.getConfigName()).andReturn(hostConfiguration.getName()); Mockito.reset(mockHostConfigurationAccess); Mockito.when(mockHostConfigurationAccess.getConfiguration(hostConfiguration.getName())) .thenReturn(null); final BPInstanceConfig instanceConfig = createInstanceConfig(publishers, false, false, false); instanceConfig.setHostConfigurationAccess(mockHostConfigurationAccess); assertResult(Result.UNSTABLE, instanceConfig); Mockito.verify(mockHostConfigurationAccess).getConfiguration(hostConfiguration.getName()); }
public BPPlugin( final String consolePrefix, final ArrayList<PUBLISHER> publishers, final boolean continueOnError, final boolean failOnError, final boolean alwaysPublishFromMaster, final String masterNodeName, final ParamPublish paramPublish) { this.delegate = new BPInstanceConfig<PUBLISHER>( publishers, continueOnError, failOnError, alwaysPublishFromMaster, masterNodeName, paramPublish); delegate.setHostConfigurationAccess(this); this.consolePrefix = consolePrefix; }
@Override public boolean perform( final AbstractBuild<?, ?> build, final Launcher launcher, final BuildListener listener) throws InterruptedException, IOException { final PrintStream console = listener.getLogger(); if (!isBuildGoodEnoughToRun(build, console)) return true; final BPBuildEnv currentBuildEnv = new BPBuildEnv( getEnvironmentVariables(build, listener), build.getWorkspace(), build.getTimestamp()); BPBuildEnv targetBuildEnv = null; if (PROMOTION_CLASS_NAME.equals(build.getClass().getCanonicalName())) { AbstractBuild<?, ?> promoted; try { final Method getTarget = build.getClass().getMethod("getTarget", (Class<?>[]) null); promoted = (AbstractBuild) getTarget.invoke(build, (Object[]) null); } catch (Exception e) { throw new RuntimeException(Messages.exception_failedToGetPromotedBuild(), e); } targetBuildEnv = new BPBuildEnv( getEnvironmentVariables(promoted, listener), new FilePath(promoted.getArtifactsDir()), promoted.getTimestamp()); } final BPBuildInfo buildInfo = new BPBuildInfo( listener, consolePrefix, Hudson.getInstance().getRootPath(), currentBuildEnv, targetBuildEnv); fixup(build, buildInfo); final Result result = delegate.perform(buildInfo); if (build.getResult() == null) build.setResult(result); else build.setResult(result.combine(build.getResult())); return result.isBetterOrEqualTo(Result.UNSTABLE); }
private void assertResult(final Result expectedResult, final BPInstanceConfig instanceConfig) { mockControl.replay(); assertEquals(expectedResult, instanceConfig.perform(build, buildInfo)); mockControl.verify(); }
public void setDelegate(final BPInstanceConfig delegate) { this.delegate = delegate; delegate.setHostConfigurationAccess(this); }