55use PHPUnit \Framework \MockObject \MockBuilder ;
66use PHPUnit \Framework \TestCase ;
77use Tests \Mapping \Hydration \Car ;
8+ use Tests \Mapping \Hydration \Engine ;
89use Zend \Db \Adapter \Adapter ;
910use Zend \Db \Adapter \Driver \DriverInterface ;
11+ use Zend \Db \Adapter \Driver \Mysqli \Connection ;
12+ use Zend \Db \Adapter \Driver \Mysqli \Result ;
1013use Zend \Db \Adapter \ParameterContainer ;
1114use Zend \Db \Adapter \StatementContainerInterface ;
1215use Zend \Db \Sql \Select ;
@@ -65,6 +68,7 @@ public function execute()
6568 }
6669}
6770
71+
6872/**
6973 * DynamicTableGatewayTest
7074 *
@@ -102,4 +106,102 @@ public function testSelect()
102106
103107 $ this ->assertNotNull ($ select );
104108 }
109+
110+ /**
111+ * @throws \Zend\Cache\Exception\ExceptionInterface
112+ * @throws \Zend\EntityMapper\Config\Container\Exceptions\ItemNotFoundException
113+ */
114+ public function testInsert ()
115+ {
116+ $ lastInsertId = 19950405 ;
117+
118+ $ connection = (new MockBuilder ($ this , Connection::class))->getMock ();
119+ $ connection ->method ('getLastGeneratedValue ' )->willReturn ($ lastInsertId );
120+
121+ $ result = (new MockBuilder ($ this , Result::class))->getMock ();
122+ $ result ->method ('getAffectedRows ' )->willReturn (1 );
123+
124+ $ statementContainer = (new MockBuilder ($ this , StatementContainer::class))->getMock ();
125+ $ statementContainer ->method ('execute ' )->willReturn ($ result );
126+
127+ $ driver = (new MockBuilder ($ this , DriverInterface::class))->disableOriginalConstructor ()->getMock ();
128+ $ driver ->method ('createStatement ' )->willReturn ($ statementContainer );
129+ $ driver ->method ('getConnection ' )->willReturn ($ connection );
130+
131+ $ adapter = new Adapter ($ driver );
132+
133+ $ engine = new Engine ();
134+ $ engine ->cm3 = 3 ;
135+ $ engine ->pistons = 6 ;
136+ $ engine ->horsepower = 300 ;
137+
138+ $ dynamicTableGateway = new DynamicTableGateway ($ adapter );
139+ $ dynamicTableGateway ->insert ($ engine );
140+
141+ $ this ->assertEquals ($ lastInsertId , $ engine ->id );
142+ }
143+
144+ /**
145+ * @throws \Zend\Cache\Exception\ExceptionInterface
146+ */
147+ public function testUpdate ()
148+ {
149+ $ lastInsertId = 19950405 ;
150+
151+ $ connection = (new MockBuilder ($ this , Connection::class))->getMock ();
152+ $ connection ->method ('getLastGeneratedValue ' )->willReturn ($ lastInsertId );
153+
154+ $ result = (new MockBuilder ($ this , Result::class))->getMock ();
155+ $ result ->method ('getAffectedRows ' )->willReturn (1 );
156+
157+ $ statementContainer = (new MockBuilder ($ this , StatementContainer::class))->getMock ();
158+ $ statementContainer ->method ('execute ' )->willReturn ($ result );
159+
160+ $ driver = (new MockBuilder ($ this , DriverInterface::class))->disableOriginalConstructor ()->getMock ();
161+ $ driver ->method ('createStatement ' )->willReturn ($ statementContainer );
162+ $ driver ->method ('getConnection ' )->willReturn ($ connection );
163+
164+ $ adapter = new Adapter ($ driver );
165+
166+ $ engine = new Engine ();
167+ $ engine ->id = 1 ;
168+ $ engine ->cm3 = 3 ;
169+ $ engine ->pistons = 6 ;
170+ $ engine ->horsepower = 300 ;
171+
172+ $ dynamicTableGateway = new DynamicTableGateway ($ adapter );
173+ $ dynamicTableGateway ->update ($ engine );
174+ }
175+
176+ /**
177+ * @throws \Zend\Cache\Exception\ExceptionInterface
178+ */
179+ public function testDelete ()
180+ {
181+ $ lastInsertId = 19950405 ;
182+
183+ $ connection = (new MockBuilder ($ this , Connection::class))->getMock ();
184+ $ connection ->method ('getLastGeneratedValue ' )->willReturn ($ lastInsertId );
185+
186+ $ result = (new MockBuilder ($ this , Result::class))->getMock ();
187+ $ result ->method ('getAffectedRows ' )->willReturn (1 );
188+
189+ $ statementContainer = (new MockBuilder ($ this , StatementContainer::class))->getMock ();
190+ $ statementContainer ->method ('execute ' )->willReturn ($ result );
191+
192+ $ driver = (new MockBuilder ($ this , DriverInterface::class))->disableOriginalConstructor ()->getMock ();
193+ $ driver ->method ('createStatement ' )->willReturn ($ statementContainer );
194+ $ driver ->method ('getConnection ' )->willReturn ($ connection );
195+
196+ $ adapter = new Adapter ($ driver );
197+
198+ $ engine = new Engine ();
199+ $ engine ->id = 1 ;
200+ $ engine ->cm3 = 3 ;
201+ $ engine ->pistons = 6 ;
202+ $ engine ->horsepower = 300 ;
203+
204+ $ dynamicTableGateway = new DynamicTableGateway ($ adapter );
205+ $ dynamicTableGateway ->delete ($ engine );
206+ }
105207}
0 commit comments