Skip to content

Commit 70ed3aa

Browse files
authored
Merge pull request #143 from simon-mundy/test/adapter-coverage-100
Achieve 100% test coverage for Adapter/* classes
2 parents 865a19c + 984631b commit 70ed3aa

13 files changed

Lines changed: 204 additions & 231 deletions

File tree

‎phpunit.xml.dist‎

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,6 @@
1818
<testsuites>
1919
<testsuite name="unit test">
2020
<directory>./test/unit</directory>
21-
<exclude>./test/unit/Adapter/AdapterServiceFactoryTest.php</exclude>
22-
<exclude>./test/unit/Adapter/Driver/Pdo/ConnectionIntegrationTest.php</exclude>
23-
<exclude>./test/unit/Adapter/Driver/Pdo/StatementIntegrationTest.php</exclude>
24-
<exclude>./test/unit/Adapter/AdapterAwareTraitTest.php</exclude>
2521
</testsuite>
2622
<testsuite name="integration test">
2723
<directory>./test/integration</directory>

‎src/Adapter/Driver/Pdo/Statement.php‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,8 +157,8 @@ public function execute(null|array|ParameterContainer $parameters = null): ?Resu
157157

158158
/** START Standard ParameterContainer Merging Block */
159159
if ($parameters instanceof ParameterContainer) {
160-
$this->parameterContainer = $parameters;
161-
$parameters = null;
160+
$this->parameterContainer = $parameters;
161+
$parameters = null;
162162
}
163163

164164
if (is_array($parameters)) {

‎test/integration/Adapter/Driver/Pdo/AbstractAdapterTestCase.php‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
use function getmypid;
1010
use function shell_exec;
1111

12-
#[CoversMethod(AdapterInterface::class, '__construct()')]
12+
#[CoversMethod(AdapterInterface::class, 'getDriver')]
13+
#[CoversMethod(AdapterInterface::class, 'getPlatform')]
1314
abstract class AbstractAdapterTestCase extends TestCase
1415
{
1516
use AdapterTrait;

‎test/unit/Adapter/Container/AdapterInterfaceDelegatorTest.php‎

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -217,46 +217,6 @@ public function testDelegatorWithServiceManagerAndCustomAdapterName(): void
217217
);
218218
}
219219

220-
public function testSetStateWithDefaultAdapterName(): void
221-
{
222-
$delegator = AdapterInterfaceDelegator::__set_state([]);
223-
224-
self::assertInstanceOf(AdapterInterfaceDelegator::class, $delegator);
225-
}
226-
227-
public function testSetStateWithCustomAdapterName(): void
228-
{
229-
$delegator = AdapterInterfaceDelegator::__set_state(['adapterName' => 'custom']);
230-
231-
self::assertInstanceOf(AdapterInterfaceDelegator::class, $delegator);
232-
}
233-
234-
public function testInvokeReturnsInstanceWhenAdapterIsNotAdapterInterface(): void
235-
{
236-
$container = $this->createMock(ContainerInterface::class);
237-
$container
238-
->expects(self::once())
239-
->method('has')
240-
->with(AdapterInterface::class)
241-
->willReturn(true);
242-
$container
243-
->expects(self::once())
244-
->method('get')
245-
->with(AdapterInterface::class)
246-
->willReturn(new stdClass());
247-
248-
$callback = static fn(): ConcreteAdapterAwareObject => new ConcreteAdapterAwareObject();
249-
250-
$result = (new AdapterInterfaceDelegator())(
251-
$container,
252-
ConcreteAdapterAwareObject::class,
253-
$callback
254-
);
255-
256-
self::assertInstanceOf(ConcreteAdapterAwareObject::class, $result);
257-
self::assertNull($result->getAdapter());
258-
}
259-
260220
public function testDelegatorWithPluginManager(): void
261221
{
262222
$databaseAdapter = new Adapter(
@@ -305,4 +265,44 @@ public function validate(mixed $instance): void
305265
);
306266
$this->assertSame($options, $result->getOptions());
307267
}
268+
269+
public function testSetStateWithDefaultAdapterName(): void
270+
{
271+
$delegator = AdapterInterfaceDelegator::__set_state([]);
272+
273+
self::assertInstanceOf(AdapterInterfaceDelegator::class, $delegator);
274+
}
275+
276+
public function testSetStateWithCustomAdapterName(): void
277+
{
278+
$delegator = AdapterInterfaceDelegator::__set_state(['adapterName' => 'custom']);
279+
280+
self::assertInstanceOf(AdapterInterfaceDelegator::class, $delegator);
281+
}
282+
283+
public function testInvokeReturnsInstanceWhenAdapterIsNotAdapterInterface(): void
284+
{
285+
$container = $this->createMock(ContainerInterface::class);
286+
$container
287+
->expects(self::once())
288+
->method('has')
289+
->with(AdapterInterface::class)
290+
->willReturn(true);
291+
$container
292+
->expects(self::once())
293+
->method('get')
294+
->with(AdapterInterface::class)
295+
->willReturn(new stdClass());
296+
297+
$callback = static fn(): ConcreteAdapterAwareObject => new ConcreteAdapterAwareObject();
298+
299+
$result = (new AdapterInterfaceDelegator())(
300+
$container,
301+
ConcreteAdapterAwareObject::class,
302+
$callback
303+
);
304+
305+
self::assertInstanceOf(ConcreteAdapterAwareObject::class, $result);
306+
self::assertNull($result->getAdapter());
307+
}
308308
}

