RepeatCommandTest::test_it_runs_interatively()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 12
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 8
c 0
b 0
f 0
nc 1
nop 0
dl 0
loc 12
rs 10
1
<?php namespace Tarsana\Command\Examples\Tests;
2
3
use Tarsana\Command\Examples\RepeatCommand;
4
use Tarsana\Tester\CommandTestCase;
5
6
7
class RepeatCommandTest extends CommandTestCase {
8
9
    public function test_it_repeats_word_three_times()
10
    {
11
        $this->command(new RepeatCommand, ['foo'])
12
             ->argsEqual((object) [
13
                'word' => 'foo',
14
                'count' => 3
15
             ])
16
             ->optionsEqual([
17
                '--upper' => false
18
             ])
19
             ->printsExactly("foofoofoo<br>");
20
    }
21
22
    public function test_it_repeats_word_n_times()
23
    {
24
        $this->command(new RepeatCommand, ['bar', '5'])
25
             ->argsEqual((object) [
26
                'word' => 'bar',
27
                'count' => 5
28
             ])
29
             ->optionsEqual([
30
                '--upper' => false
31
             ])
32
             ->printsExactly("barbarbarbarbar<br>");
33
    }
34
35
    public function test_it_repeats_word_n_times_uppercase()
36
    {
37
        $this->command(new RepeatCommand, ['bar', '5', '--upper'])
38
             ->argsEqual((object) [
39
               'word' => 'bar',
40
               'count' => 5
41
             ])
42
             ->optionsEqual([
43
               '--upper' => true
44
             ])
45
             ->printsExactly("BARBARBARBARBAR<br>");
46
    }
47
48
    public function test_it_runs_interatively()
49
    {
50
        $this->withStdin("Yo\n\n\n")
51
             ->command(new RepeatCommand, ['-i'])
52
             ->argsEqual((object) [
53
               'word' => 'Yo',
54
               'count' => 3
55
             ])
56
             ->optionsEqual([
57
               '--upper' => false
58
             ])
59
             ->prints("YoYoYo<br>");
60
    }
61
62
}
63