Esempio n. 1
0
 public function testBuilder()
 {
     // given
     $routeMap = new RouteMap();
     $req = new Request();
     $req->setUrl('/foo/123');
     $req->setHttpMethod(Http::METHOD_GET);
     $req->setProtocol(Http::HTTPS);
     // when
     $routeMap->connect('test', RouteBuilder::get()->uri('/foo/:id')->method(Http::METHOD_GET)->command('Fliglio\\Routing.StubResource.getFlub')->protocol(Http::HTTPS)->param('bar', 'baz')->build())->connect(null, RouteBuilder::get()->key('test2')->uri('/foo2/:id')->method(Http::METHOD_GET)->command('Fliglio\\Routing.StubResource.getFlub2')->protocol(Http::HTTPS)->param('bar', 'baz')->build())->connectRoute(RouteBuilder::get()->key('test3')->uri('/foo3/:id')->method(Http::METHOD_GET)->command('Fliglio\\Routing.StubResource.getFlub3')->protocol(Http::HTTPS)->param('bar', 'baz')->build());
     // then
     $route = $routeMap->getRoute($req);
     $params = $route->getParams();
     $this->assertEquals($params, array('id' => 123, 'bar' => 'baz'));
     $this->assertEquals('Fliglio\\Routing\\StubResource', get_class($route->getResourceInstance()));
     $this->assertEquals('getFlub', $route->getResourceMethod());
     // and
     $req->setUrl('/foo2/123');
     $route = $routeMap->getRoute($req);
     $this->assertEquals('getFlub2', $route->getResourceMethod());
     // and
     $req->setUrl('/foo3/123');
     $route = $routeMap->getRoute($req);
     $this->assertEquals('getFlub3', $route->getResourceMethod());
 }
Esempio n. 2
0
 public function getRoutes()
 {
     // Consul
     $apFactory = new AddressProviderFactory();
     // Rabbitmq
     $rabbitAp = $apFactory->createConsulAddressProvider('rabbitmq');
     $rAdd = $rabbitAp->getAddress();
     $rConn = new AMQPStreamConnection($rAdd->getHost(), $rAdd->getPort(), "guest", "guest", "/");
     // MySQL
     $mysqlAp = $apFactory->createConsulAddressProvider('mysql');
     $mAdd = $mysqlAp->getAddress();
     $dsn = sprintf("mysql:host=%s;dbname=borg", $mAdd->getHost());
     $db = new \PDO($dsn, 'borg', 'changeme', [\PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8']);
     $db->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
     // Resource Dependencies
     $http = null;
     $scanner = new Scanner($http);
     $dbm = new RaceDbm($db);
     // Resources
     $ls = new LifeFormScanner($scanner);
     $gs = new GroupScanner($scanner);
     $as = new Assimilation($dbm);
     // Borg
     $driver = new AmqpCollectiveDriver($rConn);
     $coll = new Collective($driver, "borg-demo", $_SERVER['CUBE_DC']);
     $coll->assimilate($ls);
     $coll->assimilate($gs);
     $coll->assimilate($dbm);
     return [RouteBuilder::get()->uri('/life-form')->resource($ls, 'scan')->method(Http::METHOD_POST)->build(), RouteBuilder::get()->uri('/group')->resource($gs, 'scan')->method(Http::METHOD_POST)->build(), RouteBuilder::get()->uri('/race/:race')->resource($as, 'assimilateRace')->method(Http::METHOD_PUT)->build(), RouteBuilder::get()->uri('/race/:race')->resource($as, 'getRaceStatus')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/borg')->resource($coll, "mux")->method(Http::METHOD_POST)->build()];
 }
Esempio n. 3
0
 public function setup()
 {
     $this->request = new Request();
     $this->request->setHttpMethod(Http::METHOD_GET);
     $this->context = new Context($this->request, new Response());
     $this->routeMap = new RouteMap();
     $this->routeMap->connect('patternEx', RouteBuilder::get()->uri('/foo/:id')->command('Fliglio\\Routing.StubResource.getFoo')->method(Http::METHOD_GET)->build())->connect("staticEx", RouteBuilder::get()->uri('/foo')->command('Fliglio\\Routing.StubResource.getFoo')->method(Http::METHOD_GET)->build())->connect("error", RouteBuilder::get()->catchNone()->command('Fliglio\\Routing.StubResource.error')->build())->connect("404", RouteBuilder::get()->catchAll()->command('Fliglio\\Routing.StubResource.dne')->build());
 }
Esempio n. 4
0
 public function setup()
 {
     $this->request = new Request();
     $this->request->setProtocol(Http::HTTP);
     $this->request->setHttpMethod(Http::METHOD_GET);
     $this->context = new Context($this->request, new Response());
     $this->routeMap = new RouteMap();
     $this->routeMap->connect('postEx', RouteBuilder::get()->uri('/foo')->command('Fliglio\\Routing.StubResource.addFoo')->method(Http::METHOD_POST)->build())->connect('ex', RouteBuilder::get()->uri('/foo/:id')->command('Fliglio\\Routing.StubResource.getFoo')->method(Http::METHOD_GET)->build())->connect('ex2', RouteBuilder::get()->uri('/bar/:id')->command('Fliglio\\Routing.StubResourceChild.getFoo')->method(Http::METHOD_GET)->build())->connect('bad', RouteBuilder::get()->uri('/baz/:id')->command('Fliglio\\Routing.StubResource.getFlub')->method(Http::METHOD_GET)->build())->connect('catchAll', RouteBuilder::get()->catchAll()->command('Fliglio\\Routing.StubResource.getCatchAll')->method(Http::METHOD_GET)->build());
 }
Esempio n. 5
0
 public function getRoutes()
 {
     $rConn = new AMQPStreamConnection('localhost', 5672, "guest", "guest", "/");
     $driver = new AmqpCollectiveDriver($rConn);
     $resource = new TestResource();
     $fun = new FunResource();
     $shake = new ShakespeareResource();
     $mapper = new DefaultMapper($driver);
     $routing = new RoutingConfiguration("borg-demo");
     $coll = new Collective($driver, $mapper, $routing);
     $coll->assimilate($resource);
     $coll->assimilate($fun);
     $coll->assimilate($shake);
     return [RouteBuilder::get()->uri('/round-trip')->resource($resource, 'roundTrip')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/chan-chan')->resource($resource, 'chanChan')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/generate-numbers')->resource($resource, 'generateNumbers')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/generate-numbers-2')->resource($resource, 'generateNumbersTwo')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/sync')->resource($resource, 'syncEx')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/fibonacci')->resource($fun, 'fibonacci')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/pi')->resource($fun, 'pi')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/prime')->resource($fun, 'prime')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/shakespeare/words')->resource($shake, 'allWords')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/shakespeare/words-sync')->resource($shake, 'allWordsSync')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/borg')->resource($coll, "mux")->method(Http::METHOD_POST)->build()];
 }
Esempio n. 6
0
 public function getRoutes()
 {
     $resource = $this->getTodoResource();
     return [RouteBuilder::get()->uri('/todo')->resource($resource, 'getAll')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/todo/weather')->resource($resource, 'getWeatherAppropriate')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/todo/:id')->resource($resource, 'get')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/todo')->resource($resource, 'add')->method(Http::METHOD_POST)->build(), RouteBuilder::get()->uri('/todo/:id')->resource($resource, 'update')->method(Http::METHOD_PUT)->build(), RouteBuilder::get()->uri('/todo/:id')->resource($resource, 'delete')->method(Http::METHOD_DELETE)->build()];
 }