From 31e03d7c05afb3fff426bb83839a6d939e6d22f4 Mon Sep 17 00:00:00 2001 From: Mikhail Korsakov Date: Mon, 25 Oct 2021 12:11:15 +0700 Subject: [PATCH] BUGFIX SIO-3769 update fqdns on hostname change --- .../lib/SolusAPI/Resources/ApiResource.php | 5 +++ .../lib/SolusAPI/Resources/ServerResource.php | 3 +- .../SolusAPI/Resources/ServerResourceTest.php | 41 +++++++++++++++++++ 3 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 tests/lib/SolusAPI/Resources/ServerResourceTest.php diff --git a/modules/servers/solusiovps/lib/SolusAPI/Resources/ApiResource.php b/modules/servers/solusiovps/lib/SolusAPI/Resources/ApiResource.php index c9bcf68..ec1165d 100644 --- a/modules/servers/solusiovps/lib/SolusAPI/Resources/ApiResource.php +++ b/modules/servers/solusiovps/lib/SolusAPI/Resources/ApiResource.php @@ -26,6 +26,11 @@ public function __construct(ClientInterface $connector) $this->connector = $connector; } + public function getConnector(): ClientInterface + { + return $this->connector; + } + /** * @param $response * @return array diff --git a/modules/servers/solusiovps/lib/SolusAPI/Resources/ServerResource.php b/modules/servers/solusiovps/lib/SolusAPI/Resources/ServerResource.php index 908b80b..e89cf84 100644 --- a/modules/servers/solusiovps/lib/SolusAPI/Resources/ServerResource.php +++ b/modules/servers/solusiovps/lib/SolusAPI/Resources/ServerResource.php @@ -98,9 +98,10 @@ public function resetPassword(int $id): array public function changeHostname(int $id, string $hostname): array { - return $this->processResponse($this->connector->patch("servers/{$id}", [ + return $this->processResponse($this->getConnector()->patch("servers/{$id}", [ 'json' => [ 'name' => $hostname, + 'fqdns' => [ $hostname ], ], ])); } diff --git a/tests/lib/SolusAPI/Resources/ServerResourceTest.php b/tests/lib/SolusAPI/Resources/ServerResourceTest.php new file mode 100644 index 0000000..8b22298 --- /dev/null +++ b/tests/lib/SolusAPI/Resources/ServerResourceTest.php @@ -0,0 +1,41 @@ +shouldAllowMockingProtectedMethods() + ->makePartial(); + + $serverResource->shouldReceive('processResponse')->andReturn([]); + $serverResource->shouldReceive('getConnector->patch')->with( + "servers/{$id}", + [ + 'json' => [ + 'name' => $hostname, + 'fqdns' => [ $hostname ], + ], + ], + ); + + $this->addToAssertionCount( + Mockery::getContainer()->mockery_getExpectationCount() + ); + + $serverResource->changeHostname($id, $hostname); + } +}