@@ -46,8 +46,56 @@ public function testMockFromProperty(): void
46
46
self ::assertSame ('foo ' , $ this ->fooMock ->doFoo ());
47
47
}
48
48
49
+ public function testMockInterface (): void
50
+ {
51
+ $ interfaceMock = \Mockery::mock (Baz::class, Buzz::class);
52
+ $ this ->requireBaz ($ interfaceMock );
53
+ $ this ->requireBuzz ($ interfaceMock );
54
+
55
+ $ interfaceMock ->shouldReceive ('doFoo ' )->andReturn ('bar ' );
56
+ self ::assertSame ('bar ' , $ interfaceMock ->doFoo ());
57
+ }
58
+
59
+ public function testMockFooWithInterfaces (): void
60
+ {
61
+ $ fooMock = \Mockery::mock (Foo::class, Baz::class . ', ' . Buzz::class);
62
+ $ this ->requireFoo ($ fooMock );
63
+ $ this ->requireBaz ($ fooMock );
64
+ $ this ->requireBuzz ($ fooMock );
65
+
66
+ $ fooMock ->shouldReceive ('doFoo ' )->andReturn ('bar ' );
67
+ self ::assertSame ('bar ' , $ fooMock ->doFoo ());
68
+ }
69
+
70
+ public function testMockWithConstructorArgs (): void
71
+ {
72
+ $ fooMock = \Mockery::mock (Foo::class, [true ]);
73
+ $ this ->requireFoo ($ fooMock );
74
+
75
+ $ fooMock ->shouldReceive ('doFoo ' )->andReturn ('bar ' );
76
+ self ::assertSame ('bar ' , $ fooMock ->doFoo ());
77
+ }
78
+
79
+ public function testMockWithInterfaceAndConstructorArgs (): void
80
+ {
81
+ $ fooMock = \Mockery::mock (Foo::class, Buzz::class, [true ]);
82
+ $ this ->requireFoo ($ fooMock );
83
+ $ this ->requireBuzz ($ fooMock );
84
+
85
+ $ fooMock ->shouldReceive ('doFoo ' )->andReturn ('bar ' );
86
+ self ::assertSame ('bar ' , $ fooMock ->doFoo ());
87
+ }
88
+
49
89
private function requireFoo (Foo $ foo ): void
50
90
{
51
91
}
52
92
93
+ private function requireBaz (Baz $ baz ): void
94
+ {
95
+ }
96
+
97
+ private function requireBuzz (Buzz $ buzz ): void
98
+ {
99
+ }
100
+
53
101
}
0 commit comments