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
31 changes: 31 additions & 0 deletions spec/Tag/GitHubTagNameSpec.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<?php

declare(strict_types=1);

namespace spec\Devboard\GitHub\Tag;

use Devboard\GitHub\Tag\GitHubTagName;
use PhpSpec\ObjectBehavior;

class GitHubTagNameSpec extends ObjectBehavior
{
public function let()
{
$this->beConstructedWith('0.1.0');
}

public function it_is_initializable()
{
$this->shouldHaveType(GitHubTagName::class);
}

public function it_will_expose_value()
{
$this->getValue()->shouldReturn('0.1.0');
}

public function it_should_be_castable_to_string()
{
$this->__toString()->shouldReturn('0.1.0');
}
}
30 changes: 30 additions & 0 deletions src/Tag/GitHubTagName.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?php

declare(strict_types=1);

namespace Devboard\GitHub\Tag;

/**
* @see GitHubTagNameSpec
* @see GitHubTagNameTest
*/
class GitHubTagName
{
/** @var string */
private $value;

public function __construct(string $value)
{
$this->value = $value;
}

public function getValue(): string
{
return $this->value;
}

public function __toString(): string
{
return $this->value;
}
}
36 changes: 36 additions & 0 deletions tests/Tag/GitHubTagNameTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<?php

declare(strict_types=1);

namespace tests\Devboard\GitHub\Tag;

use Devboard\GitHub\Tag\GitHubTagName;

/**
* @covers \Devboard\GitHub\Tag\GitHubTagName
* @group unit
*/
class GitHubTagNameTest extends \PHPUnit_Framework_TestCase
{
/** @dataProvider provideTagNames */
public function testItExposesValue($name)
{
$sut = new GitHubTagName($name);
$this->assertEquals($name, $sut->getValue());
}

/** @dataProvider provideTagNames */
public function testItCanBeAutoConvertedToString($name)
{
$sut = new GitHubTagName($name);
$this->assertEquals($name, (string) $sut);
}

public function provideTagNames()
{
return [
['0.1.0'],
['1.0'],
];
}
}