Skip to content

Commit c09fe60

Browse files
committed
Add more tests. Split tests between direct access (MyEntity::get(1)) and indirect access (StaticEntity::get(1, 'Path\To\Class'))
1 parent 9279acc commit c09fe60

File tree

3 files changed

+146
-35
lines changed

3 files changed

+146
-35
lines changed

tests/Fixtures/Civility.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ class Civility extends StaticEntity
1212
static public function getDataSet()
1313
{
1414
return array(
15-
'mr' => array('name' => 'Monsieur', 'shortName' => 'M.'),
16-
'mrs' => array('name' => 'Madame', 'shortName' => 'Mme'),
15+
'mr' => array('name' => 'Mister', 'shortName' => 'Mr'),
16+
'mrs' => array('name' => 'Misses', 'shortName' => 'Mrs'),
1717
);
1818
}
1919

@@ -32,4 +32,4 @@ public function getShortName()
3232
{
3333
return $this->shortName;
3434
}
35-
}
35+
}

tests/StaticEntityTest.php renamed to tests/StaticEntityDirectTest.php

Lines changed: 26 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,18 @@
77
use Byscripts\StaticEntity\Tests\Fixtures\InvalidData;
88
use Byscripts\StaticEntity\Tests\Fixtures\InvalidDataSet;
99
use Byscripts\StaticEntity\Tests\Fixtures\MissingProperty;
10+
use Byscripts\StaticEntity\Tests\Fixtures\NotExtends;
1011

11-
class StaticEntityTest extends \PHPUnit_Framework_TestCase
12+
class StaticEntityDirectTest extends \PHPUnit_Framework_TestCase
1213
{
1314
public function testInstance()
1415
{
1516
$civility = Civility::get('mr');
1617

1718
$this->assertInstanceOf('Byscripts\StaticEntity\Tests\Fixtures\Civility', $civility);
18-
$this->assertEquals('Monsieur', $civility->getName());
19+
$this->assertEquals('Mister', $civility->getName());
1920
$this->assertEquals('mr', $civility->getId());
20-
$this->assertEquals('M.', $civility->getShortName());
21+
$this->assertEquals('Mr', $civility->getShortName());
2122
}
2223

2324
public function testNotFound()
@@ -35,38 +36,12 @@ public function testSameInstances()
3536
$this->assertSame($civility1, $civility2);
3637
}
3738

38-
public function testAlternativeGet()
39-
{
40-
$civility = StaticEntity::get('mr', 'Byscripts\StaticEntity\Tests\Fixtures\Civility');
41-
42-
$this->assertInstanceOf('Byscripts\StaticEntity\Tests\Fixtures\Civility', $civility);
43-
}
44-
4539
public function testAlternativeSameInstance()
4640
{
4741
$civility1 = StaticEntity::get('mr', 'Byscripts\StaticEntity\Tests\Fixtures\Civility');
4842
$civility2 = Civility::get('mr');
4943

5044
$this->assertSame($civility1, $civility2);
51-
52-
}
53-
54-
/**
55-
* @expectedException \Exception
56-
* @expectedExceptionMessage not exists
57-
*/
58-
public function testNotExists()
59-
{
60-
StaticEntity::get('mr', 'Byscripts\StaticEntity\Tests\Fixtures\NotExists');
61-
}
62-
63-
/**
64-
* @expectedException \Exception
65-
* @expectedExceptionMessage must extends StaticEntity
66-
*/
67-
public function testNotExtends()
68-
{
69-
StaticEntity::get('foo', 'Byscripts\StaticEntity\Tests\Fixtures\NotExtends');
7045
}
7146

7247
/**
@@ -96,12 +71,31 @@ public function testMissingProperty()
9671
MissingProperty::get('foo');
9772
}
9873

74+
public function testExists()
75+
{
76+
$this->assertTrue(
77+
Civility::exists('mr')
78+
);
79+
80+
$this->assertFalse(
81+
Civility::exists('non-existent-id')
82+
);
83+
}
84+
85+
public function testToId()
86+
{
87+
$civility = Civility::get('mr');
88+
89+
$this->assertEquals('mr', Civility::toId($civility));
90+
$this->assertEquals('mr', Civility::toId('mr'));
91+
}
92+
9993
/**
10094
* @expectedException \Exception
101-
* @expectedExceptionMessage $class cannot be null
95+
* @expectedExceptionMessage Invalid parameter
10296
*/
103-
public function testNoClass()
97+
public function testBadToId()
10498
{
105-
StaticEntity::get('foo');
99+
Civility::toId('non-existent-id');
106100
}
107101
}

