use of org.jboss.pnc.client.RemoteCollection in project pnc by project-ncl.
the class GroupConfigurationEndpointTest method testConcurrentGet.
/**
* reproducer for NCL-3552
*/
@Test
public void testConcurrentGet() throws RemoteResourceException {
GroupConfigurationClient client = new GroupConfigurationClient(RestClientConfiguration.asUser());
Map<Integer, RemoteCollection<BuildConfiguration>> responseMap = new HashMap<>();
String gcId = "100";
ExecutorService executorService = MDCExecutors.newFixedThreadPool(2);
executorService.execute(() -> {
logger.info("Making 1st request ...");
RemoteCollection<BuildConfiguration> configurations = null;
try {
configurations = client.getBuildConfigs(gcId);
} catch (RemoteResourceException e) {
// detected with null in responseMap
}
logger.info("1st done.");
responseMap.put(1, configurations);
});
executorService.execute(() -> {
logger.info("Making 2nd request ...");
RemoteCollection<BuildConfiguration> configurations = null;
try {
configurations = client.getBuildConfigs(gcId);
} catch (RemoteResourceException e) {
// detected with null in responseMap
}
logger.info("2nd done.");
responseMap.put(2, configurations);
});
try {
executorService.awaitTermination(10, TimeUnit.SECONDS);
} catch (InterruptedException e) {
executorService.shutdownNow();
throw new AssertionError("Requests were not completed in given timeout.", e);
}
assertThat(responseMap).containsKeys(1, 2).doesNotContainValue(null);
}
use of org.jboss.pnc.client.RemoteCollection in project bacon by project-ncl.
the class PncBuilderTest method getCountOfBuildConfigsForGroupBuild.
@Test
void getCountOfBuildConfigsForGroupBuild() throws Exception {
Map<String, BuildConfigurationRef> buildConfigurations = new HashMap<>();
BuildConfigurationRef bc1 = easyRandom.nextObject(BuildConfigurationRef.class);
BuildConfigurationRef bc2 = easyRandom.nextObject(BuildConfigurationRef.class);
BuildConfigurationRef bc3 = easyRandom.nextObject(BuildConfigurationRef.class);
buildConfigurations.put(bc1.getName(), bc1);
buildConfigurations.put(bc2.getName(), bc2);
buildConfigurations.put(bc3.getName(), bc3);
String groupConfigurationId = "5";
String groupBuildId = "1";
GroupConfiguration gc = GroupConfiguration.builder().id(groupConfigurationId).buildConfigs(buildConfigurations).build();
GroupBuild gb = GroupBuild.builder().id(groupBuildId).groupConfig(gc).build();
when(groupBuildClient.getSpecific(groupBuildId)).thenReturn(gb);
when(groupConfigurationClient.getBuildConfigs(groupConfigurationId)).thenReturn(new RemoteCollection<BuildConfiguration>() {
@Override
public int size() {
return buildConfigurations.size();
}
@Override
public Collection<BuildConfiguration> getAll() {
return null;
}
@Override
public Iterator<BuildConfiguration> iterator() {
return null;
}
});
try (PncBuilder builder = new PncBuilder(groupBuildClient, groupConfigurationClient)) {
assertEquals(buildConfigurations.size(), builder.getCountOfBuildConfigsForGroupBuild(groupBuildId));
}
}
use of org.jboss.pnc.client.RemoteCollection in project pnc by project-ncl.
the class ProductMilestoneEndpointTest method shouldGetMilestoneRelease.
@Test
public void shouldGetMilestoneRelease() throws IOException, RemoteResourceException {
// given
ProductClient productClient = new ProductClient(RestClientConfiguration.asAnonymous());
RemoteCollection<Product> products = productClient.getAll(Optional.empty(), Optional.of("name==\"" + PNC_PRODUCT_NAME + "\""));
Product product = products.iterator().next();
Map<String, ProductVersionRef> productVersions = product.getProductVersions();
Optional<ProductVersionRef> productVersion = productVersions.values().stream().filter(pv -> pv.getVersion().equals(DatabaseDataInitializer.PNC_PRODUCT_VERSION_1)).findAny();
ProductVersionClient productVersionClient = new ProductVersionClient(RestClientConfiguration.asAnonymous());
RemoteCollection<ProductMilestone> milestones = productVersionClient.getMilestones(productVersion.get().getId(), Optional.empty(), Optional.of("version==\"" + PNC_PRODUCT_MILESTONE3 + "\""));
ProductMilestone milestone = milestones.iterator().next();
ProductMilestoneClient milestoneClient = new ProductMilestoneClient(RestClientConfiguration.asAnonymous());
// when
RemoteCollection<ProductMilestoneCloseResult> milestoneReleases = milestoneClient.getCloseResults(milestone.getId(), null);
// then
Assert.assertEquals(3, milestoneReleases.size());
// make sure the result is ordered by date
Instant previous = Instant.EPOCH;
for (Iterator<ProductMilestoneCloseResult> iter = milestoneReleases.iterator(); iter.hasNext(); ) {
ProductMilestoneCloseResult next = iter.next();
logger.debug("MilestoneRelease id: {}, StartingDate: {}.", next.getId(), next.getStartingDate());
Assert.assertTrue("Wong milestone releases order.", next.getStartingDate().isAfter(previous));
previous = next.getStartingDate();
}
// when
ProductMilestoneCloseParameters filter = new ProductMilestoneCloseParameters();
filter.setLatest(true);
RemoteCollection<ProductMilestoneCloseResult> latestMilestoneRelease = milestoneClient.getCloseResults(milestone.getId(), filter);
// then
Assert.assertEquals(1, latestMilestoneRelease.getAll().size());
// the latest one in demo data has status SUCCEEDED
Assert.assertEquals(MilestoneCloseStatus.SUCCEEDED, latestMilestoneRelease.iterator().next().getStatus());
}
use of org.jboss.pnc.client.RemoteCollection in project pnc by project-ncl.
the class SCMRepositoryEndpointTest method testGetBuildConfigurationForARepository.
@Test
public void testGetBuildConfigurationForARepository() throws ClientException {
BuildConfigurationClient buildConfigurationClient = new BuildConfigurationClient(RestClientConfiguration.asUser());
SCMRepository scmRepository = repositoryClient.getAll(null, null).iterator().next();
Iterator<BuildConfiguration> allConfigsIterator = buildConfigurationClient.getAll().iterator();
BuildConfiguration buildConfiguration1 = allConfigsIterator.next().toBuilder().scmRepository(scmRepository).build();
BuildConfiguration buildConfiguration2 = allConfigsIterator.next().toBuilder().scmRepository(scmRepository).build();
buildConfigurationClient.update(buildConfiguration1.getId(), buildConfiguration1);
buildConfigurationClient.update(buildConfiguration2.getId(), buildConfiguration2);
RemoteCollection<BuildConfiguration> buildConfigs = repositoryClient.getBuildConfigs(scmRepository.getId());
assertThat(buildConfigs).usingElementComparatorIgnoringFields("modificationTime", "creationUser", "modificationUser").contains(buildConfiguration1, buildConfiguration2).allSatisfy((bc -> scmRepository.equals(bc.getScmRepository())));
}
Aggregations