use of org.jboss.pnc.spi.events.BuildStatusChangedEvent in project pnc by project-ncl.
the class ProjectBuilder method buildProjectsAndVerifyResult.
private void buildProjectsAndVerifyResult(BuildConfigurationSet buildConfigurationSet, BuildCoordinator buildCoordinator, int nStatusUpdates, Verifier verifier) throws InterruptedException, CoreException {
log.info("Building configuration set {}", buildConfigurationSet.getName());
List<BuildStatusChangedEvent> receivedStatuses = new CopyOnWriteArrayList<>();
List<BuildSetStatusChangedEvent> receivedSetStatuses = new CopyOnWriteArrayList<>();
BuildSetTask buildSetTask = buildProjectsAndWaitForUpdates(buildConfigurationSet, buildCoordinator, nStatusUpdates, x -> {
}, receivedStatuses, receivedSetStatuses);
log.info("Checking if received all status updates...");
verifier.verify(receivedStatuses, buildSetTask);
}
use of org.jboss.pnc.spi.events.BuildStatusChangedEvent in project pnc by project-ncl.
the class SingleProjectBuildTest method buildWithAdvancedOptionsTest.
@Test
public void buildWithAdvancedOptionsTest() throws Exception {
// given
BuildOptions originalBuildOptions = new BuildOptions(true, true, true, true, RebuildMode.FORCE, AlignmentPreference.PREFER_PERSISTENT);
DatastoreMock datastoreMock = new DatastoreMock();
TestProjectConfigurationBuilder configurationBuilder = new TestProjectConfigurationBuilder(datastoreMock);
List<BuildStatusChangedEvent> receivedStatuses = new CopyOnWriteArrayList<>();
// when
BuildCoordinator coordinator = buildCoordinatorFactory.createBuildCoordinator(datastoreMock).coordinator;
BuildTask buildTask = buildProject(configurationBuilder.build(1, "c1-java"), coordinator, receivedStatuses::add, originalBuildOptions);
// then
List<BuildRecord> buildRecords = datastoreMock.getBuildRecords();
Assert.assertEquals("Wrong datastore results count.", 1, buildRecords.size());
Assert.assertEquals(originalBuildOptions, buildTask.getBuildOptions());
}
use of org.jboss.pnc.spi.events.BuildStatusChangedEvent in project pnc by project-ncl.
the class SingleProjectBuildTest method buildSingleProjectTestCase.
@Test
public void buildSingleProjectTestCase() throws Exception {
// given
DatastoreMock datastoreMock = new DatastoreMock();
TestProjectConfigurationBuilder configurationBuilder = new TestProjectConfigurationBuilder(datastoreMock);
List<BuildStatusChangedEvent> receivedStatuses = new CopyOnWriteArrayList<>();
// when
BuildCoordinator coordinator = buildCoordinatorFactory.createBuildCoordinator(datastoreMock).coordinator;
buildProject(configurationBuilder.build(1, "c1-java"), coordinator, receivedStatuses::add);
// expect
List<BuildRecord> buildRecords = datastoreMock.getBuildRecords();
Assert.assertEquals("Wrong datastore results count.", 1, buildRecords.size());
BuildRecord buildRecord = buildRecords.get(0);
String buildLog = buildRecord.getBuildLog();
Assert.assertTrue("Invalid build log.", buildLog.contains(BuildDriverResultMock.BUILD_LOG));
assertArtifactsPresent(buildRecord.getBuiltArtifacts());
assertArtifactsPresent(buildRecord.getDependencies());
Assert.assertNotNull(buildRecord.getSubmitTime());
Assert.assertNotNull(buildRecord.getStartTime());
Assert.assertNotNull(buildRecord.getEndTime());
receivedStatuses.stream().filter(e -> e.getNewStatus().isFinal()).forEach(e -> Assert.assertNotNull("Final event " + e + " should have end build time.", e.getBuild().getEndTime()));
}
use of org.jboss.pnc.spi.events.BuildStatusChangedEvent in project pnc by project-ncl.
the class SingleProjectBuildTest method buildWithBasicOptionsTest.
@Test
public void buildWithBasicOptionsTest() throws Exception {
// given
DatastoreMock datastoreMock = new DatastoreMock();
TestProjectConfigurationBuilder configurationBuilder = new TestProjectConfigurationBuilder(datastoreMock);
List<BuildStatusChangedEvent> receivedStatuses = new CopyOnWriteArrayList<>();
// when
BuildCoordinator coordinator = buildCoordinatorFactory.createBuildCoordinator(datastoreMock).coordinator;
BuildTask buildTask = buildProject(configurationBuilder.build(1, "c1-java"), coordinator, receivedStatuses::add);
// then
List<BuildRecord> buildRecords = datastoreMock.getBuildRecords();
Assert.assertEquals("Wrong datastore results count.", 1, buildRecords.size());
Assert.assertEquals(new BuildOptions(), buildTask.getBuildOptions());
}
use of org.jboss.pnc.spi.events.BuildStatusChangedEvent in project pnc by project-ncl.
the class ProcessProgressNotificationTest method shouldSubscribeToProcessUpdatesNotification.
@Test
public void shouldSubscribeToProcessUpdatesNotification() throws Exception {
// given
Integer taskId = 1;
Build build = BuildMock.newBuild(taskId, BuildStatus.SUCCESS, "Build1");
BuildStatusChangedEvent buildStatusChangedEvent = new DefaultBuildStatusChangedEvent(build, BuildStatus.NEW, build.getStatus());
// when
buildStatusNotificationEvent.fire(buildStatusChangedEvent);
ProgressUpdatesRequest progressUpdatesRequest = new ProgressUpdatesRequest(Action.SUBSCRIBE, "component-build", taskId.toString());
String text = JsonOutputConverterMapper.apply(new TypedMessage<>(MessageType.PROCESS_UPDATES, progressUpdatesRequest));
logger.info("Sending test message:" + text);
asyncRemote.sendText(text);
waitForMessages(1);
// then
logger.info("Received: " + notificationCollector.getMessages().get(0));
assertTrue(notificationCollector.getMessages().get(0).startsWith("{\"oldStatus\":\"NEW\",\"build\":{\"id\":\"1\",\"submitTime\":null,\"startTime\":null,\"endTime\":null,\"progress\":null,\"status\":\"SUCCESS\","));
}
Aggregations