public function test_sync_should_get_repositories_from_github_and_save_them() { $employee = Employee::builder()->withUsername("jgiovaresco")->build(); $repositories = array(Repository::builder()->withName("repo1")->build(), Repository::builder()->withName("repo2")->build()); $this->mockGitHubRestClient->expects($this->once())->method('listUserRepositories')->with('jgiovaresco')->willReturn($repositories); $this->mockRepositoryRepository->expects($this->at(0))->method('save')->with($this->equalTo($repositories[0])); $this->mockRepositoryRepository->expects($this->at(1))->method('save')->with($this->equalTo($repositories[1])); $this->syncService->sync($employee); }
/** * @param $employee Employee * @return Repository[] */ public function listUserRepositories($employee) { $url = self::BASE_URL . '/' . $employee->username() . '/repos'; $response = $this->request->uri($url)->expectsJson()->send(); $repositories = array(); if (is_array($response->body)) { foreach ($response->body as $repo) { array_push($repositories, Repository::builder()->withId($repo->id)->withName($repo->name)->withOwnerId($employee->employeeId())->build()); } } return $repositories; }