setRequestMethod('GET'); $this->setRequestUri('/v3/domains?limit=100&skip=0'); $this->setHttpResponse(new Response(200, ['Content-Type' => 'application/json'], <<<'JSON' { "total_count": 1, "items": [ { "created_at": "Wed, 10 Jul 2013 19:26:52 GMT", "smtp_login": "postmaster@samples.mailgun.org", "name": "samples.mailgun.org", "smtp_password": "4rtqo4p6rrx9", "wildcard": true, "spam_action": "disabled", "state": "active" } ] } JSON )); $api = $this->getApiInstance(); /** @var IndexResponse $response */ $response = $api->index(); $this->assertInstanceOf(IndexResponse::class, $response); $this->assertEquals(1, $response->getTotalCount()); $this->assertEquals('samples.mailgun.org', $response->getDomains()[0]->getName()); } public function testShow() { $this->setRequestMethod('GET'); $this->setRequestUri('/v3/domains/example.com'); $this->setHydrateClass(ShowResponse::class); $api = $this->getApiInstance(); $api->show('example.com'); } public function testCreate() { $this->setRequestMethod('POST'); $this->setRequestUri('/v3/domains'); $this->setRequestBody([ 'name' => 'example.com', ]); $this->setHydrateClass(CreateResponse::class); $api = $this->getApiInstance(); $api->create('example.com'); } public function testCreateWithPassword() { $this->setRequestMethod('POST'); $this->setRequestUri('/v3/domains'); $this->setRequestBody([ 'name' => 'example.com', 'smtp_password' => 'foo', ]); $this->setHydrateClass(CreateResponse::class); $api = $this->getApiInstance(); $api->create('example.com', 'foo'); } public function testCreateWithPasswordSpamAction() { $this->setRequestMethod('POST'); $this->setRequestUri('/v3/domains'); $this->setRequestBody([ 'name' => 'example.com', 'smtp_password' => 'foo', 'spam_action' => 'bar', ]); $this->setHydrateClass(CreateResponse::class); $api = $this->getApiInstance(); $api->create('example.com', 'foo', 'bar'); } public function testCreateWithPasswordSpamActionWildcard() { $this->setRequestMethod('POST'); $this->setRequestUri('/v3/domains'); $this->setRequestBody([ 'name' => 'example.com', 'smtp_password' => 'foo', 'spam_action' => 'bar', 'wildcard' => 'true', ]); $this->setHydrateClass(CreateResponse::class); $api = $this->getApiInstance(); $api->create('example.com', 'foo', 'bar', true); } public function testCreateWithPasswordForceDkimAuthority() { $this->setRequestMethod('POST'); $this->setRequestUri('/v3/domains'); $this->setRequestBody([ 'name' => 'example.com', 'smtp_password' => 'foo', 'force_dkim_authority' => 'true', ]); $this->setHydrateClass(CreateResponse::class); $api = $this->getApiInstance(); $api->create('example.com', 'foo', null, null, true); } public function testCreateWithPasswordSpamActionWildcardForceDkimAuthority() { $this->setRequestMethod('POST'); $this->setRequestUri('/v3/domains'); $this->setRequestBody([ 'name' => 'example.com', 'smtp_password' => 'foo', 'spam_action' => 'bar', 'wildcard' => 'true', 'force_dkim_authority' => 'true', ]); $this->setHydrateClass(CreateResponse::class); $api = $this->getApiInstance(); $api->create('example.com', 'foo', 'bar', true, true); } public function testDelete() { $this->setRequestMethod('DELETE'); $this->setRequestUri('/v3/domains/example.com'); $this->setHydrateClass(DeleteResponse::class); $api = $this->getApiInstance(); $api->delete('example.com'); } public function testCreateCredential() { $this->setRequestMethod('POST'); $this->setRequestUri('/v3/domains/example.com/credentials'); $this->setRequestBody([ 'login' => 'foo', 'password' => 'barbar', ]); $this->setHydrateClass(CreateCredentialResponse::class); $api = $this->getApiInstance(); $api->createCredential('example.com', 'foo', 'barbar'); } public function testUpdateCredential() { $this->setRequestMethod('PUT'); $this->setRequestUri('/v3/domains/example.com/credentials/foo'); $this->setRequestBody([ 'password' => 'barbar', ]); $this->setHydrateClass(UpdateCredentialResponse::class); $api = $this->getApiInstance(); $api->updateCredential('example.com', 'foo', 'barbar'); } public function testDeleteCredential() { $this->setRequestMethod('DELETE'); $this->setRequestUri('/v3/domains/example.com/credentials/foo'); $this->setHydrateClass(DeleteCredentialResponse::class); $api = $this->getApiInstance(); $api->deleteCredential('example.com', 'foo', 'barbar'); } public function testConnection() { $this->setRequestMethod('GET'); $this->setRequestUri('/v3/domains/example.com/connection'); $this->setHydrateClass(ConnectionResponse::class); $api = $this->getApiInstance(); $api->connection('example.com'); } public function testUpdateConnection() { $this->setRequestMethod('PUT'); $this->setRequestUri('/v3/domains/example.com/connection'); $this->setRequestBody([ 'require_tls' => 'true', 'skip_verification' => 'false', ]); $this->setHydrateClass(UpdateConnectionResponse::class); $api = $this->getApiInstance(); $api->updateConnection('example.com', true, false); } public function testVerify() { $this->setRequestMethod('PUT'); $this->setRequestUri('/v3/domains/example.com/verify'); $this->setHydrateClass(VerifyResponse::class); $api = $this->getApiInstance(); $api->verify('example.com'); } public function testCreateWithIps() { $this->setRequestMethod('POST'); $this->setRequestUri('/v3/domains'); $this->setRequestBody([ 'name' => 'example.com', 'smtp_password' => 'foo', 'ips' => '127.0.0.1,127.0.0.2', ]); $this->setHydrateClass(CreateResponse::class); $api = $this->getApiInstance(); $api->create('example.com', 'foo', null, null, null, ['127.0.0.1', '127.0.0.2']); } }