@@ -241,7 +241,7 @@ public function testCreateDatabase()
241241 (new Client ($ httpClient , 'base_url ' ))->createDatabase ($ databaseServerId , 'database-name ' );
242242 }
243243
244- public function testCreateDatabaseServer ()
244+ public function testCreateDatabaseServerWithAuroraMySql ()
245245 {
246246 $ httpClient = $ this ->createMock (GuzzleClientInterface::class);
247247 $ networkId = $ this ->faker ->randomDigitNotNull ;
@@ -251,28 +251,84 @@ public function testCreateDatabaseServer()
251251 ->with ($ this ->callback (function (RequestInterface $ request ) use ($ networkId ) {
252252 $ this ->assertSame ('POST ' , $ request ->getMethod ());
253253 $ this ->assertSame ("base_url/networks/ {$ networkId }/database-servers " , (string ) $ request ->getUri ());
254- $ this ->assertEquals (['name ' => 'database-server-name ' , 'type ' => 'database-server-type ' , 'publicly_accessible ' => true , ' storage ' => 42 ], json_decode ($ request ->getBody ()->getContents (), true ));
254+ $ this ->assertEquals (['engine ' => 'mysql ' , 'name ' => 'database-server-name ' , 'type ' => ' aurora-mysql ' ], json_decode ($ request ->getBody ()->getContents (), true ));
255255
256256 return true ;
257257 }));
258258
259- (new Client ($ httpClient , 'base_url ' ))->createDatabaseServer ($ networkId , 'database-server-name ' , 'database-server-type ' , 42 , true );
259+ (new Client ($ httpClient , 'base_url ' ))->createDatabaseServer ($ networkId , 'mysql ' , 'database-server-name ' , ' aurora-mysql ' );
260260 }
261261
262- public function testCreateDatabaseServerWithAuroraMySqlAndPubliclyAccessibleSetToTrue ()
262+ public function testCreateDatabaseServerWithAuroraPostgreSql ()
263263 {
264- $ this ->expectException (\InvalidArgumentException::class);
265- $ this ->expectExceptionMessage ('An "aurora-mysql" database server cannot be public ' );
264+ $ httpClient = $ this ->createMock (GuzzleClientInterface::class);
265+ $ networkId = $ this ->faker ->randomDigitNotNull ;
266+
267+ $ httpClient ->expects ($ this ->once ())
268+ ->method ('send ' )
269+ ->with ($ this ->callback (function (RequestInterface $ request ) use ($ networkId ) {
270+ $ this ->assertSame ('POST ' , $ request ->getMethod ());
271+ $ this ->assertSame ("base_url/networks/ {$ networkId }/database-servers " , (string ) $ request ->getUri ());
272+ $ this ->assertEquals (['engine ' => 'postgresql ' , 'name ' => 'database-server-name ' , 'type ' => 'aurora-postgresql ' ], json_decode ($ request ->getBody ()->getContents (), true ));
273+
274+ return true ;
275+ }));
276+
277+ (new Client ($ httpClient , 'base_url ' ))->createDatabaseServer ($ networkId , 'postgresql ' , 'database-server-name ' , 'aurora-postgresql ' );
278+ }
279+
280+ public function testCreateDatabaseServerWithMySql ()
281+ {
282+ $ httpClient = $ this ->createMock (GuzzleClientInterface::class);
283+ $ networkId = $ this ->faker ->randomDigitNotNull ;
284+
285+ $ httpClient ->expects ($ this ->once ())
286+ ->method ('send ' )
287+ ->with ($ this ->callback (function (RequestInterface $ request ) use ($ networkId ) {
288+ $ this ->assertSame ('POST ' , $ request ->getMethod ());
289+ $ this ->assertSame ("base_url/networks/ {$ networkId }/database-servers " , (string ) $ request ->getUri ());
290+ $ this ->assertEquals (['engine ' => 'mysql ' , 'name ' => 'database-server-name ' , 'type ' => 'database-server-type ' , 'publicly_accessible ' => true , 'storage ' => 42 ], json_decode ($ request ->getBody ()->getContents (), true ));
291+
292+ return true ;
293+ }));
266294
267- (new Client ($ this -> createMock (GuzzleClientInterface::class) , 'base_url ' ))->createDatabaseServer ($ this -> faker -> randomDigitNotNull , 'database-server-name ' , 'aurora-mysql ' , null , true );
295+ (new Client ($ httpClient , 'base_url ' ))->createDatabaseServer ($ networkId , 'mysql ' , ' database-server-name ' , 'database-server-type ' , true , 42 );
268296 }
269297
270- public function testCreateDatabaseServerWithAuroraMySqlAndStorageNotNull ()
298+ public function testCreateDatabaseServerWithPostgreSql ()
271299 {
272- $ this ->expectException (\InvalidArgumentException::class);
273- $ this ->expectExceptionMessage ('Cannot specify a "storage" value for "aurora-mysql" database server ' );
300+ $ httpClient = $ this ->createMock (GuzzleClientInterface::class);
301+ $ networkId = $ this ->faker ->randomDigitNotNull ;
302+
303+ $ httpClient ->expects ($ this ->once ())
304+ ->method ('send ' )
305+ ->with ($ this ->callback (function (RequestInterface $ request ) use ($ networkId ) {
306+ $ this ->assertSame ('POST ' , $ request ->getMethod ());
307+ $ this ->assertSame ("base_url/networks/ {$ networkId }/database-servers " , (string ) $ request ->getUri ());
308+ $ this ->assertEquals (['engine ' => 'postgresql ' , 'name ' => 'database-server-name ' , 'type ' => 'db.t3.micro ' , 'publicly_accessible ' => true , 'storage ' => 42 ], json_decode ($ request ->getBody ()->getContents (), true ));
309+
310+ return true ;
311+ }));
312+
313+ (new Client ($ httpClient , 'base_url ' ))->createDatabaseServer ($ networkId , 'postgresql ' , 'database-server-name ' , 'db.t3.micro ' , true , 42 );
314+ }
315+
316+ public function testCreateDatabaseServerWithUnsupportedEngineAndType ()
317+ {
318+ $ httpClient = $ this ->createMock (GuzzleClientInterface::class);
319+ $ networkId = $ this ->faker ->randomDigitNotNull ;
320+
321+ $ httpClient ->expects ($ this ->once ())
322+ ->method ('send ' )
323+ ->with ($ this ->callback (function (RequestInterface $ request ) use ($ networkId ) {
324+ $ this ->assertSame ('POST ' , $ request ->getMethod ());
325+ $ this ->assertSame ("base_url/networks/ {$ networkId }/database-servers " , (string ) $ request ->getUri ());
326+ $ this ->assertEquals (['engine ' => 'postgres ' , 'name ' => 'database-server-name ' , 'type ' => 'rds ' ], json_decode ($ request ->getBody ()->getContents (), true ));
327+
328+ return true ;
329+ }));
274330
275- (new Client ($ this -> createMock (GuzzleClientInterface::class) , 'base_url ' ))->createDatabaseServer ($ this -> faker -> randomDigitNotNull , 'database-server-name ' , 'aurora-mysql ' , 42 );
331+ (new Client ($ httpClient , 'base_url ' ))->createDatabaseServer ($ networkId , 'postgres ' , ' database-server-name ' , 'rds ' );
276332 }
277333
278334 public function testCreateDatabaseUser ()
0 commit comments