Skip to content

Commit 2b4c91d

Browse files
committed
Fix tests to not use mocks
1 parent aeb48bc commit 2b4c91d

File tree

4 files changed

+89
-114
lines changed

4 files changed

+89
-114
lines changed

test/MenuItem/MenuMenuItemTest.php

Lines changed: 22 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use PhpSchool\CliMenu\CliMenu;
66
use PhpSchool\CliMenu\MenuItem\MenuMenuItem;
77
use PhpSchool\CliMenu\MenuStyle;
8+
use PhpSchool\Terminal\Terminal;
89
use PHPUnit\Framework\TestCase;
910

1011
/**
@@ -51,33 +52,29 @@ public function testGetText() : void
5152

5253
public function testGetRows() : void
5354
{
54-
$menuStyle = $this->createMock(MenuStyle::class);
55+
$terminal = $this->createMock(Terminal::class);
56+
$terminal->expects($this->any())->method('getWidth')->willReturn(100);
5557

56-
$menuStyle
57-
->expects($this->any())
58-
->method('getContentWidth')
59-
->will($this->returnValue(10));
58+
$menuStyle = new MenuStyle($terminal);
59+
$menuStyle->setPaddingLeftRight(0);
60+
$menuStyle->setWidth(10);
61+
$menuStyle->setUnselectedMarker('* ');
6062

6163
$subMenu = $this->createMock(CliMenu::class);
6264

6365
$item = new MenuMenuItem('Item', $subMenu);
64-
$this->assertEquals([' Item'], $item->getRows($menuStyle));
66+
$this->assertEquals(['* Item'], $item->getRows($menuStyle));
6567
}
6668

6769
public function testGetRowsWithUnSelectedMarker() : void
6870
{
69-
$menuStyle = $this->createMock(MenuStyle::class);
71+
$terminal = $this->createMock(Terminal::class);
72+
$terminal->expects($this->any())->method('getWidth')->willReturn(100);
7073

71-
$menuStyle
72-
->expects($this->any())
73-
->method('getContentWidth')
74-
->will($this->returnValue(10));
75-
76-
$menuStyle
77-
->expects($this->exactly(2))
78-
->method('getMarker')
79-
->with(false)
80-
->will($this->returnValue('* '));
74+
$menuStyle = new MenuStyle($terminal);
75+
$menuStyle->setPaddingLeftRight(0);
76+
$menuStyle->setWidth(10);
77+
$menuStyle->setUnselectedMarker('* ');
8178

8279
$subMenu = $this->createMock(CliMenu::class);
8380

@@ -112,20 +109,21 @@ public function testGetRowsWithSelectedMarker() : void
112109

113110
public function testGetRowsWithMultipleLines() : void
114111
{
115-
$menuStyle = $this->createMock(MenuStyle::class);
112+
$terminal = $this->createMock(Terminal::class);
113+
$terminal->expects($this->any())->method('getWidth')->willReturn(100);
116114

117-
$menuStyle
118-
->expects($this->any())
119-
->method('getContentWidth')
120-
->will($this->returnValue(10));
115+
$menuStyle = new MenuStyle($terminal);
116+
$menuStyle->setPaddingLeftRight(0);
117+
$menuStyle->setWidth(10);
118+
$menuStyle->setUnselectedMarker('* ');
121119

122120
$subMenu = $this->createMock(CliMenu::class);
123121

124122
$item = new MenuMenuItem('LONG ITEM LINE', $subMenu);
125123
$this->assertEquals(
126124
[
127-
" LONG ITEM",
128-
" LINE",
125+
"* LONG",
126+
" ITEM LINE",
129127
],
130128
$item->getRows($menuStyle)
131129
);

test/MenuItem/SelectableItemTest.php

Lines changed: 37 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use PhpSchool\CliMenu\MenuItem\SelectableItem;
66
use PhpSchool\CliMenu\MenuStyle;
7+
use PhpSchool\Terminal\Terminal;
78
use PHPUnit\Framework\TestCase;
89

910
/**
@@ -46,35 +47,35 @@ public function testGetText() : void
4647

4748
public function testGetRows() : void
4849
{
49-
$menuStyle = $this->createMock(MenuStyle::class);
50+
$terminal = $this->createMock(Terminal::class);
51+
$terminal->expects($this->any())->method('getWidth')->willReturn(100);
5052

51-
$menuStyle
52-
->expects($this->any())
53-
->method('getContentWidth')
54-
->will($this->returnValue(10));
53+
$menuStyle = new MenuStyle($terminal);
54+
$menuStyle->setPaddingLeftRight(0);
55+
$menuStyle->setWidth(10);
5556

5657
$item = new SelectableItem('Item', function () {
5758
});
58-
$this->assertEquals([' Item'], $item->getRows($menuStyle));
59-
$this->assertEquals([' Item'], $item->getRows($menuStyle, false));
60-
$this->assertEquals([' Item'], $item->getRows($menuStyle, true));
59+
$this->assertEquals([' Item'], $item->getRows($menuStyle));
60+
$this->assertEquals([' Item'], $item->getRows($menuStyle, false));
61+
$this->assertEquals([' Item'], $item->getRows($menuStyle, true));
6162
}
6263

6364
public function testSetText() : void
6465
{
65-
$menuStyle = $this->createMock(MenuStyle::class);
66+
$terminal = $this->createMock(Terminal::class);
67+
$terminal->expects($this->any())->method('getWidth')->willReturn(100);
68+
69+
$menuStyle = new MenuStyle($terminal);
70+
$menuStyle->setPaddingLeftRight(0);
71+
$menuStyle->setWidth(10);
6672

67-
$menuStyle
68-
->expects($this->any())
69-
->method('getContentWidth')
70-
->will($this->returnValue(10));
71-
7273
$item = new SelectableItem('Item', function () {
7374
});
7475
$item->setText('New Text');
75-
$this->assertEquals([' New Text'], $item->getRows($menuStyle));
76-
$this->assertEquals([' New Text'], $item->getRows($menuStyle, false));
77-
$this->assertEquals([' New Text'], $item->getRows($menuStyle, true));
76+
$this->assertEquals([' New Text'], $item->getRows($menuStyle));
77+
$this->assertEquals([' New Text'], $item->getRows($menuStyle, false));
78+
$this->assertEquals([' New Text'], $item->getRows($menuStyle, true));
7879
}
7980

8081
public function testGetRowsWithUnSelectedMarker() : void
@@ -120,43 +121,39 @@ public function testGetRowsWithSelectedMarker() : void
120121

121122
public function testGetRowsWithItemExtra() : void
122123
{
123-
$menuStyle = $this->createMock(MenuStyle::class);
124-
125-
$menuStyle
126-
->expects($this->any())
127-
->method('getContentWidth')
128-
->will($this->returnValue(10));
124+
$terminal = $this->createMock(Terminal::class);
125+
$terminal->expects($this->any())->method('getWidth')->willReturn(100);
129126

130-
$menuStyle
131-
->expects($this->once())
132-
->method('getItemExtra')
133-
->will($this->returnValue('[EXTRA]'));
127+
$menuStyle = new MenuStyle($terminal);
128+
$menuStyle->setPaddingLeftRight(0);
129+
$menuStyle->setWidth(20);
130+
$menuStyle->setItemExtra('[EXTRA]');
131+
$menuStyle->setDisplaysExtra(true);
132+
$menuStyle->setUnselectedMarker('* ');
134133

135134
$item = new SelectableItem('Item', function () {
136135
}, true);
137-
$this->assertEquals([' Item [EXTRA]'], $item->getRows($menuStyle));
136+
$this->assertEquals(['* Item [EXTRA]'], $item->getRows($menuStyle));
138137
}
139138

140139
public function testGetRowsWithMultipleLinesWithItemExtra() : void
141140
{
142-
$menuStyle = $this->createMock(MenuStyle::class);
141+
$terminal = $this->createMock(Terminal::class);
142+
$terminal->expects($this->any())->method('getWidth')->willReturn(100);
143143

144-
$menuStyle
145-
->expects($this->any())
146-
->method('getContentWidth')
147-
->will($this->returnValue(10));
148-
149-
$menuStyle
150-
->expects($this->once())
151-
->method('getItemExtra')
152-
->will($this->returnValue('[EXTRA]'));
144+
$menuStyle = new MenuStyle($terminal);
145+
$menuStyle->setPaddingLeftRight(0);
146+
$menuStyle->setWidth(20);
147+
$menuStyle->setItemExtra('[EXTRA]');
148+
$menuStyle->setDisplaysExtra(true);
149+
$menuStyle->setUnselectedMarker('* ');
153150

154151
$item = new SelectableItem('LONG ITEM LINE', function () {
155152
}, true);
156153
$this->assertEquals(
157154
[
158-
" LONG ITEM [EXTRA]",
159-
" LINE",
155+
"* LONG ITEM [EXTRA]",
156+
" LINE",
160157
],
161158
$item->getRows($menuStyle)
162159
);

test/MenuItem/SplitItemTest.php

Lines changed: 28 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use PhpSchool\CliMenu\MenuItem\SplitItem;
1010
use PhpSchool\CliMenu\MenuItem\StaticItem;
1111
use PhpSchool\CliMenu\MenuStyle;
12+
use PhpSchool\Terminal\Terminal;
1213
use PHPUnit\Framework\TestCase;
1314

1415
/**
@@ -297,22 +298,15 @@ public function testGetRowsWithMultipleLinesWithOneItemSelected() : void
297298

298299
public function testGetRowsWithItemExtra() : void
299300
{
300-
$menuStyle = $this->createMock(MenuStyle::class);
301+
$terminal = $this->createMock(Terminal::class);
302+
$terminal->expects($this->any())->method('getWidth')->willReturn(100);
301303

302-
$menuStyle
303-
->expects($this->any())
304-
->method('getContentWidth')
305-
->will($this->returnValue(50));
306-
307-
$menuStyle
308-
->expects($this->any())
309-
->method('getItemExtra')
310-
->will($this->returnValue('[EXTRA]'));
311-
312-
$menuStyle
313-
->expects($this->any())
314-
->method('getDisplaysExtra')
315-
->willReturn(true);
304+
$menuStyle = new MenuStyle($terminal);
305+
$menuStyle->setPaddingLeftRight(0);
306+
$menuStyle->setWidth(50);
307+
$menuStyle->setItemExtra('[EXTRA]');
308+
$menuStyle->setDisplaysExtra(true);
309+
$menuStyle->setUnselectedMarker('* ');
316310

317311
$item = new SplitItem(
318312
[
@@ -323,27 +317,20 @@ public function testGetRowsWithItemExtra() : void
323317
]
324318
);
325319

326-
self::assertEquals([' Item 1 [EXTRA] Item 2 [EXTRA] '], $item->getRows($menuStyle));
320+
self::assertEquals(['* Item 1 [EXTRA] * Item 2 [EXTRA] '], $item->getRows($menuStyle));
327321
}
328322

329323
public function testGetRowsWithMultipleLinesWithItemExtra() : void
330324
{
331-
$menuStyle = $this->createMock(MenuStyle::class);
332-
333-
$menuStyle
334-
->expects($this->any())
335-
->method('getContentWidth')
336-
->will($this->returnValue(50));
325+
$terminal = $this->createMock(Terminal::class);
326+
$terminal->expects($this->any())->method('getWidth')->willReturn(100);
337327

338-
$menuStyle
339-
->expects($this->any())
340-
->method('getItemExtra')
341-
->will($this->returnValue('[EXTRA]'));
342-
343-
$menuStyle
344-
->expects($this->any())
345-
->method('getDisplaysExtra')
346-
->willReturn(true);
328+
$menuStyle = new MenuStyle($terminal);
329+
$menuStyle->setPaddingLeftRight(0);
330+
$menuStyle->setWidth(50);
331+
$menuStyle->setItemExtra(' [EXTRA] ');
332+
$menuStyle->setDisplaysExtra(true);
333+
$menuStyle->setUnselectedMarker('* ');
347334

348335
$item = new SplitItem(
349336
[
@@ -356,7 +343,7 @@ public function testGetRowsWithMultipleLinesWithItemExtra() : void
356343

357344
self::assertEquals(
358345
[
359-
' Item 1 [EXTRA] Item 2 [EXTRA] ',
346+
'* Item 1 [EXTRA] * Item 2 [EXTRA] ',
360347
'Item 1 Item 2 ',
361348
],
362349
$item->getRows($menuStyle)
@@ -365,22 +352,15 @@ public function testGetRowsWithMultipleLinesWithItemExtra() : void
365352

366353
public function testGetRowsWithMultipleLinesWithItemExtraOnOne() : void
367354
{
368-
$menuStyle = $this->createMock(MenuStyle::class);
355+
$terminal = $this->createMock(Terminal::class);
356+
$terminal->expects($this->any())->method('getWidth')->willReturn(100);
369357

370-
$menuStyle
371-
->expects($this->any())
372-
->method('getContentWidth')
373-
->will($this->returnValue(50));
374-
375-
$menuStyle
376-
->expects($this->any())
377-
->method('getItemExtra')
378-
->will($this->returnValue('[EXTRA]'));
379-
380-
$menuStyle
381-
->expects($this->any())
382-
->method('getDisplaysExtra')
383-
->willReturn(true);
358+
$menuStyle = new MenuStyle($terminal);
359+
$menuStyle->setPaddingLeftRight(0);
360+
$menuStyle->setWidth(50);
361+
$menuStyle->setItemExtra(' [EXTRA] ');
362+
$menuStyle->setDisplaysExtra(true);
363+
$menuStyle->setUnselectedMarker('* ');
384364

385365
$item = new SplitItem(
386366
[
@@ -393,7 +373,7 @@ public function testGetRowsWithMultipleLinesWithItemExtraOnOne() : void
393373

394374
self::assertEquals(
395375
[
396-
' Item 1 Item 2 [EXTRA] ',
376+
'* Item 1 * Item 2 [EXTRA] ',
397377
'Item 1 Item 2 ',
398378
],
399379
$item->getRows($menuStyle)

test/MenuStyleTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@ public function testGetterAndSetters() : void
8181

8282
self::assertSame('blue', $style->getBg());
8383
self::assertSame('white', $style->getFg());
84-
self::assertSame('', $style->getUnselectedMarker());
85-
self::assertSame('', $style->getSelectedMarker());
84+
self::assertSame(' ', $style->getUnselectedMarker());
85+
self::assertSame(' ', $style->getSelectedMarker());
8686
self::assertSame('', $style->getItemExtra());
8787
self::assertFalse($style->getDisplaysExtra());
8888
self::assertSame('=', $style->getTitleSeparator());

0 commit comments

Comments
 (0)