Skip to content

Commit 18614b5

Browse files
committed
NCL7800 Implement Build Artifact Graph integration tests
1 parent ac24583 commit 18614b5

File tree

2 files changed

+56
-4
lines changed

2 files changed

+56
-4
lines changed

demo-data/src/main/java/org/jboss/pnc/demo/data/DatabaseDataInitializer.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1024,6 +1024,7 @@ public void initiliazeBuildRecordDemoData() {
10241024
.executionRootVersion("7.0.3")
10251025
.temporaryBuild(false)
10261026
.dependency(importedArtifact1)
1027+
.dependency(builtArtifact10)
10271028
.build();
10281029

10291030
nextId = Sequence.nextBase32Id();

integration-test/src/test/java/org/jboss/pnc/integration/endpoints/BuildEndpointTest.java

Lines changed: 55 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@
4141
import org.jboss.pnc.dto.BuildConfigurationRevisionRef;
4242
import org.jboss.pnc.dto.BuildRef;
4343
import org.jboss.pnc.dto.User;
44-
import org.jboss.pnc.dto.requests.BuildPushParameters;
44+
import org.jboss.pnc.dto.response.Edge;
45+
import org.jboss.pnc.dto.response.Graph;
4546
import org.jboss.pnc.enums.ArtifactQuality;
4647
import org.jboss.pnc.enums.BuildCategory;
4748
import org.jboss.pnc.enums.BuildStatus;
@@ -102,9 +103,11 @@
102103
public class BuildEndpointTest {
103104

104105
private static final Logger logger = LoggerFactory.getLogger(BuildEndpointTest.class);
105-
private static String buildId;
106-
private static String build2Id;
107-
private static String build3Id;
106+
private static String buildId; // buildRecord1
107+
private static String build2Id; // tempRecord1
108+
private static String build3Id; // buildRecord2
109+
private static String build5Id; // buildRecord3
110+
private static String build6Id; // buildRecord4
108111

109112
@Deployment
110113
public static EnterpriseArchive deploy() {
@@ -126,6 +129,9 @@ public static void prepareData() throws Exception {
126129
buildId = it.next().getId();
127130
build2Id = it.next().getId();
128131
build3Id = it.next().getId();
132+
it.next().getId();
133+
build5Id = it.next().getId();
134+
build6Id = it.next().getId();
129135
}
130136

131137
@Test
@@ -736,6 +742,51 @@ public void shouldReportLeafTempBuildThatDependsOnItself() throws RemoteResource
736742
assertThat(attributes).containsEntry(org.jboss.pnc.api.constants.Attributes.BUILD_BREW_VERSION, "1.2.4");
737743
}
738744

745+
@Test
746+
@InSequence(1)
747+
public void testGetBuildArtifactDependencyGraph() throws ClientException {
748+
// arrange
749+
BuildClient client = new BuildClient(RestClientConfiguration.asAnonymous());
750+
751+
Set<String> expectedVerticesKeys = Set.of(build6Id, buildId, build2Id, build5Id);
752+
List<Edge<Build>> expectedEdges = List.of(
753+
Edge.<Build> builder().source(build6Id).target(buildId).cost(1).build(), // importedArtifact1 (set to be
754+
// part of buildId Build in
755+
// shouldSetBuiltArtifacts)
756+
Edge.<Build> builder().source(buildId).target(build2Id).cost(1).build(), // builtArtifact3 (set as a
757+
// dependency of buildId Build
758+
// in
759+
// shouldSetDependentArtifacts)
760+
Edge.<Build> builder().source(build6Id).target(build5Id).cost(1).build()); // builtArtifact10
761+
762+
// act
763+
Graph<Build> actualGraph = client.getBuildArtifactDependencyGraph(build6Id, null);
764+
765+
// assert
766+
assertThat(actualGraph.getVertices().keySet()).containsExactlyInAnyOrderElementsOf(expectedVerticesKeys);
767+
assertThat(actualGraph.getEdges()).containsExactlyInAnyOrderElementsOf(expectedEdges);
768+
}
769+
770+
@Test
771+
@InSequence(2)
772+
public void testGetBuildArtifactDependencyGraphWithDependants() throws ClientException {
773+
// arrange
774+
BuildClient client = new BuildClient(RestClientConfiguration.asAnonymous());
775+
776+
Set<String> expectedVerticesKeys = Set.of(build6Id, buildId, build2Id, build3Id);
777+
List<Edge<Build>> expectedEdges = List.of(
778+
Edge.<Build> builder().source(build6Id).target(buildId).cost(1).build(), // importedArtifact1
779+
Edge.<Build> builder().source(build3Id).target(buildId).cost(1).build(), // importedArtifact1
780+
Edge.<Build> builder().source(buildId).target(build2Id).cost(1).build()); // builtArtifact3
781+
782+
// act
783+
Graph<Build> actualGraph = client.getBuildArtifactDependencyGraph(buildId, null);
784+
785+
// assert
786+
assertThat(actualGraph.getVertices().keySet()).containsExactlyInAnyOrderElementsOf(expectedVerticesKeys);
787+
assertThat(actualGraph.getEdges()).containsExactlyInAnyOrderElementsOf(expectedEdges);
788+
}
789+
739790
private Set<Integer> artifactIds(RemoteCollection<Artifact> artifacts) {
740791
Set<Integer> artifactIds = new HashSet<>();
741792
for (Artifact a : artifacts) {

0 commit comments

Comments
 (0)