* @license http://www.apache.org/licenses/LICENSE-2.0 * @link http://phpsx.org */ abstract class ListingTestCase extends TestCase { public function testGetAvailableRoutes() { $listing = $this->newListing(); $routes = $listing->getAvailableRoutes(); $this->assertIsArray($routes); $this->assertEquals(2, count($routes)); $this->assertInstanceOf(Route::class, $routes[0]); $this->assertEquals('/foo', $routes[0]->getPath()); $this->assertEquals('/bar', $routes[1]->getPath()); $routes = $listing->getAvailableRoutes(); $this->assertIsArray($routes); $this->assertEquals(2, count($routes)); $this->assertInstanceOf(Route::class, $routes[0]); $this->assertEquals('/foo', $routes[0]->getPath()); $this->assertEquals('/bar', $routes[1]->getPath()); } public function testGetAvailableRoutesFilter() { $listing = $this->newListing(); $routes = $listing->getAvailableRoutes(new RegxpFilter('^/foo')); $this->assertIsArray($routes); $this->assertEquals(1, count($routes)); $this->assertInstanceOf(Route::class, $routes[0]); $this->assertEquals('/foo', $routes[0]->getPath()); $routes = $listing->getAvailableRoutes(new RegxpFilter('^/bar')); $this->assertIsArray($routes); $this->assertEquals(1, count($routes)); $this->assertInstanceOf(Route::class, $routes[0]); $this->assertEquals('/bar', $routes[0]->getPath()); } public function testFind() { $listing = $this->newListing(); $specification = $listing->find('/foo'); $this->assertInstanceOf(SpecificationInterface::class, $specification); $this->assertEquals('/foo', $specification->getResourceCollection()->get('/foo')->getPath()); $specification = $listing->find('/foo'); $this->assertInstanceOf(SpecificationInterface::class, $specification); $this->assertEquals('/foo', $specification->getResourceCollection()->get('/foo')->getPath()); $specification = $listing->find('/bar'); $this->assertInstanceOf(SpecificationInterface::class, $specification); $this->assertEquals('/bar', $specification->getResourceCollection()->get('/bar')->getPath()); } public function testFindAll() { $listing = $this->newListing(); $specification = $listing->findAll(); $this->assertInstanceOf(SpecificationInterface::class, $specification); $this->assertEquals(2, $specification->getResourceCollection()->count()); $this->assertInstanceOf(Resource::class, $specification->getResourceCollection()->get('/foo')); $this->assertInstanceOf(Resource::class, $specification->getResourceCollection()->get('/bar')); $specification = $listing->findAll(); $this->assertInstanceOf(SpecificationInterface::class, $specification); $this->assertEquals(2, $specification->getResourceCollection()->count()); $this->assertInstanceOf(Resource::class, $specification->getResourceCollection()->get('/foo')); $this->assertInstanceOf(Resource::class, $specification->getResourceCollection()->get('/bar')); } public function testFindAllFilter() { $listing = $this->newListing(); $specification = $listing->findAll(null, new RegxpFilter('^/foo')); $this->assertInstanceOf(SpecificationInterface::class, $specification); $this->assertEquals(1, $specification->getResourceCollection()->count()); $this->assertInstanceOf(Resource::class, $specification->getResourceCollection()->get('/foo')); $specification = $listing->findAll(null, new RegxpFilter('^/bar')); $this->assertInstanceOf(SpecificationInterface::class, $specification); $this->assertEquals(1, $specification->getResourceCollection()->count()); $this->assertInstanceOf(Resource::class, $specification->getResourceCollection()->get('/bar')); } /** * @return \PSX\Api\ListingInterface */ abstract protected function newListing(); } __halt_compiler();----SIGNATURE:----forUFqYOrpUpkWxh9Fq7HShzOAfEKevIwjUv/Rov8sAS1FFC3uY03Rko1NZwTzYEdF7s3UmhGkRVIzG3ISiKcNhHk7zPDuOgxzplI9P+Zbrlycp3s+Oi19G2wPS11QU+45hQ4ZRp8PzwviTn3ZXBNkfsgckkN5lR44KwMOEmAz+D42sQM0fRNKH+xe4RIxSPH7WYFFiyoEgXce6Im+mHPzLDs2HR9V6UsIu8utmV/nri4S91asya07ptaj7k3JlLqq1/I17IfS3P9rxz2XhUJU7hORJOeDaLwaHpGXi7Uk1vZUvovAP+lKyObp+BujfDnvuPXNO1eHc770EATZGH6QQHlJf+0gyuSeNjJnSJBlxrqTGd8nXshZvnbdrFvBnMXFA+MoW+6IVjsay2/50ThttkFDZ7wP6xMLxW2NQ7B+gAyhrNldoOzq6b/1y/G16LxBD7WcS2Ntg5NLIjsO5ApWbV7NjHReN9wXLE3d2iMPfGtydzNLMNo8JsNBXWvv4JlTbxiErv+oTaRaIDP8xnfspZaPyJgM2P3ChXwgHhUsbIJLE90HO5KGBUbfOYlqh0Qnph6r/S6LFC58PsRXKDPhDHVbddXScCumBG6K9RaXGwKGAHrze/JhPaPdoDQ6bCqUGSGzKWls+2zVEi3sZd+Im+UPMVgkhU3ytG7FetJjc=----ATTACHMENT:----MjMyNjUzODk1NDE3OTE2MiA2MTIxMDIwMzk0MDY3MTc5IDgwMTc0OTIxNjk4MDQ0NDE=