1414
1515import javax .inject .Inject ;
1616
17+ import org .apache .tinkerpop .gremlin .process .traversal .P ;
1718import org .apache .tinkerpop .gremlin .process .traversal .dsl .graph .GraphTraversal ;
1819import org .apache .tinkerpop .gremlin .process .traversal .dsl .graph .GraphTraversalSource ;
1920import org .apache .tinkerpop .gremlin .structure .Edge ;
2425import org .carlspring .strongbox .janusgraph .domain .ArtifactEntry ;
2526import org .janusgraph .core .JanusGraph ;
2627import org .junit .jupiter .api .Test ;
27- import org .neo4j .ogm .session .Session ;
2828import org .neo4j .ogm .session .SessionFactory ;
2929import org .slf4j .Logger ;
3030import org .slf4j .LoggerFactory ;
@@ -39,12 +39,15 @@ public class ArtifactEntryRepositoryTest
3939 @ Inject
4040 private ArtifactEntryRepository artifactEntryRepository ;
4141
42+ @ Inject
43+ private ArtifactCoordinatesRepository artifactCoordinatesRepository ;
44+
4245 @ Inject
4346 private JanusGraph janusGraph ;
4447
4548 @ Inject
4649 private SessionFactory sessionFactory ;
47-
50+
4851 @ Test
4952 public void crudShouldWork ()
5053 {
@@ -66,6 +69,12 @@ public void crudShouldWork()
6669 ArtifactEntry artifactEntrySaved = artifactEntryRepository .save (artifactEntry );
6770 assertEquals (artifactEntrySaved .getUuid (), artifactEntry .getUuid ());
6871
72+ ArtifactDependency artifactDependency = new ArtifactDependency ();
73+ artifactDependency .setUuid (UUID .randomUUID ().toString ());
74+ artifactDependency .setSubject (artifactEntry );
75+ artifactDependency .setDependency (artifactCoordinates );
76+ sessionFactory .openSession ().save (artifactDependency );
77+
6978 artifactEntrySaved = artifactEntryRepository .findByPath ("org/carlspring/test-artifact-3.0.0.jar" );
7079 assertNotNull (artifactEntrySaved );
7180 assertEquals (artifactEntrySaved .getUuid (), artifactEntry .getUuid ());
@@ -81,26 +90,28 @@ public void crudShouldWork()
8190 @ Test
8291 public void manyToOneRelationShouldWork ()
8392 {
84- String artifactCoordinatesUuid = UUID .randomUUID ().toString ();
85- ArtifactCoordinates artifactCoordinates = new ArtifactCoordinates ();
86- artifactCoordinates .setPath ("org/carlspring/test-artifact-4.0.0.jar" );
87- artifactCoordinates .setUuid (artifactCoordinatesUuid );
88- artifactCoordinates .setVersion ("4.0.0" );
89-
9093 String artifactEntryUuid = UUID .randomUUID ().toString ();
91- ArtifactEntry artifactEntry = new ArtifactEntry ();
92- artifactEntry .setUuid (artifactEntryUuid );
93- artifactEntry .setStorageId ("storage0" );
94- artifactEntry .setRepositoryId ("releases" );
95- artifactEntry .setSizeInBytes (123L );
96- artifactEntry .setTags (new HashSet <>(Arrays .asList ("release" , "stabile" )));
97- artifactEntry .setArtifactCoordinates (artifactCoordinates );
98- artifactEntry .setCreated (new Date ());
99-
100- ArtifactEntry artifactEntrySaved = artifactEntryRepository .save (artifactEntry );
101- assertEquals (artifactEntrySaved .getUuid (), artifactEntry .getUuid ());
94+ String artifactCoordinatesUuid = UUID .randomUUID ().toString ();
10295
10396 GraphTraversalSource g = janusGraph .traversal ();
97+ g .addV (ArtifactCoordinates .LABEL )
98+ .property ("uuid" , artifactCoordinatesUuid )
99+ .property ("path" ,
100+ "org/carlspring/test-artifact-4.0.0.jar" )
101+ .property ("version" ,
102+ "4.0.0" )
103+ .as ("ac" )
104+ .addV (ArtifactEntry .LABEL )
105+ .property ("uuid" , artifactEntryUuid )
106+ .property ("storageId" , "storage0" )
107+ .property ("repositoryId" , "releases" )
108+ .property ("sizeInBytes" , 123L )
109+ .property ("tags" , new HashSet <>(Arrays .asList ("release" , "stabile" )))
110+ .property ("created" , new Date ())
111+ .as ("ae" )
112+ .addE ("ArtifactEntry_ArtifactCoordinates" )
113+ .to ("ac" )
114+ .next ();
104115
105116 // Relation should exists
106117 GraphTraversal <Vertex , Edge > edgeQuery = g .V ()
@@ -110,7 +121,7 @@ public void manyToOneRelationShouldWork()
110121 assertTrue (edgeQuery .hasNext ());
111122 Edge artifactEntry2ArtifactCoordinatesEdge = edgeQuery .next ();
112123 logger .info (String .valueOf (artifactEntry2ArtifactCoordinatesEdge ));
113- assertEquals (ArtifactEntry .class .getSimpleName () + "# " + ArtifactCoordinates .class .getSimpleName (),
124+ assertEquals (ArtifactEntry .class .getSimpleName () + "_ " + ArtifactCoordinates .class .getSimpleName (),
114125 artifactEntry2ArtifactCoordinatesEdge .label ());
115126
116127 // ArtifactCoordinates should exists
@@ -136,43 +147,58 @@ public void manyToOneRelationShouldWork()
136147 Vertex artifactEntryAnotherVertex = vertexQuery .next ();
137148 assertEquals (artifactCoordinatesUuid , artifactCoordinatesVertex .property ("uuid" ).value ());
138149 assertEquals (ArtifactEntry .class .getSimpleName (), artifactEntryAnotherVertex .label ());
150+
151+ g .tx ().rollback ();
139152 }
140-
153+
141154 @ Test
142- public void artifactDependencyTreeShouldWork () {
143- String subjectUuid = UUID .randomUUID ().toString ();
144-
145- ArtifactEntry artifactEntrySubject = new ArtifactEntry ();
146- artifactEntrySubject .setUuid (subjectUuid );
147- artifactEntrySubject .setStorageId ("storage0" );
148- artifactEntrySubject .setRepositoryId ("releases" );
149- artifactEntrySubject .setSizeInBytes (123L );
150- artifactEntrySubject .setTags (new HashSet <>(Arrays .asList ("release" , "stabile" )));
151- //artifactEntry.setArtifactCoordinates(artifactCoordinates);
152- artifactEntrySubject .setCreated (new Date ());
153-
154- String dependencyUuid = UUID .randomUUID ().toString ();
155- ArtifactEntry artifactEntryDependency = new ArtifactEntry ();
156- artifactEntryDependency .setUuid (dependencyUuid );
157- artifactEntryDependency .setStorageId ("storage0" );
158- artifactEntryDependency .setRepositoryId ("releases" );
159- artifactEntryDependency .setSizeInBytes (123L );
160- artifactEntryDependency .setTags (new HashSet <>(Arrays .asList ("release" , "stabile" )));
161- //artifactEntry.setArtifactCoordinates(artifactCoordinates);
162- artifactEntryDependency .setCreated (new Date ());
163-
164- ArtifactDependency artifactDependency = new ArtifactDependency ();
165- artifactDependency .setUuid (UUID .randomUUID ().toString ());
166- artifactDependency .setSubject (artifactEntrySubject );
167- artifactDependency .setDependency (artifactEntryDependency );
168-
169- Session session = sessionFactory .openSession ();
170- session .save (artifactEntrySubject );
171- session .save (artifactEntryDependency );
172- session .save (artifactDependency );
155+ public void artifactDependencyTreeShouldWork ()
156+ {
157+ GraphTraversalSource g = janusGraph .traversal ();
173158
174- List <ArtifactEntry > dependencies = artifactEntryRepository .findAllDependentArtifactEntries (dependencyUuid );
175- assertEquals (1 , dependencies .size ());
159+ // ArtifactEntry->ArtifactDependency\
160+ // ..................................->ArtifactCoordinates
161+ // ArtifactEntry->ArtifactDependency/
162+ // .............\
163+ // ..............>ArtifactDependency->ArtifactCoordinates
164+ g .addV (ArtifactCoordinates .LABEL )
165+ .property ("uuid" , UUID .randomUUID ().toString ())
166+ .property ("path" ,
167+ "org/carlspring/test/dependency.jar" )
168+ .property ("version" ,
169+ "777" )
170+ .as ("adc1" )
171+ .addV (ArtifactEntry .LABEL )
172+ .property ("uuid" , UUID .randomUUID ().toString ())
173+ .property ("storageId" , "storage0" )
174+ .property ("repositoryId" , "releases" )
175+ .as ("ae1" )
176+ .addE (ArtifactDependency .LABEL )
177+ .to ("adc1" )
178+ .addV (ArtifactEntry .LABEL )
179+ .property ("uuid" , UUID .randomUUID ().toString ())
180+ .property ("storageId" , "storage0" )
181+ .property ("repositoryId" , "releases" )
182+ .as ("ae2" )
183+ .addE (ArtifactDependency .LABEL )
184+ .to ("adc1" )
185+ .addV (ArtifactCoordinates .LABEL )
186+ .property ("uuid" , UUID .randomUUID ().toString ())
187+ .property ("path" ,
188+ "org/carlspring/test/another-dependency.jar" )
189+ .property ("version" ,
190+ "1.2.3" )
191+ .as ("adc2" )
192+ .addE (ArtifactDependency .LABEL )
193+ .from ("ae2" )
194+ .to ("adc2" )
195+ .next ();
196+
197+ g .tx ().commit ();
198+
199+ ArtifactCoordinates adc1 = artifactCoordinatesRepository .findByPath ("org/carlspring/test/dependency.jar" );
200+ List <ArtifactEntry > dependencies = artifactEntryRepository .findAllDependentArtifactEntries (adc1 .getUuid ());
201+ assertEquals (2 , dependencies .size ());
176202 }
177203
178204}
0 commit comments