public function it_will_create_remote_repo_value_object(PushPayload $pushPayload) { $data = ['id' => 'githubId', 'name' => 'name', 'full_name' => 'owner/name', 'owner' => ['name' => 'owner'], 'html_url' => 'https://github.com/owner/name', 'description' => 'Description', 'fork' => false, 'default_branch' => 'master', 'private' => false, 'git_url' => 'git://github.com/owner/name.git', 'ssh_url' => 'git@github.com:owner/name.git', 'created_at' => 1445097225, 'updated_at' => '2015-10-17T15:53:45Z', 'pushed_at' => 1448054741]; $pushPayload->getRepositoryDetails()->willReturn($data); $this->create($pushPayload)->shouldReturnAnInstanceOf('DevBoard\\GithubRemote\\ValueObject\\Repo\\Repo'); }
/** * @param PushPayload $pushPayload * * @return Repo */ public function create(PushPayload $pushPayload) { $data = $pushPayload->getRepositoryDetails(); return new Repo($data['id'], $data['owner']['name'], $data['name'], $data['full_name'], $data['html_url'], $data['description'], $data['fork'], $data['default_branch'], $data['private'], $data['git_url'], $data['ssh_url'], DateTime::createFromFormat('U', $data['created_at']), new DateTime($data['updated_at']), DateTime::createFromFormat('U', $data['pushed_at'])); }