‎test/unit/Adapter/Driver/AbstractConnectionTest.php‎

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@
66

77
use PhpDb\Adapter\Driver\AbstractConnection;
88
use PhpDb\Adapter\Profiler\ProfilerInterface;
9-
use PhpDbTest\TestAsset\ConnectionWrapper;
10-
use PhpDbTest\TestAsset\PdoStubDriver;
9+
use PhpDbTest\Adapter\Driver\TestAsset\TestConnection;
1110
use PHPUnit\Framework\Attributes\CoversMethod;
1211
use PHPUnit\Framework\Attributes\Group;
1312
use PHPUnit\Framework\TestCase;
@@ -25,7 +24,8 @@ final class AbstractConnectionTest extends TestCase
2524
{
2625
public function testDisconnectNullsResourceWhenConnected(): void
2726
{
28-
$connection = new ConnectionWrapper(new PdoStubDriver());
27+
$connection = new TestConnection();
28+
$connection->connect();
2929

3030
self::assertTrue($connection->isConnected());
3131

@@ -36,8 +36,7 @@ public function testDisconnectNullsResourceWhenConnected(): void
3636

3737
public function testDisconnectIsNoOpWhenNotConnected(): void
3838
{
39-
$connection = new ConnectionWrapper();
40-
$connection->disconnect();
39+
$connection = new TestConnection();
4140

4241
$result = $connection->disconnect();
4342

@@ -46,28 +45,35 @@ public function testDisconnectIsNoOpWhenNotConnected(): void
4645

4746
public function testGetConnectionParametersReturnsEmptyByDefault(): void
4847
{
49-
$connection = new ConnectionWrapper();
48+
$connection = new TestConnection();
5049

5150
self::assertSame([], $connection->getConnectionParameters());
5251
}
5352

54-
public function testGetDriverNameReturnsDriverAttribute(): void
53+
public function testGetDriverNameReturnsValueWhenSet(): void
5554
{
56-
$connection = new ConnectionWrapper(new PdoStubDriver());
55+
$connection = new TestConnection('sqlite');
5756

5857
self::assertSame('sqlite', $connection->getDriverName());
5958
}
6059

60+
public function testGetDriverNameReturnsNullByDefault(): void
61+
{
62+
$connection = new TestConnection();
63+
64+
self::assertNull($connection->getDriverName());
65+
}
66+
6167
public function testGetProfilerReturnsNullByDefault(): void
6268
{
63-
$connection = new ConnectionWrapper();
69+
$connection = new TestConnection();
6470

6571
self::assertNull($connection->getProfiler());
6672
}
6773

6874
public function testSetProfilerStoresAndReturnsProfiler(): void
6975
{
70-
$connection = new ConnectionWrapper();
76+
$connection = new TestConnection();
7177
$profiler = $this->createMock(ProfilerInterface::class);
7278

7379
$result = $connection->setProfiler($profiler);
@@ -78,16 +84,19 @@ public function testSetProfilerStoresAndReturnsProfiler(): void
7884

7985
public function testGetResourceAutoConnectsWhenNotConnected(): void
8086
{
81-
$connection = new ConnectionWrapper();
87+
$connection = new TestConnection();
88+
89+
self::assertFalse($connection->isConnected());
8290

8391
$resource = $connection->getResource();
8492

85-
self::assertNotNull($resource);
93+
self::assertTrue($connection->isConnected());
94+
self::assertSame('fake-resource', $resource);
8695
}
8796

8897
public function testSetConnectionParametersStoresAndReturnsConnection(): void
8998
{
90-
$connection = new ConnectionWrapper();
99+
$connection = new TestConnection();
91100
$params = ['host' => 'localhost', 'port' => 3306];
92101

93102
$result = $connection->setConnectionParameters($params);
@@ -98,7 +107,7 @@ public function testSetConnectionParametersStoresAndReturnsConnection(): void
98107

99108
public function testInTransactionReturnsFalseByDefault(): void
100109
{
101-
$connection = new ConnectionWrapper();
110+
$connection = new TestConnection();
102111

103112
self::assertFalse($connection->inTransaction());
104113
}

‎test/unit/Adapter/Driver/Pdo/ConnectionIntegrationTest.php‎

Lines changed: 0 additions & 163 deletions
This file was deleted.

‎test/unit/Adapter/Driver/Pdo/ConnectionTest.php‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323

2424
#[CoversMethod(AbstractPdoConnection::class, 'getResource')]
2525
#[CoversMethod(AbstractPdoConnection::class, 'getDsn')]
26-
#[CoversMethod(AbstractPdoConnection::class, '__construct')]
2726
#[CoversMethod(AbstractPdoConnection::class, 'setDriver')]
2827
#[CoversMethod(AbstractPdoConnection::class, 'setConnectionParameters')]
2928
#[CoversMethod(AbstractPdoConnection::class, 'isConnected')]

0 commit comments

Comments
 (0)