2020-10-05 23:37:55 +03:00
|
|
|
<?php
|
|
|
|
|
|
|
|
declare(strict_types=1);
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Copyright (C) 2013 Mailgun
|
|
|
|
*
|
|
|
|
* This software may be modified and distributed under the terms
|
|
|
|
* of the MIT license. See the LICENSE file for details.
|
|
|
|
*/
|
|
|
|
|
|
|
|
namespace Mailgun\Tests\Api;
|
|
|
|
|
|
|
|
use Mailgun\Api\Ip;
|
|
|
|
use Mailgun\Model\Ip\IndexResponse;
|
2021-08-18 22:48:47 +03:00
|
|
|
use Nyholm\Psr7\Response;
|
2020-10-05 23:37:55 +03:00
|
|
|
|
|
|
|
class IpTest extends TestCase
|
|
|
|
{
|
|
|
|
protected function getApiClass()
|
|
|
|
{
|
|
|
|
return Ip::class;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testIndexAll()
|
|
|
|
{
|
|
|
|
$this->setRequestMethod('GET');
|
|
|
|
$this->setRequestUri('/v3/ips');
|
|
|
|
$this->setHttpResponse(new Response(200, ['Content-Type' => 'application/json'], <<<'JSON'
|
|
|
|
{
|
2020-10-07 22:45:28 +03:00
|
|
|
"assignable_to_pools": ["192.168.0.1"],
|
2020-10-05 23:37:55 +03:00
|
|
|
"items": ["192.161.0.1", "192.168.0.2"],
|
|
|
|
"total_count": 2
|
|
|
|
}
|
|
|
|
JSON
|
|
|
|
));
|
|
|
|
|
|
|
|
$api = $this->getApiInstance();
|
|
|
|
/** @var IndexResponse $response */
|
|
|
|
$response = $api->index(null);
|
|
|
|
$this->assertInstanceOf(IndexResponse::class, $response);
|
|
|
|
$this->assertEquals(2, $response->getTotalCount());
|
|
|
|
$this->assertEquals('192.161.0.1', $response->getItems()[0]);
|
|
|
|
$this->assertEquals('192.168.0.2', $response->getItems()[1]);
|
2020-10-07 22:45:28 +03:00
|
|
|
$this->assertEquals('192.168.0.1', $response->getAssignableToPools()[0]);
|
2020-10-05 23:37:55 +03:00
|
|
|
}
|
2020-10-08 14:47:18 +03:00
|
|
|
|
2020-10-05 23:37:55 +03:00
|
|
|
public function testIndexOnlyDedicated()
|
|
|
|
{
|
|
|
|
$this->setRequestMethod('GET');
|
|
|
|
$this->setRequestUri('/v3/ips?dedicated=1');
|
|
|
|
$this->setHttpResponse(new Response(200, ['Content-Type' => 'application/json'], <<<'JSON'
|
|
|
|
{
|
2020-10-07 22:45:28 +03:00
|
|
|
"assignable_to_pools": ["192.168.0.1"],
|
2020-10-05 23:37:55 +03:00
|
|
|
"items": ["192.161.0.1"],
|
|
|
|
"total_count": 1
|
|
|
|
}
|
|
|
|
JSON
|
|
|
|
));
|
|
|
|
|
|
|
|
$api = $this->getApiInstance();
|
|
|
|
/** @var IndexResponse $response */
|
|
|
|
$response = $api->index(true);
|
|
|
|
$this->assertInstanceOf(IndexResponse::class, $response);
|
|
|
|
$this->assertEquals(1, $response->getTotalCount());
|
|
|
|
$this->assertEquals('192.161.0.1', $response->getItems()[0]);
|
2020-10-07 22:45:28 +03:00
|
|
|
$this->assertEquals('192.168.0.1', $response->getAssignableToPools()[0]);
|
2020-10-05 23:37:55 +03:00
|
|
|
}
|
2020-10-08 14:47:18 +03:00
|
|
|
|
2020-10-05 23:37:55 +03:00
|
|
|
public function testIndexOnlyShared()
|
|
|
|
{
|
|
|
|
$this->setRequestMethod('GET');
|
|
|
|
$this->setRequestUri('/v3/ips?dedicated=0');
|
|
|
|
$this->setHttpResponse(new Response(200, ['Content-Type' => 'application/json'], <<<'JSON'
|
|
|
|
{
|
2020-10-07 22:45:28 +03:00
|
|
|
"assignable_to_pools": ["192.168.0.1"],
|
2020-10-05 23:37:55 +03:00
|
|
|
"items": ["192.168.0.2"],
|
|
|
|
"total_count": 1
|
|
|
|
}
|
|
|
|
JSON
|
|
|
|
));
|
|
|
|
|
|
|
|
$api = $this->getApiInstance();
|
|
|
|
/** @var IndexResponse $response */
|
|
|
|
$response = $api->index(false);
|
|
|
|
$this->assertInstanceOf(IndexResponse::class, $response);
|
|
|
|
$this->assertEquals(1, $response->getTotalCount());
|
|
|
|
$this->assertEquals('192.168.0.2', $response->getItems()[0]);
|
2020-10-07 22:45:28 +03:00
|
|
|
$this->assertEquals('192.168.0.1', $response->getAssignableToPools()[0]);
|
2020-10-05 23:37:55 +03:00
|
|
|
}
|
|
|
|
}
|