/** * Invokes the local build pipeline. * @param buildRequest the buildRequest configures the build to perform. * @return the pipeline output. */ public LocalBinaryConfig invokeLocalBuildPipeLine(LocalBuildRequest buildRequest) { final LocalBinaryConfig[] result = new LocalBinaryConfig[1]; invokeLocalBuildPipeLine(buildRequest, localBinaryConfig -> { result[0] = localBinaryConfig; }); return result[0]; }
private String encodeResourceChangePath(Path path) { return LocalBuildConfig.RESOURCE_CHANGE + encodePath(path); }
private void addResourceChanges(Input input, Map<Path, Collection<ResourceChange>> resourceChanges) { resourceChanges.entrySet().forEach(entry -> { input.put(encodeResourceChangePath(entry.getKey()), encodeResourceChanges(entry.getValue())); }); }
@Before public void setUp() { pipelineInvoker = new BuildPipelineInvoker(pipelineExecutor, pipelineRegistry); when(pipelineRegistry.getPipelineByName(BuildPipelineInitializer.LOCAL_BUILD_PIPELINE)).thenReturn(pipeline); when(buildRequest.getModule()).thenReturn(module); when(module.getRootPath()).thenReturn(rootPath); when(rootPath.toURI()).thenReturn(ROOT_PATH_URI); when(resource.toURI()).thenReturn(RESOURCE_URI_1); }
private void invokeLocalBuildPipeLine(Module module, LocalBuildConfig.BuildType buildType, Path resource, Consumer<LocalBinaryConfig> consumer) { BuildPipelineInvoker.LocalBuildRequest buildRequest = BuildPipelineInvoker.LocalBuildRequest.newIncrementalBuildRequest(module, buildType, resource); buildPipelineInvoker.invokeLocalBuildPipeLine(buildRequest, consumer); }
private void invokeLocalBuildPipeLine(Module module, Consumer<LocalBinaryConfig> consumer) { BuildPipelineInvoker.LocalBuildRequest buildRequest = BuildPipelineInvoker.LocalBuildRequest.newFullBuildRequest(module); buildPipelineInvoker.invokeLocalBuildPipeLine(buildRequest, consumer); }
private void invokeLocalBuildPipeLine(Module module, Map<Path, Collection<ResourceChange>> resourceChanges, Consumer<LocalBinaryConfig> consumer) { BuildPipelineInvoker.LocalBuildRequest buildRequest = BuildPipelineInvoker.LocalBuildRequest.newIncrementalBuildRequest(module, resourceChanges); buildPipelineInvoker.invokeLocalBuildPipeLine(buildRequest, consumer); }
private void preparePipelineInvocation(BuildPipelineInvoker.LocalBuildRequest buildRequest) { //emulate the pipeline invocation with the desired params. doAnswer(new Answer<Void>() { public Void answer(InvocationOnMock invocation) { Consumer consumer = (Consumer) invocation.getArguments()[1]; consumer.accept(localBinaryConfig); return null; } }).when(pipelineInvoker).invokeLocalBuildPipeLine(eq(buildRequest), any(Consumer.class)); } }
private void verifyBuildAndDeploy(BuildResults result) { assertEquals(buildResults, result); verify(pipelineInvoker, times(1)).invokeLocalBuildPipeLine(eq(expectedRequest), any(Consumer.class)); }
private void invokeLocalBuildPipeLine(Module module, boolean suppressHandlers, DeploymentMode mode, Consumer<LocalBinaryConfig> consumer) { deploymentVerifier.verifyWithException(module, mode); BuildPipelineInvoker.LocalBuildRequest buildRequest = BuildPipelineInvoker.LocalBuildRequest.newFullBuildAndDeployRequest(module, toDeploymentType(mode), suppressHandlers); buildPipelineInvoker.invokeLocalBuildPipeLine(buildRequest, consumer); }
@Test public void testLocalBuild() { prepareLocalFullBuild(); when(localBinaryConfig.getBuildResults()).thenReturn(buildResults); BuildResults result = serviceHelper.localBuild(module); assertEquals(buildResults, result); verify(pipelineInvoker, times(1)).invokeLocalBuildPipeLine(eq(expectedRequest), any(Consumer.class)); }
@Test public void testLocalBuildWithConsumer() { prepareLocalFullBuild(); serviceHelper.localBuild(module, new Consumer<LocalBinaryConfig>() { @Override public void accept(LocalBinaryConfig result) { // the returned result should the same as the localBinaryConfig produced by the PipelineInvoker. assertEquals(localBinaryConfig, result); } }); verify(pipelineInvoker, times(1)).invokeLocalBuildPipeLine(eq(expectedRequest), any(Consumer.class)); }
private void testLocalBuildWithResource(Module module, LocalBuildConfig.BuildType buildType, Path resource) { BuildPipelineInvoker.LocalBuildRequest buildRequest = BuildPipelineInvoker.LocalBuildRequest.newIncrementalBuildRequest(module, buildType, resource); preparePipelineInvocation(buildRequest); when(localBinaryConfig.getIncrementalBuildResults()).thenReturn(incrementalBuildResults); IncrementalBuildResults result = serviceHelper.localBuild(module, buildType, resource); assertEquals(incrementalBuildResults, result); verify(pipelineInvoker, times(1)).invokeLocalBuildPipeLine(eq(buildRequest), any(Consumer.class)); }
private void testFullBuildAndDeployRequest(LocalBuildConfig.DeploymentType deploymentType) { when(buildRequest.getBuildType()).thenReturn(LocalBuildConfig.BuildType.FULL_BUILD_AND_DEPLOY); when(buildRequest.getDeploymentType()).thenReturn(deploymentType); when(buildRequest.isSuppressHandlers()).thenReturn(false); // the pipeline should be invoked with this input. input = createFullBuildAndDeployInput(ROOT_PATH_URI, deploymentType.name(), false); preparePipeline(input); LocalBinaryConfig result = pipelineInvoker.invokeLocalBuildPipeLine(buildRequest); verifyPipelineInvocation(localBinaryConfig, result); }
@Test public void testLocalBuildWithResourceChanges() { BuildPipelineInvoker.LocalBuildRequest buildRequest = BuildPipelineInvoker.LocalBuildRequest.newIncrementalBuildRequest(module, resourceChanges); preparePipelineInvocation(buildRequest); when(localBinaryConfig.getIncrementalBuildResults()).thenReturn(incrementalBuildResults); IncrementalBuildResults result = serviceHelper.localBuild(module, resourceChanges); assertEquals(incrementalBuildResults, result); verify(pipelineInvoker, times(1)).invokeLocalBuildPipeLine(eq(buildRequest), any(Consumer.class)); }
private void testIncrementalBuildResourceRequest(LocalBuildConfig.BuildType buildType, Path resource) { when(buildRequest.getBuildType()).thenReturn(buildType); when(buildRequest.getResource()).thenReturn(resource); when(buildRequest.isSingleResource()).thenReturn(true); // the pipeline should be invoked with this input. input = createIncrementalBuildInput(ROOT_PATH_URI, RESOURCE_URI_1, buildType.name()); preparePipeline(input); LocalBinaryConfig result = pipelineInvoker.invokeLocalBuildPipeLine(buildRequest); verifyPipelineInvocation(localBinaryConfig, result); }
@Test public void testFullBuildRequest() { when(buildRequest.getBuildType()).thenReturn(LocalBuildConfig.BuildType.FULL_BUILD); // the pipeline should be invoked with this input. input = createFullBuildInput(ROOT_PATH_URI); preparePipeline(input); LocalBinaryConfig result = pipelineInvoker.invokeLocalBuildPipeLine(buildRequest); verifyPipelineInvocation(localBinaryConfig, result); }
@Test public void testIncrementalBuildResourceChanges() { Map<Path, Collection<ResourceChange>> resourceChanges = createResourceChanges(changes); when(buildRequest.getBuildType()).thenReturn(LocalBuildConfig.BuildType.INCREMENTAL_BATCH_CHANGES); when(buildRequest.isSingleResource()).thenReturn(false); when(buildRequest.getResourceChanges()).thenReturn(resourceChanges); // the pipeline should be invoked with this input. input = createBatchChangesInput(ROOT_PATH_URI, LocalBuildConfig.BuildType.INCREMENTAL_BATCH_CHANGES.name(), changes); preparePipeline(input); LocalBinaryConfig result = pipelineInvoker.invokeLocalBuildPipeLine(buildRequest); verifyPipelineInvocation(localBinaryConfig, result); }