Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ matrix:
- env: CodeQuality
sudo: false
language: php
php: 7.0
php: 7.1
cache:
directories:
- vendor
Expand All @@ -28,7 +28,7 @@ matrix:
- env: phpspec
sudo: false
language: php
php: 7.0
php: 7.1
cache:
directories:
- vendor
Expand All @@ -53,7 +53,7 @@ matrix:
- env: phpunit
sudo: false
language: php
php: 7.0
php: 7.1
cache:
directories:
- vendor
Expand Down
8 changes: 4 additions & 4 deletions spec/GitHubRepoSpec.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,15 @@ class GitHubRepoSpec extends ObjectBehavior
public function let(
GitHubRepoId $id,
GitHubRepoFullName $fullName,
GitHubRepoOwner $owner,
GitHubRepoOwner $ownerDetails,
GitHubRepoEndpoints $endpoints,
GitHubRepoTimestamps $timestamps,
GitHubRepoStats $stats
) {
$this->beConstructedWith(
$id,
$fullName,
$owner,
$ownerDetails,
$private = false,
$endpoints,
$timestamps,
Expand All @@ -44,14 +44,14 @@ public function it_is_initializable()
public function it_exposes_constructor_arguments(
GitHubRepoId $id,
GitHubRepoFullName $fullName,
GitHubRepoOwner $owner,
GitHubRepoOwner $ownerDetails,
GitHubRepoEndpoints $endpoints,
GitHubRepoTimestamps $timestamps,
GitHubRepoStats $stats
) {
$this->getId()->shouldReturn($id);
$this->getFullName()->shouldReturn($fullName);
$this->getOwner()->shouldReturn($owner);
$this->getOwnerDetails()->shouldReturn($ownerDetails);
$this->isPrivate()->shouldReturn(false);
$this->isPublic()->shouldReturn(true);
$this->getEndpoints()->shouldReturn($endpoints);
Expand Down
29 changes: 25 additions & 4 deletions src/Commit/GitHubCommitAuthor.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public function __construct(
GitHubCommitAuthorName $name,
GitHubCommitAuthorEmail $email,
GitHubCommitDate $commitDate,
GitHubCommitAuthorDetails $authorDetails
?GitHubCommitAuthorDetails $authorDetails
) {
$this->name = $name;
$this->email = $email;
Expand All @@ -49,28 +49,49 @@ public function getCommitDate(): GitHubCommitDate
return $this->commitDate;
}

public function getAuthorDetails(): GitHubCommitAuthorDetails
public function hasAuthorDetails(): bool
{
if (null === $this->authorDetails) {
return false;
}

return true;
}

public function getAuthorDetails(): ?GitHubCommitAuthorDetails
{
return $this->authorDetails;
}

public function serialize(): array
{
if (true === $this->hasAuthorDetails()) {
$authorDetails = $this->authorDetails->serialize();
} else {
$authorDetails = null;
}

return [
'name' => (string) $this->name,
'email' => (string) $this->email,
'commitDate' => (string) $this->commitDate,
'authorDetails' => $this->authorDetails->serialize(),
'authorDetails' => $authorDetails,
];
}

public static function deserialize(array $data): GitHubCommitAuthor
{
if (null === $data['authorDetails']) {
$authorDetails = null;
} else {
$authorDetails = GitHubCommitAuthorDetails::deserialize($data['authorDetails']);
}

return new self(
new GitHubCommitAuthorName($data['name']),
new GitHubCommitAuthorEmail($data['email']),
new GitHubCommitDate($data['commitDate']),
GitHubCommitAuthorDetails::deserialize($data['authorDetails'])
$authorDetails
);
}
}
29 changes: 25 additions & 4 deletions src/Commit/GitHubCommitCommitter.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public function __construct(
GitHubCommitCommitterName $name,
GitHubCommitCommitterEmail $email,
GitHubCommitDate $commitDate,
GitHubCommitCommitterDetails $committerDetails
?GitHubCommitCommitterDetails $committerDetails
) {
$this->name = $name;
$this->email = $email;
Expand All @@ -49,28 +49,49 @@ public function getCommitDate(): GitHubCommitDate
return $this->commitDate;
}

public function getCommitterDetails(): GitHubCommitCommitterDetails
public function hasCommitterDetails(): bool
{
if (null === $this->committerDetails) {
return false;
}

return true;
}

public function getCommitterDetails(): ?GitHubCommitCommitterDetails
{
return $this->committerDetails;
}

public function serialize(): array
{
if (true === $this->hasCommitterDetails()) {
$committerDetails = $this->committerDetails->serialize();
} else {
$committerDetails = null;
}

return [
'name' => (string) $this->name,
'email' => (string) $this->email,
'commitDate' => (string) $this->commitDate,
'committerDetails' => $this->committerDetails->serialize(),
'committerDetails' => $committerDetails,
];
}

public static function deserialize(array $data): GitHubCommitCommitter
{
if (null === $data['committerDetails']) {
$committerDetails = null;
} else {
$committerDetails = GitHubCommitCommitterDetails::deserialize($data['committerDetails']);
}

return new self(
new GitHubCommitCommitterName($data['name']),
new GitHubCommitCommitterEmail($data['email']),
new GitHubCommitDate($data['commitDate']),
GitHubCommitCommitterDetails::deserialize($data['committerDetails'])
$committerDetails
);
}
}
59 changes: 40 additions & 19 deletions src/GitHubRepo.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class GitHubRepo
/** @var GitHubRepoFullName */
private $fullName;
/** @var GitHubRepoOwner */
private $owner;
private $ownerDetails;
/** @var bool */
private $private;
/** @var GitHubRepoEndpoints */
Expand All @@ -37,19 +37,19 @@ class GitHubRepo
public function __construct(
GitHubRepoId $id,
GitHubRepoFullName $fullName,
GitHubRepoOwner $owner,
?GitHubRepoOwner $ownerDetails,
bool $private,
GitHubRepoEndpoints $endpoints,
GitHubRepoTimestamps $timestamps,
GitHubRepoStats $stats
) {
$this->id = $id;
$this->fullName = $fullName;
$this->owner = $owner;
$this->private = $private;
$this->endpoints = $endpoints;
$this->timestamps = $timestamps;
$this->stats = $stats;
$this->id = $id;
$this->fullName = $fullName;
$this->ownerDetails = $ownerDetails;
$this->private = $private;
$this->endpoints = $endpoints;
$this->timestamps = $timestamps;
$this->stats = $stats;
}

public function getId(): GitHubRepoId
Expand All @@ -72,9 +72,18 @@ public function getRepoName(): GitHubRepoName
return $this->fullName->getRepoName();
}

