1 | <?php |
||
20 | class BottyCommandTest extends BaseCommandTestCase |
||
21 | { |
||
22 | /** |
||
23 | * Data provider. |
||
24 | * |
||
25 | * @return array |
||
26 | */ |
||
27 | public function testDataProvider() |
||
28 | { |
||
29 | $username = '<@U54321>'; |
||
30 | |||
31 | return [ |
||
32 | 'daddy' => ['daddy', 'My daddy is Frank Nägler aka <@neoblack>'], |
||
33 | 'n8' => ['n8', 'Good night ' . $username . '! :sleeping:'], |
||
34 | 'nacht' => ['nacht', 'Good night ' . $username . '! :sleeping:'], |
||
35 | 'night' => ['night', 'Good night ' . $username . '! :sleeping:'], |
||
36 | 'hello' => ['hello', 'Hello ' . $username . ', nice to see you!'], |
||
37 | 'hallo' => ['hallo', 'Hello ' . $username . ', nice to see you!'], |
||
38 | 'ciao' => ['ciao', 'Bye, bye ' . $username . ', cu later alligator! :wave:'], |
||
39 | 'cu' => ['cu', 'Bye, bye ' . $username . ', cu later alligator! :wave:'], |
||
40 | 'thx' => ['thx', 'You are welcome ' . $username . '!'], |
||
41 | 'thank' => ['thank', 'You are welcome ' . $username . '!'], |
||
42 | 'drink' => ['drink', 'Coffee or beer ' . $username . '?'], |
||
43 | 'coffee' => ['coffee', 'Here is a :coffee: for you ' . $username . '!'], |
||
44 | 'beer' => ['beer', 'Here is a :t3beer: for you ' . $username . '!'], |
||
45 | 'coke' => ['coke', 'Coke is unhealthy ' . $username . '!'], |
||
46 | 'cola' => ['cola', 'Coke is unhealthy ' . $username . '!'], |
||
47 | 'cookie' => ['cookie', 'Here is a :cookie: for you ' . $username . '!'], |
||
48 | 'typo3' => ['typo3', ':typo3: TYPO3 CMS is the best open source CMS of the world!'], |
||
49 | 'dark' => ['dark', 'sure, we have cookies :cookie:'], |
||
50 | //'cat' => ['cat', 'ok, here is some cat content '.$cats[array_rand($cats)]], |
||
51 | 'love' => ['love', 'I love you too, ' . $username . ':kiss:'], |
||
52 | 'no-matching' => ['foobar', null], |
||
53 | ]; |
||
54 | } |
||
55 | |||
56 | /** |
||
57 | * @test |
||
58 | * @dataProvider testDataProvider |
||
59 | * |
||
60 | * @param string $keyword |
||
61 | * @param string $response |
||
62 | */ |
||
63 | public function processShowReturnsCorrectResponseForKnownKeywords($keyword, $response) |
||
64 | { |
||
65 | $this->initCommandWithPayload(BottyCommand::class, [ |
||
66 | 'user' => 'U54321', |
||
67 | 'text' => 'botty ' . $keyword, |
||
68 | ]); |
||
69 | $result = $this->command->process(); |
||
70 | if ($response === null) { |
||
71 | static::assertNull($response); |
||
72 | } else { |
||
73 | static::assertStringStartsWith($response, $result); |
||
74 | } |
||
75 | } |
||
76 | |||
77 | /** |
||
78 | * @test |
||
79 | * @dataProvider testDataProvider |
||
80 | */ |
||
81 | public function processShowReturnsCorrectResponseForHelpKeyword() |
||
82 | { |
||
83 | $this->initCommandWithPayload(BottyCommand::class, [ |
||
84 | 'user' => 'U54321', |
||
85 | 'text' => 'botty help', |
||
86 | ]); |
||
87 | $result = $this->command->process(); |
||
88 | static::assertEquals(':link: <http://www.t3bot.de|My Homepage> | ' |
||
89 | . ':link: <https://github.com/NeoBlack/T3Bot|Github> | ' |
||
90 | . ':link: <http://wiki.typo3.org/T3Bot|Help for Commands>', $result); |
||
91 | } |
||
92 | } |
||
93 |