From d71262c2e6cf1870d58aea92b52ec4382ca1c270 Mon Sep 17 00:00:00 2001 From: weroh <50031971+weroh@users.noreply.github.com> Date: Thu, 5 Mar 2020 13:51:09 -0800 Subject: [PATCH] Connection + Tests + Bugfixes Updated All.php to remove filter[] params. This was causing certain tests to fail. Added Connection.php Added CredentialConnection.php Added FQDN.php Added FQDNConnection.php Added IP.php Added IPConnection.php Added various tests --- init.php | 10 ++- lib/Connection.php | 17 +++++ lib/CredentialConnection.php | 20 ++++++ lib/FQDN.php | 20 ++++++ lib/FQDNConnection.php | 20 ++++++ lib/IP.php | 20 ++++++ lib/IPConnection.php | 20 ++++++ lib/Util/Util.php | 8 +++ tests/api_resources/ConnectionTest.php | 30 +++++++++ .../CredentialConnectionTest.php | 63 ++++++++++++++++++ tests/api_resources/FQDNConnectionTest.php | 63 ++++++++++++++++++ tests/api_resources/FQDNTest.php | 63 ++++++++++++++++++ tests/api_resources/IPConnectionTest.php | 63 ++++++++++++++++++ tests/api_resources/IPTest.php | 64 +++++++++++++++++++ 14 files changed, 479 insertions(+), 2 deletions(-) create mode 100644 lib/Connection.php create mode 100644 lib/CredentialConnection.php create mode 100644 lib/FQDN.php create mode 100644 lib/FQDNConnection.php create mode 100644 lib/IP.php create mode 100644 lib/IPConnection.php create mode 100644 tests/api_resources/ConnectionTest.php create mode 100644 tests/api_resources/CredentialConnectionTest.php create mode 100644 tests/api_resources/FQDNConnectionTest.php create mode 100644 tests/api_resources/FQDNTest.php create mode 100644 tests/api_resources/IPConnectionTest.php create mode 100644 tests/api_resources/IPTest.php diff --git a/init.php b/init.php index ebcf0a9..1f50b61 100644 --- a/init.php +++ b/init.php @@ -44,6 +44,7 @@ require(dirname(__FILE__) . '/lib/ApiRequestor.php'); require(dirname(__FILE__) . '/lib/ApiResource.php'); require(dirname(__FILE__) . '/lib/SingletonApiResource.php'); +require(dirname(__FILE__) . '/lib/Collection.php'); // Telnyx API: Numbers require(dirname(__FILE__) . '/lib/AvailablePhoneNumber.php'); @@ -65,5 +66,10 @@ // Telnyx API: Billing require(dirname(__FILE__) . '/lib/BillingGroup.php'); -// Old resources -require(dirname(__FILE__) . '/lib/Collection.php'); \ No newline at end of file +// Telnyx API: Connections +require(dirname(__FILE__) . '/lib/Connection.php'); +require(dirname(__FILE__) . '/lib/IPConnection.php'); +require(dirname(__FILE__) . '/lib/CredentialConnection.php'); +require(dirname(__FILE__) . '/lib/IP.php'); +require(dirname(__FILE__) . '/lib/FQDNConnection.php'); +require(dirname(__FILE__) . '/lib/FQDN.php'); diff --git a/lib/Connection.php b/lib/Connection.php new file mode 100644 index 0000000..be9596e --- /dev/null +++ b/lib/Connection.php @@ -0,0 +1,17 @@ + 'Telnyx\\BillingGroup', + + // Telnyx API: Connections + \Telnyx\Connection::OBJECT_NAME => 'Telnyx\\Connection', + \Telnyx\IPConnection::OBJECT_NAME => 'Telnyx\\IPConnection', + \Telnyx\CredentialConnection::OBJECT_NAME => 'Telnyx\\CredentialConnection', + \Telnyx\IP::OBJECT_NAME => 'Telnyx\\IP', + \Telnyx\FQDNConnection::OBJECT_NAME => 'Telnyx\\FQDNConnection', + \Telnyx\FQDN::OBJECT_NAME => 'Telnyx\\FQDN', ]; if (self::isList($resp)) { $mapped = []; diff --git a/tests/api_resources/ConnectionTest.php b/tests/api_resources/ConnectionTest.php new file mode 100644 index 0000000..f6436bb --- /dev/null +++ b/tests/api_resources/ConnectionTest.php @@ -0,0 +1,30 @@ +expectsRequest( + 'get', + '/v2/connections' + ); + $resources = Connection::all(); + $this->assertInstanceOf(\Telnyx\Collection::class, $resources); + $this->assertInstanceOf(\Telnyx\Connection::class, $resources[0]); + } + + public function testIsRetrievable() + { + $this->expectsRequest( + 'get', + '/v2/connections/' . urlencode(self::TEST_RESOURCE_ID) + ); + $resource = Connection::retrieve(self::TEST_RESOURCE_ID); + $this->assertInstanceOf(\Telnyx\Connection::class, $resource); + } + +} diff --git a/tests/api_resources/CredentialConnectionTest.php b/tests/api_resources/CredentialConnectionTest.php new file mode 100644 index 0000000..5048770 --- /dev/null +++ b/tests/api_resources/CredentialConnectionTest.php @@ -0,0 +1,63 @@ +expectsRequest( + 'get', + '/v2/credential_connections' + ); + $resources = CredentialConnection::all(); + $this->assertInstanceOf(\Telnyx\Collection::class, $resources); + $this->assertInstanceOf(\Telnyx\CredentialConnection::class, $resources[0]); + } + + public function testIsCreatable() + { + $this->expectsRequest( + 'post', + '/v2/credential_connections' + ); + $resource = CredentialConnection::create(["connection_name" => "Test Connection"]); + $this->assertInstanceOf(\Telnyx\CredentialConnection::class, $resource); + } + + public function testIsDeletable() + { + $resource = CredentialConnection::retrieve(self::TEST_RESOURCE_ID); + $this->expectsRequest( + 'delete', + '/v2/credential_connections/' . urlencode(self::TEST_RESOURCE_ID) + ); + $resource->delete(); + $this->assertInstanceOf(\Telnyx\CredentialConnection::class, $resource); + } + + public function testIsRetrievable() + { + $this->expectsRequest( + 'get', + '/v2/credential_connections/' . urlencode(self::TEST_RESOURCE_ID) + ); + $resource = CredentialConnection::retrieve(self::TEST_RESOURCE_ID); + $this->assertInstanceOf(\Telnyx\CredentialConnection::class, $resource); + } + + public function testIsUpdatable() + { + $this->expectsRequest( + 'patch', + '/v2/credential_connections/' . urlencode(self::TEST_RESOURCE_ID) + ); + $resource = CredentialConnection::update(self::TEST_RESOURCE_ID, [ + "connection_name" => "Central BSD-1" + ]); + $this->assertInstanceOf(\Telnyx\CredentialConnection::class, $resource); + } + +} diff --git a/tests/api_resources/FQDNConnectionTest.php b/tests/api_resources/FQDNConnectionTest.php new file mode 100644 index 0000000..9ebf8e8 --- /dev/null +++ b/tests/api_resources/FQDNConnectionTest.php @@ -0,0 +1,63 @@ +expectsRequest( + 'get', + '/v2/fqdn_connections' + ); + $resources = FQDNConnection::all(); + $this->assertInstanceOf(\Telnyx\Collection::class, $resources); + $this->assertInstanceOf(\Telnyx\FQDNConnection::class, $resources[0]); + } + + public function testIsCreatable() + { + $this->expectsRequest( + 'post', + '/v2/fqdn_connections' + ); + $resource = FQDNConnection::create(["connection_name" => "Test Connection"]); + $this->assertInstanceOf(\Telnyx\FQDNConnection::class, $resource); + } + + public function testIsDeletable() + { + $resource = FQDNConnection::retrieve(self::TEST_RESOURCE_ID); + $this->expectsRequest( + 'delete', + '/v2/fqdn_connections/' . urlencode(self::TEST_RESOURCE_ID) + ); + $resource->delete(); + $this->assertInstanceOf(\Telnyx\FQDNConnection::class, $resource); + } + + public function testIsRetrievable() + { + $this->expectsRequest( + 'get', + '/v2/fqdn_connections/' . urlencode(self::TEST_RESOURCE_ID) + ); + $resource = FQDNConnection::retrieve(self::TEST_RESOURCE_ID); + $this->assertInstanceOf(\Telnyx\FQDNConnection::class, $resource); + } + + public function testIsUpdatable() + { + $this->expectsRequest( + 'patch', + '/v2/fqdn_connections/' . urlencode(self::TEST_RESOURCE_ID) + ); + $resource = FQDNConnection::update(self::TEST_RESOURCE_ID, [ + "connection_name" => "Central BSD-1" + ]); + $this->assertInstanceOf(\Telnyx\FQDNConnection::class, $resource); + } + +} diff --git a/tests/api_resources/FQDNTest.php b/tests/api_resources/FQDNTest.php new file mode 100644 index 0000000..ee9d30c --- /dev/null +++ b/tests/api_resources/FQDNTest.php @@ -0,0 +1,63 @@ +expectsRequest( + 'get', + '/v2/fqdns' + ); + $resources = FQDN::all(); + $this->assertInstanceOf(\Telnyx\Collection::class, $resources); + $this->assertInstanceOf(\Telnyx\FQDN::class, $resources[0]); + } + + public function testIsCreatable() + { + $this->expectsRequest( + 'post', + '/v2/fqdns' + ); + $resource = FQDN::create(["fqdn" => "example.com"]); + $this->assertInstanceOf(\Telnyx\FQDN::class, $resource); + } + + public function testIsDeletable() + { + $resource = FQDN::retrieve(self::TEST_RESOURCE_ID); + $this->expectsRequest( + 'delete', + '/v2/fqdns/' . urlencode(self::TEST_RESOURCE_ID) + ); + $resource->delete(); + $this->assertInstanceOf(\Telnyx\FQDN::class, $resource); + } + + public function testIsRetrievable() + { + $this->expectsRequest( + 'get', + '/v2/fqdns/' . urlencode(self::TEST_RESOURCE_ID) + ); + $resource = FQDN::retrieve(self::TEST_RESOURCE_ID); + $this->assertInstanceOf(\Telnyx\FQDN::class, $resource); + } + + public function testIsUpdatable() + { + $this->expectsRequest( + 'patch', + '/v2/fqdns/' . urlencode(self::TEST_RESOURCE_ID) + ); + $resource = FQDN::update(self::TEST_RESOURCE_ID, [ + "fqdn" => "example.com" + ]); + $this->assertInstanceOf(\Telnyx\FQDN::class, $resource); + } + +} diff --git a/tests/api_resources/IPConnectionTest.php b/tests/api_resources/IPConnectionTest.php new file mode 100644 index 0000000..c7294e9 --- /dev/null +++ b/tests/api_resources/IPConnectionTest.php @@ -0,0 +1,63 @@ +expectsRequest( + 'get', + '/v2/ip_connections' + ); + $resources = IPConnection::all(); + $this->assertInstanceOf(\Telnyx\Collection::class, $resources); + $this->assertInstanceOf(\Telnyx\IPConnection::class, $resources[0]); + } + + public function testIsCreatable() + { + $this->expectsRequest( + 'post', + '/v2/ip_connections' + ); + $resource = IPConnection::create(["connection_name" => "My connection name"]); + $this->assertInstanceOf(\Telnyx\IPConnection::class, $resource); + } + + public function testIsDeletable() + { + $resource = IPConnection::retrieve(self::TEST_RESOURCE_ID); + $this->expectsRequest( + 'delete', + '/v2/ip_connections/' . urlencode(self::TEST_RESOURCE_ID) + ); + $resource->delete(); + $this->assertInstanceOf(\Telnyx\IPConnection::class, $resource); + } + + public function testIsRetrievable() + { + $this->expectsRequest( + 'get', + '/v2/ip_connections/' . urlencode(self::TEST_RESOURCE_ID) + ); + $resource = IPConnection::retrieve(self::TEST_RESOURCE_ID); + $this->assertInstanceOf(\Telnyx\IPConnection::class, $resource); + } + + public function testIsUpdatable() + { + $this->expectsRequest( + 'patch', + '/v2/ip_connections/' . urlencode(self::TEST_RESOURCE_ID) + ); + $resource = IPConnection::update(self::TEST_RESOURCE_ID, [ + "connection_name" => "Central BSD-1" + ]); + $this->assertInstanceOf(\Telnyx\IPConnection::class, $resource); + } + +} diff --git a/tests/api_resources/IPTest.php b/tests/api_resources/IPTest.php new file mode 100644 index 0000000..e755706 --- /dev/null +++ b/tests/api_resources/IPTest.php @@ -0,0 +1,64 @@ +expectsRequest( + 'get', + '/v2/ips' + ); + $resources = IP::all(); + $this->assertInstanceOf(\Telnyx\Collection::class, $resources); + $this->assertInstanceOf(\Telnyx\IP::class, $resources[0]); + } + + public function testIsCreatable() + { + $this->expectsRequest( + 'post', + '/v2/ips' + ); + $resource = IP::create(["connection_id" => "UUID", "ip_address" => "192.168.0.0"]); + $this->assertInstanceOf(\Telnyx\IP::class, $resource); + } + + public function testIsDeletable() + { + $resource = IP::retrieve(self::TEST_RESOURCE_ID); + $this->expectsRequest( + 'delete', + '/v2/ips/' . urlencode(self::TEST_RESOURCE_ID) + ); + $resource->delete(); + $this->assertInstanceOf(\Telnyx\IP::class, $resource); + } + + public function testIsRetrievable() + { + $this->expectsRequest( + 'get', + '/v2/ips/' . urlencode(self::TEST_RESOURCE_ID) + ); + $resource = IP::retrieve(self::TEST_RESOURCE_ID); + $this->assertInstanceOf(\Telnyx\IP::class, $resource); + } + + public function testIsUpdatable() + { + $this->expectsRequest( + 'patch', + '/v2/ips/' . urlencode(self::TEST_RESOURCE_ID) + ); + $resource = IP::update(self::TEST_RESOURCE_ID, [ + "connection_id" => "Central BSD-1", + "ip_address" => "192.168.0.0" + ]); + $this->assertInstanceOf(\Telnyx\IP::class, $resource); + } + +}