11<?php
22
3+ use Amp \Mysql \CommandResult ;
34use Amp \Mysql \DataTypes ;
45use Amp \Mysql \ResultSet ;
56use PHPUnit \Framework \TestCase ;
@@ -28,6 +29,7 @@ function testQuery() {
2829
2930 /** @var \Amp\Mysql\ResultSet $resultset */
3031 $ resultset = yield $ db ->query ("SELECT 1 AS a " );
32+ $ this ->assertInstanceOf (ResultSet::class, $ resultset );
3133
3234 for ($ i = 0 ; yield $ resultset ->advance (); ++$ i ) {
3335 $ this ->assertEquals (["a " => 1 ], $ resultset ->getCurrent ());
@@ -48,6 +50,7 @@ function testQueryFetchRow() {
4850
4951 /** @var \Amp\Mysql\ResultSet $resultset */
5052 $ resultset = yield $ db ->query ('SELECT a FROM tmp ' );
53+ $ this ->assertInstanceOf (ResultSet::class, $ resultset );
5154
5255 $ got = [];
5356 while (yield $ resultset ->advance (ResultSet::FETCH_ARRAY )) {
@@ -71,7 +74,7 @@ function testMultiStmt() {
7174
7275 /** @var \Amp\Mysql\ResultSet $resultset */
7376 $ resultset = yield $ db ->query ("INSERT INTO tmp VALUES (5, 6), (8, 9); SELECT a FROM tmp; SELECT b FROM tmp WHERE a = 5; SELECT b AS d, a + 1 AS c FROM tmp WHERE b < 7 " );
74-
77+ $ this -> assertInstanceOf (ResultSet::class, $ resultset );
7578
7679 $ got = [];
7780 while (yield $ resultset ->advance (ResultSet::FETCH_ARRAY )) {
@@ -119,6 +122,7 @@ function testPrepared() {
119122 $ this ->assertEquals (yield $ stmt ->getFields (), [$ base + ["name " => "a " , "original_name " => "a " ], $ base + ["name " => "b " , "original_name " => "b " ]]);
120123 $ stmt ->bind ("num " , 9 );
121124 $ result = yield $ stmt ->execute (5 );
125+ $ this ->assertInstanceOf (ResultSet::class, $ result );
122126 $ got = [];
123127 while (yield $ result ->advance (ResultSet::FETCH_ARRAY )) {
124128 $ got [] = $ result ->getCurrent ();
@@ -128,6 +132,7 @@ function testPrepared() {
128132 /** @var \Amp\Mysql\Statement $stmt */
129133 $ stmt = yield $ db ->prepare ("SELECT * FROM tmp WHERE a = ? OR b = ? " );
130134 $ result = yield $ stmt ->execute (5 , 8 );
135+ $ this ->assertInstanceOf (ResultSet::class, $ result );
131136 $ got = [];
132137 while (yield $ result ->advance (ResultSet::FETCH_ARRAY )) {
133138 $ got [] = $ result ->getCurrent ();
@@ -138,6 +143,7 @@ function testPrepared() {
138143 $ stmt = yield $ db ->prepare ("SELECT * FROM tmp WHERE a = :a OR b = ? " );
139144 $ stmt ->bind ("a " , 5 );
140145 $ result = yield $ stmt ->execute (9 );
146+ $ this ->assertInstanceOf (ResultSet::class, $ result );
141147 $ got = [];
142148 while (yield $ result ->advance (ResultSet::FETCH_ARRAY )) {
143149 $ got [] = $ result ->getCurrent ();
@@ -149,6 +155,32 @@ function testPrepared() {
149155 $ stmt ->bind ("bar " , 9 );
150156 /** @var \Amp\Mysql\CommandResult $result */
151157 $ result = yield $ stmt ->execute ();
158+ $ this ->assertInstanceOf (CommandResult::class, $ result );
159+ $ this ->assertSame (1 , $ result ->affectedRows ());
160+ });
161+ }
162+
163+ function testExecute () {
164+ \Amp \Loop::run (function () {
165+ /** @var \Amp\Mysql\Connection $db */
166+ $ db = yield connect ("host= " .DB_HOST .";user= " .DB_USER .";pass= " .DB_PASS .";db=connectiontest " );
167+
168+ $ db ->query ("CREATE TEMPORARY TABLE tmp SELECT 1 AS a, 2 AS b " );
169+ $ db ->query ("INSERT INTO tmp VALUES (5, 6), (8, 9), (10, 11), (12, 13) " );
170+
171+ /** @var \Amp\Mysql\ResultSet $result */
172+ $ result = yield $ db ->execute ("SELECT * FROM tmp WHERE a = ? OR b = ? " , 5 , 9 );
173+ $ this ->assertInstanceOf (ResultSet::class, $ result );
174+ $ got = [];
175+ while (yield $ result ->advance (ResultSet::FETCH_ARRAY )) {
176+ $ got [] = $ result ->getCurrent ();
177+ }
178+ $ this ->assertCount (2 , $ got );
179+ $ this ->assertSame ([[5 , 6 ], [8 , 9 ]], $ got );
180+
181+ /** @var \Amp\Mysql\CommandResult $result */
182+ $ result = yield $ db ->execute ("INSERT INTO tmp VALUES (?, ?) " , 14 , 15 );
183+ $ this ->assertInstanceOf (CommandResult::class, $ result );
152184 $ this ->assertSame (1 , $ result ->affectedRows ());
153185 });
154186 }
0 commit comments