상속: implements ValueObjects\ValueObjectInterface
 private function newActorUpdated(\DateTimeImmutable $time)
 {
     $actorId = new String('318F2ACB-F612-6F75-0037C9C29F44087A');
     $author = new String('*****@*****.**');
     $url = Url::fromNative('https://io.uitdatabank.be/event/318F2ACB-F612-6F75-0037C9C29F44087A');
     return new ActorUpdated($actorId, $time, $author, $url);
 }
 public function testWhenMechanismThrowExceptionReportIsFailed()
 {
     $mechanism_mock = \Mockery::mock('\\SimpleHealth\\EndpointMechanismInterface');
     $validator_mock = \Mockery::mock('\\SimpleHealth\\ValidatorInterface');
     $mechanism_mock->shouldReceive('request')->andThrow(new \GuzzleHttp\Exception\TransferException());
     $healthcheck = new EndpointHealthCheck(Url::fromNative('http://www.php.net'), $mechanism_mock, $validator_mock);
     $report = $healthcheck->check();
     $this->assertEquals($report->pass, false);
 }
 public function testCheckReturnsCode()
 {
     $client_mock = \Mockery::mock('\\GuzzleHttp\\Client');
     $response_mock = \Mockery::mock('\\GuzzleHttp\\Psr7\\Response');
     $url = Url::fromNative('http://www.php.net');
     $client_mock->shouldReceive('request')->andReturn($response_mock);
     $obj = new \SimpleHealth\CurlMechanism($client_mock, $url);
     $code = $obj->request();
 }
 public function build()
 {
     $endpoints = \SplFixedArray::fromArray($this->endpoints);
     for ($i = 0, $len = count($endpoints); $i < $len; $i++) {
         $endpoints[$i] = Url::fromNative($endpoints[$i]);
     }
     $endpoints = new Collection($endpoints);
     $node_healthcheck_factory = new NodeHealthCheckFactory();
     $node_healthcheck = $node_healthcheck_factory->make($endpoints);
     return new SimpleHealth($endpoints, $node_healthcheck);
 }
 public function testReturnsActorUpdated()
 {
     $actorUpdated = $this->deserializer->deserialize(new StringLiteral('{
                 "actorId": "foo",
                 "time": "2015-02-20T20:39:09+0100",
                 "author": "*****@*****.**",
                 "url": "http://foo.bar/event/foo"
             }'));
     $this->assertInstanceOf(ActorUpdated::class, $actorUpdated);
     $this->assertEquals(new StringLiteral('foo'), $actorUpdated->getactorId());
     $this->assertEquals(new StringLiteral('*****@*****.**'), $actorUpdated->getAuthor());
     $this->assertEquals(\DateTimeImmutable::createFromFormat(DateTime::ISO8601, '2015-02-20T20:39:09+0100'), $actorUpdated->getTime());
     $this->assertEquals(Url::fromNative('http://foo.bar/event/foo'), $actorUpdated->getUrl());
 }
 public function testProperties()
 {
     $id = new StringLiteral('foo');
     $time = new \DateTimeImmutable();
     $author = new StringLiteral('*****@*****.**');
     $url = Url::fromNative('http://www.some.url');
     $cdbXml = new StringLiteral(file_get_contents(__DIR__ . '/actor.xml'));
     $cdbXmlNamespaceUri = new StringLiteral('http://www.cultuurdatabank.com/XMLSchema/CdbXSD/3.2/FINAL');
     $event = new ActorCreatedEnrichedWithCdbXml($id, $time, $author, $url, $cdbXml, $cdbXmlNamespaceUri);
     $this->assertEquals($id, $event->getActorId());
     $this->assertEquals($time, $event->getTime());
     $this->assertEquals($author, $event->getAuthor());
     $this->assertEquals($url, $event->getUrl());
     $this->assertEquals($cdbXml, $event->getCdbXml());
     $this->assertEquals($cdbXmlNamespaceUri, $event->getCdbXmlNamespaceUri());
 }
 public function test()
 {
     $validator_mock = \Mockery::mock('\\SimpleHealth\\ValidatorInterface');
     $heatlhcheck_factory_mock = \Mockery::mock('\\SimpleHealth\\EndpointHealthCheckFactory');
     $healthcheck_mock = \Mockery::mock('\\SimpleHealth\\EndpointHealthCheck');
     $endpoint_report_mock = \Mockery::mock('\\SimpleHealth\\EndpointReport');
     $node_valid_mock = \Mockery::mock('\\SimpleHealth\\ValidatorResult');
     $node_valid_mock->pass = true;
     $validator_mock->shouldReceive('isValid')->andReturn($node_valid_mock);
     $heatlhcheck_factory_mock->shouldReceive('make')->andReturn($healthcheck_mock);
     $healthcheck_mock->shouldReceive('check')->andReturn($endpoint_report_mock);
     $endpoints = new Collection(SplFixedArray::fromArray([Url::fromNative('http://www.php.net/')]));
     $subject = new NodeHealthCheck($endpoints, $validator_mock, $heatlhcheck_factory_mock);
     $node_report = $subject->check();
     $this->assertEquals($node_report->pass, true);
 }
 public function connect(Application $app)
 {
     /** @var ControllerCollection $controllers */
     $controllers = $app['controllers_factory'];
     $app[self::JSONLD_CONTEXT_CONTROLLER] = $app->share(function (Application $app) {
         $contextDirectory = new StringLiteral($app['config']['jsonld']['context_directory']);
         $controller = new ContextController($contextDirectory);
         if (isset($app['config']['url']) && $app['config']['url'] !== ContextController::DEFAULT_BASE_PATH) {
             $basePath = Url::fromNative($app['config']['url']);
             return $controller->withCustomBasePath($basePath);
         } else {
             return $controller;
         }
     });
     $controllers->get('/{entityName}', self::JSONLD_CONTEXT_CONTROLLER . ':get');
     return $controllers;
 }
 /**
  * @param array $data
  * @return static
  */
 public static function deserialize(array $data)
 {
     return new static(new StringLiteral($data['actorId']), ISO8601DateTimeDeserializer::deserialize(new StringLiteral($data['time'])), new StringLiteral($data['author']), Url::fromNative($data['url']));
 }
 public function testGetUrl()
 {
     $eventCreated = $this->createEventCreated();
     $this->assertEquals(Url::fromNative('http://foo.bar/event/foo'), $eventCreated->getUrl());
 }
 public function testUrl()
 {
     $actorUpdated = $this->createActorUpdated();
     $this->assertEquals(Url::fromNative('http://foo.bar/event/foo'), $actorUpdated->getUrl());
 }
 public function testCorrespondingObjectIsReturned()
 {
     $subject = new EndpointHealthCheckFactory();
     $obj = $subject->make(Url::fromNative('http://www.php.net/'));
     $this->assertInstanceOf('\\SimpleHealth\\EndpointHealthCheck', $obj);
 }
 /**
  * @inheritdoc
  */
 public function transform(Url $url)
 {
     $lastSlashPosition = strrpos($url, '/') + 1;
     $cdbid = substr($url, $lastSlashPosition, strlen($url) - $lastSlashPosition);
     return Url::fromNative(sprintf($this->urlFormat, $cdbid));
 }
예제 #14
0
 public function testNullPortUrlToString()
 {
     $nullPortUrl = new Url(new SchemeName('http'), new StringLiteral('user'), new StringLiteral(''), new Hostname('foo.com'), new NullPortNumber(), new Path('/bar'), new QueryString('?querystring'), new FragmentIdentifier('#fragmentidentifier'));
     $this->assertSame('http://user@foo.com/bar?querystring#fragmentidentifier', $nullPortUrl->__toString());
 }
 /**
  * @param Request $request
  * @param $cdbid
  * @return Response
  */
 public function addLink(Request $request, $cdbid)
 {
     $callback = function () use($request, $cdbid) {
         $repository = $this->eventRepository;
         if ($request->getContentType() !== 'form') {
             $rsp = rsp::error('UnexpectedFailure', 'Content-Type is not x-www-form-urlencoded.');
             return $rsp;
         }
         $required = ['lang' => 'Language code', 'subbrand' => 'Sub-brand', 'description' => 'Description', 'linktype' => 'Link type', 'plaintext' => 'Plain text'];
         foreach ($required as $requiredProperty => $humanReadable) {
             if (!$request->request->get($requiredProperty)) {
                 throw new InvalidArgumentException(sprintf('%s is required.', $humanReadable));
             }
         }
         $type = strtolower($request->request->get('linktype'));
         // At this point only collaboration "links" are supported.
         if ($type !== 'collaboration') {
             throw new InvalidArgumentException('Link type should be "collaboration". Any other type is not supported.');
         }
         $eventId = new String($cdbid);
         $language = new Language(strtolower($request->request->get('lang')));
         $collaborationData = new CollaborationData(new String($request->request->get('subbrand')), new String($request->request->get('plaintext')));
         if ($request->request->has('title')) {
             $collaborationData = $collaborationData->withTitle(new String($request->request->get('title')));
         }
         if ($request->request->has('copyright')) {
             $collaborationData = $collaborationData->withCopyright(new String($request->request->get('copyright')));
         }
         if ($request->request->has('link')) {
             $collaborationData = $collaborationData->withLink(Url::fromNative($request->request->get('link')));
         }
         $description = json_decode($request->request->get('description'));
         if (is_null($description)) {
             throw new InvalidArgumentException('Description is not a valid json string.');
         }
         if (!empty($description->text)) {
             $collaborationData = $collaborationData->withText(new String($description->text));
         }
         if (!empty($description->keyword)) {
             $collaborationData = $collaborationData->withKeyword(new String($description->keyword));
         }
         if (!empty($description->article)) {
             $collaborationData = $collaborationData->withArticle(new String($description->article));
         }
         if (!empty($description->image)) {
             $collaborationData = $collaborationData->withImage(new String($description->image));
         }
         $command = new AddCollaborationLink($eventId, $language, $collaborationData);
         $commandHandler = new EntryAPIEventCommandHandler($repository);
         $commandHandler->handle($command);
         $link = $this->entryapiLinkBaseUrl . $cdbid;
         $rsp = new Rsp('0.1', 'INFO', 'LinkCreated', $link, null);
         return $rsp;
     };
     return $this->processEventRequest($callback);
 }