tests/StaticEntityIndirectTest.php

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
<?php
2+
3+
namespace Byscripts\StaticEntity\Tests;
4+
5+
use Byscripts\StaticEntity\StaticEntity;
6+
7+
class StaticEntityIndirectTest extends \PHPUnit_Framework_TestCase
8+
{
9+
public function testInstance()
10+
{
11+
/** @var $civility \Byscripts\StaticEntity\Tests\Fixtures\Civility */
12+
$civility = StaticEntity::get('mr', '\Byscripts\StaticEntity\Tests\Fixtures\Civility');
13+
14+
$this->assertInstanceOf('Byscripts\StaticEntity\Tests\Fixtures\Civility', $civility);
15+
$this->assertEquals('Mister', $civility->getName());
16+
$this->assertEquals('mr', $civility->getId());
17+
$this->assertEquals('Mr', $civility->getShortName());
18+
}
19+
20+
public function testNotFound()
21+
{
22+
$civility = StaticEntity::get('non-existent-id', '\Byscripts\StaticEntity\Tests\Fixtures\Civility');
23+
24+
$this->assertNull($civility);
25+
}
26+
27+
public function testSameInstances()
28+
{
29+
$civility1 = StaticEntity::get('mr', '\Byscripts\StaticEntity\Tests\Fixtures\Civility');
30+
$civility2 = StaticEntity::get('mr', '\Byscripts\StaticEntity\Tests\Fixtures\Civility');
31+
32+
$this->assertSame($civility1, $civility2);
33+
}
34+
35+
/**
36+
* @expectedException \Exception
37+
* @expectedExceptionMessage not exists
38+
*/
39+
public function testNotExists()
40+
{
41+
StaticEntity::get('mr', 'This\Class\Does\Not\Exists');
42+
}
43+
44+
/**
45+
* @expectedException \Exception
46+
* @expectedExceptionMessage must extends StaticEntity
47+
*/
48+
public function testNotExtends()
49+
{
50+
StaticEntity::get('foo', 'Byscripts\StaticEntity\Tests\Fixtures\NotExtends');
51+
}
52+
53+
/**
54+
* @expectedException \Exception
55+
* @expectedExceptionMessage must be an array
56+
*/
57+
public function testInvalidDataSet()
58+
{
59+
StaticEntity::get('foo', '\Byscripts\StaticEntity\Tests\Fixtures\InvalidDataSet');
60+
}
61+
62+
/**
63+
* @expectedException \Exception
64+
* @expectedExceptionMessage Data at index
65+
*/
66+
public function testInvalidData()
67+
{
68+
StaticEntity::get('foo', '\Byscripts\StaticEntity\Tests\Fixtures\InvalidData');
69+
}
70+
71+
/**
72+
* @expectedException \Exception
73+
* @expectedExceptionMessage not exists
74+
*/
75+
public function testMissingProperty()
76+
{
77+
StaticEntity::get('foo', '\Byscripts\StaticEntity\Tests\Fixtures\MissingProperty');
78+
}
79+
80+
/**
81+
* @expectedException \Exception
82+
* @expectedExceptionMessage $class cannot be null
83+
*/
84+
public function testNoClass()
85+
{
86+
StaticEntity::get('foo');
87+
}
88+
89+
public function testExists()
90+
{
91+
$this->assertTrue(
92+
StaticEntity::exists('mr', '\Byscripts\StaticEntity\Tests\Fixtures\Civility')
93+
);
94+
95+
$this->assertFalse(
96+
StaticEntity::exists('non-existent-id', '\Byscripts\StaticEntity\Tests\Fixtures\Civility')
97+
);
98+
}
99+
100+
public function testToId()
101+
{
102+
/** @var $civility \Byscripts\StaticEntity\Tests\Fixtures\Civility */
103+
$civility = StaticEntity::get('mr', '\Byscripts\StaticEntity\Tests\Fixtures\Civility');
104+
105+
$this->assertEquals('mr', StaticEntity::toId($civility, '\Byscripts\StaticEntity\Tests\Fixtures\Civility'));
106+
$this->assertEquals('mr', StaticEntity::toId('mr', '\Byscripts\StaticEntity\Tests\Fixtures\Civility'));
107+
}
108+
109+
/**
110+
* @expectedException \Exception
111+
* @expectedExceptionMessage Invalid parameter
112+
*/
113+
public function testBadToId()
114+
{
115+
StaticEntity::toId('non-existent-id', '\Byscripts\StaticEntity\Tests\Fixtures\Civility');
116+
}
117+
}

0 commit comments

Comments
 (0)