@@ 19-101 (lines=83) @@ | ||
16 | * @package PhpSchool\LearnYouPhpTest\Exercise |
|
17 | * @author Michael Woodward <[email protected]> |
|
18 | */ |
|
19 | class ArrayWeGoTest extends PHPUnit_Framework_TestCase |
|
20 | { |
|
21 | ||
22 | /** |
|
23 | * @var Generator |
|
24 | */ |
|
25 | private $faker; |
|
26 | ||
27 | /** |
|
28 | * @var Filesystem |
|
29 | */ |
|
30 | private $filesystem; |
|
31 | ||
32 | public function setUp() |
|
33 | { |
|
34 | $this->faker = Factory::create(); |
|
35 | $this->filesystem = new Filesystem; |
|
36 | } |
|
37 | ||
38 | ||
39 | public function testArrWeGoExercise() |
|
40 | { |
|
41 | $e = new ArrayWeGo($this->filesystem, $this->faker); |
|
42 | $this->assertEquals('Array We Go!', $e->getName()); |
|
43 | $this->assertEquals('Filter an array of file paths and map to SplFile objects', $e->getDescription()); |
|
44 | ||
45 | $this->assertInstanceOf(SolutionInterface::class, $e->getSolution()); |
|
46 | $this->assertFileExists(realpath($e->getProblem())); |
|
47 | $this->assertNull($e->tearDown()); |
|
48 | } |
|
49 | ||
50 | public function testGetArgsCreateAtLeastOneExistingFile() |
|
51 | { |
|
52 | $e = new ArrayWeGo($this->filesystem, $this->faker); |
|
53 | $args = $e->getArgs(); |
|
54 | ||
55 | $existingFiles = array_filter($args, 'file_exists'); |
|
56 | ||
57 | foreach ($existingFiles as $file) { |
|
58 | $this->assertFileExists($file); |
|
59 | } |
|
60 | ||
61 | $this->assertGreaterThanOrEqual(1, count($existingFiles)); |
|
62 | } |
|
63 | ||
64 | public function testGetArgsHasAtLeastOneNonExistingFile() |
|
65 | { |
|
66 | $e = new ArrayWeGo($this->filesystem, $this->faker); |
|
67 | $args = $e->getArgs(); |
|
68 | ||
69 | $nonExistingFiles = array_filter($args, function ($arg) { |
|
70 | return !file_exists($arg); |
|
71 | }); |
|
72 | ||
73 | foreach ($nonExistingFiles as $file) { |
|
74 | $this->assertFileNotExists($file); |
|
75 | } |
|
76 | ||
77 | $this->assertGreaterThanOrEqual(1, count($nonExistingFiles)); |
|
78 | } |
|
79 | ||
80 | public function testTearDownRemovesFile() |
|
81 | { |
|
82 | $e = new ArrayWeGo($this->filesystem, $this->faker); |
|
83 | $args = $e->getArgs(); |
|
84 | ||
85 | $existingFiles = array_filter($args, 'file_exists'); |
|
86 | ||
87 | $this->assertFileExists($existingFiles[0]); |
|
88 | ||
89 | $e->tearDown(); |
|
90 | ||
91 | $this->assertFileNotExists($existingFiles[0]); |
|
92 | } |
|
93 | ||
94 | public function testFunctionRequirements() |
|
95 | { |
|
96 | $e = new ArrayWeGo($this->filesystem, $this->faker); |
|
97 | $this->assertEquals(['array_shift', 'array_filter', 'array_map'], $e->getRequiredFunctions()); |
|
98 | $this->assertEquals(['basename'], $e->getBannedFunctions()); |
|
99 | ||
100 | } |
|
101 | } |
|
102 |
@@ 19-101 (lines=83) @@ | ||
16 | * @package PhpSchool\LearnYouPhpTest\Exercise |
|
17 | * @author Michael Woodward <[email protected]> |
|
18 | */ |
|
19 | class ExceptionalCodingTest extends PHPUnit_Framework_TestCase |
|
20 | { |
|
21 | ||
22 | /** |
|
23 | * @var Generator |
|
24 | */ |
|
25 | private $faker; |
|
26 | ||
27 | /** |
|
28 | * @var Filesystem |
|
29 | */ |
|
30 | private $filesystem; |
|
31 | ||
32 | public function setUp() |
|
33 | { |
|
34 | $this->faker = Factory::create(); |
|
35 | $this->filesystem = new Filesystem; |
|
36 | } |
|
37 | ||
38 | ||
39 | public function testArrWeGoExercise() |
|
40 | { |
|
41 | $e = new ExceptionalCoding($this->filesystem, $this->faker); |
|
42 | $this->assertEquals('Exceptional Coding', $e->getName()); |
|
43 | $this->assertEquals('Introduction to Exceptions', $e->getDescription()); |
|
44 | ||
45 | $this->assertInstanceOf(SolutionInterface::class, $e->getSolution()); |
|
46 | $this->assertFileExists(realpath($e->getProblem())); |
|
47 | $this->assertNull($e->tearDown()); |
|
48 | } |
|
49 | ||
50 | public function testGetArgsCreateAtleastOneExistingFile() |
|
51 | { |
|
52 | $e = new ExceptionalCoding($this->filesystem, $this->faker); |
|
53 | $args = $e->getArgs(); |
|
54 | ||
55 | $existingFiles = array_filter($args, 'file_exists'); |
|
56 | ||
57 | foreach ($existingFiles as $file) { |
|
58 | $this->assertFileExists($file); |
|
59 | } |
|
60 | ||
61 | $this->assertGreaterThanOrEqual(1, count($existingFiles)); |
|
62 | } |
|
63 | ||
64 | public function testGetArgsHasAtleastOneNonExistingFile() |
|
65 | { |
|
66 | $e = new ExceptionalCoding($this->filesystem, $this->faker); |
|
67 | $args = $e->getArgs(); |
|
68 | ||
69 | $nonExistingFiles = array_filter($args, function ($arg) { |
|
70 | return !file_exists($arg); |
|
71 | }); |
|
72 | ||
73 | foreach ($nonExistingFiles as $file) { |
|
74 | $this->assertFileNotExists($file); |
|
75 | } |
|
76 | ||
77 | $this->assertGreaterThanOrEqual(1, count($nonExistingFiles)); |
|
78 | } |
|
79 | ||
80 | public function testTearDownRemovesFile() |
|
81 | { |
|
82 | $e = new ExceptionalCoding($this->filesystem, $this->faker); |
|
83 | $args = $e->getArgs(); |
|
84 | ||
85 | $existingFiles = array_filter($args, 'file_exists'); |
|
86 | ||
87 | $this->assertFileExists($existingFiles[0]); |
|
88 | ||
89 | $e->tearDown(); |
|
90 | ||
91 | $this->assertFileNotExists($existingFiles[0]); |
|
92 | } |
|
93 | ||
94 | public function testFunctionRequirements() |
|
95 | { |
|
96 | $e = new ExceptionalCoding($this->filesystem, $this->faker); |
|
97 | $this->assertEquals([], $e->getRequiredFunctions()); |
|
98 | $this->assertEquals(['array_filter', 'file_exists'], $e->getBannedFunctions()); |
|
99 | ||
100 | } |
|
101 | } |
|
102 |