use of org.jboss.pnc.dto.GroupBuild in project pnc by project-ncl.
the class BuildTest method shouldTriggerGroupBuildAndFinishWithoutProblems.
@Test
public void shouldTriggerGroupBuildAndFinishWithoutProblems() throws ClientException {
// given
GroupConfiguration groupConfig = groupConfigurationClient.getAll().iterator().next();
// when
GroupBuildParameters groupBuildParameters = new GroupBuildParameters();
groupBuildParameters.setRebuildMode(RebuildMode.FORCE);
GroupBuild groupBuild = groupConfigurationClient.trigger(groupConfig.getId(), groupBuildParameters, GroupBuildRequest.builder().buildConfigurationRevisions(new ArrayList<>()).build());
assertThat(groupBuild).isNotNull().extracting("id").isNotNull().isNotEqualTo("");
// then
EnumSet<BuildStatus> isIn = EnumSet.of(BuildStatus.SUCCESS);
EnumSet<BuildStatus> isNotIn = EnumSet.of(BuildStatus.REJECTED);
ResponseUtils.waitSynchronouslyFor(() -> groupBuildToFinish(groupBuild.getId(), isIn, isNotIn), 15, TimeUnit.SECONDS);
}
use of org.jboss.pnc.dto.GroupBuild in project pnc by project-ncl.
the class BuildTest method shouldRejectGroupBuildWithNoRebuildsRequired.
@Test
public void shouldRejectGroupBuildWithNoRebuildsRequired() throws ClientException {
// given
GroupConfiguration groupConfig = groupConfigurationClient.getAll().iterator().next();
// and after one build is done
GroupBuildParameters groupBuildParameters = new GroupBuildParameters();
groupBuildParameters.setRebuildMode(RebuildMode.FORCE);
GroupBuild groupBuild1 = groupConfigurationClient.trigger(groupConfig.getId(), groupBuildParameters, GroupBuildRequest.builder().buildConfigurationRevisions(new ArrayList<>()).build());
assertThat(groupBuild1).isNotNull().extracting("id").isNotNull().isNotEqualTo("");
ResponseUtils.waitSynchronouslyFor(() -> groupBuildToFinish(groupBuild1.getId(), EnumSet.of(BuildStatus.SUCCESS), null), 15, TimeUnit.SECONDS);
// when next build is triggered
GroupBuild groupBuild2 = groupConfigurationClient.trigger(groupConfig.getId(), new GroupBuildParameters(), GroupBuildRequest.builder().buildConfigurationRevisions(new ArrayList<>()).build());
// then
EnumSet<BuildStatus> isIn = EnumSet.of(BuildStatus.NO_REBUILD_REQUIRED);
EnumSet<BuildStatus> isNotIn = EnumSet.of(BuildStatus.SUCCESS, BuildStatus.REJECTED);
ResponseUtils.waitSynchronouslyFor(() -> groupBuildToFinish(groupBuild2.getId(), isIn, isNotIn), 15, TimeUnit.SECONDS);
}
use of org.jboss.pnc.dto.GroupBuild in project pnc by project-ncl.
the class WebSocketClientTest method testRestGroupBuildFallback.
@Test
public void testRestGroupBuildFallback() throws Exception {
// with
WebSocketSessionHandler handler = new WebSocketSessionHandler();
Undertow wsServer = withHandler(handler);
wsServer.start();
WebSocketClient wsClient = new VertxWebSocketClient();
wsClient.connect("ws://localhost:8082" + NOTIFICATION_PATH).join();
AdvancedGroupConfigurationClient groupConfigurationClient = new AdvancedGroupConfigurationClient(RestClientConfiguration.asUser());
GroupConfiguration gc = groupConfigurationClient.getAll().iterator().next();
// test the actual fallbackSupplier (it's private -> reflection unfortunately)
Method supplier = groupConfigurationClient.getClass().getDeclaredMethod("fallbackSupplier", String.class);
supplier.setAccessible(true);
// when
CompletableFuture<GroupBuildChangedNotification> future = wsClient.catchGroupBuildChangedNotification(() -> invokeMethod(supplier, GroupBuild.class, groupConfigurationClient, gc.getId()), withGConfigId(gc.getId()), withGBuildCompleted());
GroupBuild groupBuild = groupConfigurationClient.trigger(gc.getId(), new GroupBuildParameters(), GroupBuildRequest.builder().build());
// wait for GroupBuild to finish
ResponseUtils.waitSynchronouslyFor(() -> groupBuildToFinish(groupBuild.getId()), 15, TimeUnit.SECONDS);
// make client reconnect and use REST fallback
handler.closeSession();
// then
assertThat(future).succeedsWithin(500, TimeUnit.MILLISECONDS);
wsClient.close();
wsServer.stop();
}
use of org.jboss.pnc.dto.GroupBuild in project pnc by project-ncl.
the class WebSocketsNotificationTest method shouldReceiveBuildSetStatusChangeNotification.
@Test
@InSequence(3)
public void shouldReceiveBuildSetStatusChangeNotification() throws Exception {
// given
GroupBuild groupBuild = GroupBuild.builder().id("1").groupConfig(GroupConfigurationRef.refBuilder().id("1").name("BuildSet1").build()).startTime(Instant.ofEpochMilli(1453118400000L)).endTime(Instant.ofEpochMilli(1453122000000L)).user(User.builder().id("1").username("user1").build()).status(BuildStatus.SUCCESS).build();
BuildSetStatusChangedEvent buildStatusChangedEvent = new DefaultBuildSetStatusChangedEvent(BuildSetStatus.NEW, BuildSetStatus.DONE, groupBuild, "description");
String groupBuildString = mapperProvider.getMapper().writeValueAsString(groupBuild);
String expectedJsonResponse = "{\"groupBuild\":" + groupBuildString + ",\"job\":\"GROUP_BUILD\",\"notificationType\":\"GROUP_BUILD_STATUS_CHANGED\",\"progress\":\"FINISHED\",\"oldProgress\":\"IN_PROGRESS\",\"message\":null}";
// when
buildSetStatusNotificationEvent.fire(buildStatusChangedEvent);
// then
Wait.forCondition(() -> isReceived(expectedJsonResponse), 15, ChronoUnit.SECONDS);
}
use of org.jboss.pnc.dto.GroupBuild in project pnc by project-ncl.
the class GroupBuildEndpointTest method shouldGetSpecificGroupBuild.
@Test
public void shouldGetSpecificGroupBuild() throws ClientException {
GroupBuild build = anonymousClient.getSpecific(groupBuildId1);
assertThat(build.getId()).isEqualTo(groupBuildId1);
assertThat(build.getGroupConfig()).isNotNull();
assertThat(build.getUser()).isNotNull();
assertThat(build.getStartTime()).isNotNull();
assertThat(build.getEndTime()).isNotNull();
assertThat(build.getStatus()).isNotNull();
assertThat(build.getTemporaryBuild()).isNotNull();
assertThat(build.getGroupConfig()).isNotNull();
}
Aggregations