public function getOwner(): GitHubRepoOwner
public function hasOwnerDetails(): bool
{
return $this->owner;
if (null === $this->ownerDetails) {
return false;
}

return true;
}

public function getOwnerDetails(): ?GitHubRepoOwner
{
return $this->ownerDetails;
}

public function isPrivate(): bool
Expand Down Expand Up @@ -104,23 +113,35 @@ public function getStats(): GitHubRepoStats

public function serialize(): array
{
if (true === $this->hasOwnerDetails()) {
$ownerDetails = $this->ownerDetails->serialize();
} else {
$ownerDetails = null;
}

return [
'id' => $this->id->getValue(),
'fullName' => (string) $this->fullName,
'owner' => $this->owner->serialize(),
'private' => $this->private,
'endpoints' => $this->endpoints->serialize(),
'timestamps' => $this->timestamps->serialize(),
'stats' => $this->stats->serialize(),
'id' => $this->id->getValue(),
'fullName' => (string) $this->fullName,
'ownerDetails' => $ownerDetails,
'private' => $this->private,
'endpoints' => $this->endpoints->serialize(),
'timestamps' => $this->timestamps->serialize(),
'stats' => $this->stats->serialize(),
];
}

public static function deserialize(array $data): GitHubRepo
{
if (null === $data['ownerDetails']) {
$ownerDetails = null;
} else {
$ownerDetails = GitHubRepoOwner::deserialize($data['ownerDetails']);
}

return new self(
new GitHubRepoId($data['id']),
GitHubRepoFullName::createFromString($data['fullName']),
GitHubRepoOwner::deserialize($data['owner']),
$ownerDetails,
$data['private'],
GitHubRepoEndpoints::deserialize($data['endpoints']),
GitHubRepoTimestamps::deserialize($data['timestamps']),
Expand Down
10 changes: 8 additions & 2 deletions tests/Commit/GitHubCommitAuthorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public function testCreating(
GitHubCommitAuthorName $name,
GitHubCommitAuthorEmail $email,
GitHubCommitDate $commitDate,
GitHubCommitAuthorDetails $authorDetails
?GitHubCommitAuthorDetails $authorDetails
) {
$sut = new GitHubCommitAuthor($name, $email, $commitDate, $authorDetails);

Expand All @@ -45,7 +45,7 @@ public function testSerializationAndDeserialization(
GitHubCommitAuthorName $name,
GitHubCommitAuthorEmail $email,
GitHubCommitDate $commitDate,
GitHubCommitAuthorDetails $authorDetails
?GitHubCommitAuthorDetails $authorDetails
) {
$sut = new GitHubCommitAuthor($name, $email, $commitDate, $authorDetails);

Expand All @@ -72,6 +72,12 @@ public function provideArguments(): array
false
),
],
[
new GitHubCommitAuthorName('name'),
new GitHubCommitAuthorEmail('nobody@example.com'),
new GitHubCommitDate('2017-02-03 11:22:33'),
null,
],
];
}
}
10 changes: 8 additions & 2 deletions tests/Commit/GitHubCommitCommitterTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public function testCreating(
GitHubCommitCommitterName $name,
GitHubCommitCommitterEmail $email,
GitHubCommitDate $commitDate,
GitHubCommitCommitterDetails $committerDetails
?GitHubCommitCommitterDetails $committerDetails
) {
$sut = new GitHubCommitCommitter($name, $email, $commitDate, $committerDetails);

Expand All @@ -45,7 +45,7 @@ public function testSerializationAndDeserialization(
GitHubCommitCommitterName $name,
GitHubCommitCommitterEmail $email,
GitHubCommitDate $commitDate,
GitHubCommitCommitterDetails $committerDetails
?GitHubCommitCommitterDetails $committerDetails
) {
$sut = new GitHubCommitCommitter($name, $email, $commitDate, $committerDetails);

Expand All @@ -72,6 +72,12 @@ public function provideArguments(): array
false
),
],
[
new GitHubCommitCommitterName('name'),
new GitHubCommitCommitterEmail('nobody@example.com'),
new GitHubCommitDate('2017-02-03 11:22:33'),
null,
],
];
}
}
Loading