@@ -83,105 +83,146 @@ public static void shutdown() {
8383
8484 @ Parameters
8585 public static List <ArangoDB > builders () {
86- return BaseTest .arangos ;
87- }
86+ return BaseTest .arangos ;
87+ }
8888
89- public ArangoDBTest (final ArangoDB arangoDB ) {
90- super ();
91- this .arangoDB = arangoDB ;
92- db1 = arangoDB .db (DB1 );
93- db2 = arangoDB .db (DB2 );
94- }
89+ public ArangoDBTest (final ArangoDB arangoDB ) {
90+ super ();
91+ this .arangoDB = arangoDB ;
92+ db1 = arangoDB .db (DB1 );
93+ db2 = arangoDB .db (DB2 );
94+ }
9595
96- private boolean isEnterprise () {
97- return arangoDB .getVersion ().getLicense () == License .ENTERPRISE ;
98- }
96+ private boolean isEnterprise () {
97+ return arangoDB .getVersion ().getLicense () == License .ENTERPRISE ;
98+ }
9999
100- private boolean isCluster () {
101- return arangoDB .getRole () == ServerRole .COORDINATOR ;
102- }
100+ private boolean isCluster () {
101+ return arangoDB .getRole () == ServerRole .COORDINATOR ;
102+ }
103103
104- private boolean isAtLeastVersion (final int major , final int minor ) {
104+ private boolean isAtLeastVersion (final int major , final int minor ) {
105105 return TestUtils .isAtLeastVersion (arangoDB .getVersion ().getVersion (), major , minor , 0 );
106- }
107-
108- @ Test
109- public void getVersion () {
110- final ArangoDBVersion version = arangoDB .getVersion ();
111- assertThat (version , is (notNullValue ()));
112- assertThat (version .getServer (), is (notNullValue ()));
113- assertThat (version .getVersion (), is (notNullValue ()));
114- }
115-
116- @ Test
117- public void createAndDeleteDatabase () {
118- final String dbName = "testDB-" + UUID .randomUUID ().toString ();
119- final Boolean resultCreate = arangoDB .createDatabase (dbName );
120- assertThat (resultCreate , is (true ));
121- final Boolean resultDelete = arangoDB .db (dbName ).drop ();
122- assertThat (resultDelete , is (true ));
123- }
124-
125- @ Test
126- public void createDatabaseWithOptions () {
127- assumeTrue (isCluster ());
128- assumeTrue (isAtLeastVersion (3 , 6 ));
129- final String dbName = "testDB-" + UUID .randomUUID ().toString ();
130- final Boolean resultCreate = arangoDB .createDatabase (new DBCreateOptions ()
131- .name (dbName )
132- .options (new DatabaseOptions ()
133- .writeConcern (2 )
134- .replicationFactor (2 )
135- .sharding ("" )
136- )
137- );
138- assertThat (resultCreate , is (true ));
139-
140- DatabaseEntity info = arangoDB .db (dbName ).getInfo ();
141- assertThat (info .getReplicationFactor (), is (2 ));
142- assertThat (info .getWriteConcern (), is (2 ));
143- assertThat (info .getSharding (), is ("" ));
144- assertThat (info .getSatellite (), nullValue ());
145-
146- final Boolean resultDelete = arangoDB .db (dbName ).drop ();
147- assertThat (resultDelete , is (true ));
148- }
149-
150- @ Test
106+ }
107+
108+ @ Test
109+ public void getVersion () {
110+ final ArangoDBVersion version = arangoDB .getVersion ();
111+ assertThat (version , is (notNullValue ()));
112+ assertThat (version .getServer (), is (notNullValue ()));
113+ assertThat (version .getVersion (), is (notNullValue ()));
114+ }
115+
116+ @ Test
117+ public void createAndDeleteDatabase () {
118+ final String dbName = "testDB-" + UUID .randomUUID ().toString ();
119+ final Boolean resultCreate = arangoDB .createDatabase (dbName );
120+ assertThat (resultCreate , is (true ));
121+ final Boolean resultDelete = arangoDB .db (dbName ).drop ();
122+ assertThat (resultDelete , is (true ));
123+ }
124+
125+ @ Test
126+ public void createDatabaseWithOptions () {
127+ assumeTrue (isCluster ());
128+ assumeTrue (isAtLeastVersion (3 , 6 ));
129+ final String dbName = "testDB-" + UUID .randomUUID ().toString ();
130+ final Boolean resultCreate = arangoDB .createDatabase (new DBCreateOptions ()
131+ .name (dbName )
132+ .options (new DatabaseOptions ()
133+ .writeConcern (2 )
134+ .replicationFactor (2 )
135+ .sharding ("" )
136+ )
137+ );
138+ assertThat (resultCreate , is (true ));
139+
140+ DatabaseEntity info = arangoDB .db (dbName ).getInfo ();
141+ assertThat (info .getReplicationFactor (), is (2 ));
142+ assertThat (info .getWriteConcern (), is (2 ));
143+ assertThat (info .getSharding (), is ("" ));
144+ assertThat (info .getSatellite (), nullValue ());
145+
146+ final Boolean resultDelete = arangoDB .db (dbName ).drop ();
147+ assertThat (resultDelete , is (true ));
148+ }
149+
150+ @ Test
151151 public void createDatabaseWithOptionsSatellite () {
152- assumeTrue (isCluster ());
153- assumeTrue (isEnterprise ());
154- assumeTrue (isAtLeastVersion (3 , 6 ));
155-
156- final String dbName = "testDB-" + UUID .randomUUID ().toString ();
157- final Boolean resultCreate = arangoDB .createDatabase (new DBCreateOptions ()
158- .name (dbName )
159- .options (new DatabaseOptions ()
160- .writeConcern (2 )
161- .satellite (true )
162- .sharding ("" )
163- )
164- );
165- assertThat (resultCreate , is (true ));
166-
167- DatabaseEntity info = arangoDB .db (dbName ).getInfo ();
168- assertThat (info .getReplicationFactor (), nullValue ());
169- assertThat (info .getSatellite (), is (true ));
170- assertThat (info .getWriteConcern (), is (2 ));
171- assertThat (info .getSharding (), is ("" ));
172-
173- final Boolean resultDelete = arangoDB .db (dbName ).drop ();
174- assertThat (resultDelete , is (true ));
175- }
176-
177- @ Test
178- public void getDatabases () {
179- Collection <String > dbs = arangoDB .getDatabases ();
180- assertThat (dbs , is (notNullValue ()));
181- assertThat (dbs .size (), is (greaterThan (0 )));
182- assertThat (dbs .contains ("_system" ), is (true ));
183- assertThat (dbs , hasItem (DB1 ));
184- }
152+ assumeTrue (isCluster ());
153+ assumeTrue (isEnterprise ());
154+ assumeTrue (isAtLeastVersion (3 , 6 ));
155+
156+ final String dbName = "testDB-" + UUID .randomUUID ().toString ();
157+ final Boolean resultCreate = arangoDB .createDatabase (new DBCreateOptions ()
158+ .name (dbName )
159+ .options (new DatabaseOptions ()
160+ .writeConcern (2 )
161+ .satellite (true )
162+ .sharding ("" )
163+ )
164+ );
165+ assertThat (resultCreate , is (true ));
166+
167+ DatabaseEntity info = arangoDB .db (dbName ).getInfo ();
168+ assertThat (info .getReplicationFactor (), nullValue ());
169+ assertThat (info .getSatellite (), is (true ));
170+ assertThat (info .getWriteConcern (), is (2 ));
171+ assertThat (info .getSharding (), is ("" ));
172+
173+ final Boolean resultDelete = arangoDB .db (dbName ).drop ();
174+ assertThat (resultDelete , is (true ));
175+ }
176+
177+ @ Test
178+ public void createDatabaseWithUsers () {
179+ final String dbName = "testDB-" + UUID .randomUUID ().toString ();
180+ final Map <String , Object > extra = Collections .singletonMap ("key" , "value" );
181+ final Boolean resultCreate = arangoDB .createDatabase (new DBCreateOptions ()
182+ .name (dbName )
183+ .users (Collections .singletonList (new DatabaseUsersOptions ()
184+ .active (true )
185+ .username ("testUser" )
186+ .passwd ("testPasswd" )
187+ .extra (extra )
188+ ))
189+ );
190+ assertThat (resultCreate , is (true ));
191+
192+ DatabaseEntity info = arangoDB .db (dbName ).getInfo ();
193+ assertThat (info .getName (), is (dbName ));
194+
195+ Optional <UserEntity > retrievedUserOptional = arangoDB .getUsers ().stream ()
196+ .filter (it -> it .getUser ().equals ("testUser" ))
197+ .findFirst ();
198+ assertThat (retrievedUserOptional .isPresent (), is (true ));
199+
200+ UserEntity retrievedUser = retrievedUserOptional .get ();
201+ assertThat (retrievedUser .getActive (), is (true ));
202+ assertThat (retrievedUser .getExtra (), is (extra ));
203+
204+ ArangoDB arangoDBTestUser = new ArangoDB .Builder ()
205+ .user ("testUser" )
206+ .password ("testPasswd" )
207+ .build ();
208+
209+ // check if testUser has been created and can access the created db
210+ ArangoCollection collection = arangoDBTestUser .db (dbName ).collection ("col-" + UUID .randomUUID ().toString ());
211+ collection .create ();
212+ arangoDBTestUser .shutdown ();
213+
214+ final Boolean resultDelete = arangoDB .db (dbName ).drop ();
215+ assertThat (resultDelete , is (true ));
216+ }
217+
218+ @ Test
219+ public void getDatabases () {
220+ Collection <String > dbs = arangoDB .getDatabases ();
221+ assertThat (dbs , is (notNullValue ()));
222+ assertThat (dbs .size (), is (greaterThan (0 )));
223+ assertThat (dbs .contains ("_system" ), is (true ));
224+ assertThat (dbs , hasItem (DB1 ));
225+ }
185226
186227 @ Test
187228 public void getAccessibleDatabases () {
0 commit comments