Skip to content

Commit 0cf5fa9

Browse files
committed
made all tests aware of the environment
1 parent 125df68 commit 0cf5fa9

9 files changed

+239
-345
lines changed

src/Contracts/FormatterInterface.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,6 @@
5959
*
6060
* @psalm-type BoltMeta = array{t_first: int, fields: list<string>}
6161
*
62-
* @psalm-type
63-
*
6462
* @template T
6563
*/
6664
interface FormatterInterface

tests/Integration/ClientIntegrationTest.php

Lines changed: 11 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -13,69 +13,32 @@
1313

1414
namespace Laudis\Neo4j\Tests\Integration;
1515

16-
use Dotenv\Dotenv;
17-
use function explode;
16+
use function count;
1817
use InvalidArgumentException;
19-
use function is_string;
20-
use Laudis\Neo4j\ClientBuilder;
21-
use Laudis\Neo4j\Common\Uri;
22-
use Laudis\Neo4j\Contracts\ClientInterface;
18+
use Laudis\Neo4j\Contracts\FormatterInterface;
2319
use Laudis\Neo4j\Contracts\TransactionInterface;
2420
use Laudis\Neo4j\Databags\Statement;
2521
use Laudis\Neo4j\Exception\Neo4jException;
2622
use Laudis\Neo4j\Formatter\BasicFormatter;
27-
use PHPUnit\Framework\TestCase;
2823

2924
/**
3025
* @psalm-import-type BasicResults from \Laudis\Neo4j\Formatter\BasicFormatter
26+
*
27+
* @extends EnvironmentAwareIntegrationTest<BasicResults>
3128
*/
32-
final class ClientIntegrationTest extends TestCase
29+
final class ClientIntegrationTest extends EnvironmentAwareIntegrationTest
3330
{
34-
/** @var ClientInterface<BasicResults> */
35-
private ClientInterface $client;
36-
37-
/**
38-
* @return non-empty-array<array-key, array{0: string}>
39-
*/
40-
public function connectionAliases(): iterable
41-
{
42-
Dotenv::createImmutable(__DIR__.'/../../')->safeLoad();
43-
$connections = $this->getConnections();
44-
45-
$tbr = [];
46-
foreach ($connections as $i => $connection) {
47-
$uri = Uri::create($connection);
48-
$tbr[] = [$uri->getScheme().'_'.$i];
49-
}
50-
51-
/** @var non-empty-array<array-key, array{0: string}> */
52-
return $tbr;
53-
}
54-
55-
protected function setUp(): void
56-
{
57-
parent::setUp();
58-
$this->client = $this->createClient();
59-
}
60-
61-
/**
62-
* @return ClientInterface<BasicResults>
63-
*/
64-
public function createClient(): ClientInterface
31+
protected function formatter(): FormatterInterface
6532
{
66-
$connections = $this->getConnections();
67-
68-
$builder = ClientBuilder::create();
69-
foreach ($connections as $i => $connection) {
70-
$uri = Uri::create($connection);
71-
$builder = $builder->withDriver($uri->getScheme().'_'.$i, $connection);
72-
}
73-
74-
return $builder->withFormatter(new BasicFormatter())->build();
33+
/** @psalm-suppress InvalidReturnStatement */
34+
return new BasicFormatter();
7535
}
7636

7737
public function testEqualEffect(): void
7838
{
39+
if (count($this->connectionAliases()) === 1) {
40+
self::markTestSkipped('Only one connection alias provided. Comparison is impossible.');
41+
}
7942
$statement = new Statement(
8043
'merge(u:User{email: $email}) on create set u.uuid=$uuid return u',
8144
['email' => '[email protected]', 'uuid' => 'cc60fd69-a92b-47f3-9674-2f27f3437d66']
@@ -285,17 +248,4 @@ public function testInvalidConnection(): void
285248

286249
$this->client->run('RETURN 1 AS x', [], 'ghqkneq;tr');
287250
}
288-
289-
/**
290-
* @return list<string>
291-
*/
292-
private function getConnections(): array
293-
{
294-
$connections = $_ENV['NEO4J_CONNECTIONS'] ?? false;
295-
if (!is_string($connections)) {
296-
return [];
297-
}
298-
299-
return explode(',', $connections);
300-
}
301251
}

tests/Integration/ClusterIntegrationTest.php

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

tests/Integration/ComplexQueryTests.php

Lines changed: 18 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -15,33 +15,25 @@
1515

1616
use Generator;
1717
use InvalidArgumentException;
18-
use Laudis\Neo4j\ClientBuilder;
19-
use Laudis\Neo4j\Contracts\ClientInterface;
18+
use Laudis\Neo4j\Contracts\FormatterInterface;
2019
use Laudis\Neo4j\Formatter\BasicFormatter;
2120
use Laudis\Neo4j\ParameterHelper;
22-
use PHPUnit\Framework\TestCase;
2321

2422
/**
2523
* @psalm-import-type BasicResults from \Laudis\Neo4j\Formatter\BasicFormatter
24+
*
25+
* @extends EnvironmentAwareIntegrationTest<BasicResults>
2626
*/
27-
final class ComplexQueryTests extends TestCase
27+
final class ComplexQueryTests extends EnvironmentAwareIntegrationTest
2828
{
29-
/** @var ClientInterface<BasicResults> */
30-
private ClientInterface $client;
31-
32-
protected function setUp(): void
29+
protected function formatter(): FormatterInterface
3330
{
34-
parent::setUp();
35-
$this->client = ClientBuilder::create()
36-
->withDriver('bolt', 'bolt://neo4j:test@neo4j')
37-
->withDriver('http', 'http://neo4j:test@neo4j')
38-
->withDriver('cluster', 'neo4j://neo4j:test@core1')
39-
->withFormatter(new BasicFormatter())
40-
->build();
31+
/** @psalm-suppress InvalidReturnStatement */
32+
return new BasicFormatter();
4133
}
4234

4335
/**
44-
* @dataProvider transactionProvider
36+
* @dataProvider connectionAliases
4537
*/
4638
public function testListParameterHelper(string $alias): void
4739
{
@@ -52,7 +44,7 @@ public function testListParameterHelper(string $alias): void
5244
}
5345

5446
/**
55-
* @dataProvider transactionProvider
47+
* @dataProvider connectionAliases
5648
*/
5749
public function testValidListParameterHelper(string $alias): void
5850
{
@@ -64,7 +56,7 @@ public function testValidListParameterHelper(string $alias): void
6456
}
6557

6658
/**
67-
* @dataProvider transactionProvider
59+
* @dataProvider connectionAliases
6860
*/
6961
public function testValidMapParameterHelper(string $alias): void
7062
{
@@ -76,7 +68,7 @@ public function testValidMapParameterHelper(string $alias): void
7668
}
7769

7870
/**
79-
* @dataProvider transactionProvider
71+
* @dataProvider connectionAliases
8072
*/
8173
public function testArrayParameterHelper(string $alias): void
8274
{
@@ -89,7 +81,7 @@ public function testArrayParameterHelper(string $alias): void
8981
}
9082

9183
/**
92-
* @dataProvider transactionProvider
84+
* @dataProvider connectionAliases
9385
*/
9486
public function testInvalidParameter(string $alias): void
9587
{
@@ -109,7 +101,7 @@ private static function generate(): Generator
109101
}
110102

111103
/**
112-
* @dataProvider transactionProvider
104+
* @dataProvider connectionAliases
113105
*/
114106
public function testInvalidParameters(string $alias): void
115107
{
@@ -124,7 +116,7 @@ public function testInvalidParameters(string $alias): void
124116
}
125117

126118
/**
127-
* @dataProvider transactionProvider
119+
* @dataProvider connectionAliases
128120
*/
129121
public function testCreationAndResult(string $alias): void
130122
{
@@ -138,7 +130,7 @@ public function testCreationAndResult(string $alias): void
138130
}
139131

140132
/**
141-
* @dataProvider transactionProvider
133+
* @dataProvider connectionAliases
142134
*/
143135
public function testPath(string $alias): void
144136
{
@@ -159,7 +151,7 @@ public function testPath(string $alias): void
159151
}
160152

161153
/**
162-
* @dataProvider transactionProvider
154+
* @dataProvider connectionAliases
163155
*/
164156
public function testNullListAndMap(string $alias): void
165157
{
@@ -177,7 +169,7 @@ public function testNullListAndMap(string $alias): void
177169
}
178170

179171
/**
180-
* @dataProvider transactionProvider
172+
* @dataProvider connectionAliases
181173
*/
182174
public function testListAndMapInput(string $alias): void
183175
{
@@ -198,7 +190,7 @@ public function testListAndMapInput(string $alias): void
198190
}
199191

200192
/**
201-
* @dataProvider transactionProvider
193+
* @dataProvider connectionAliases
202194
*/
203195
public function testPathReturnType(string $alias): void
204196
{
@@ -226,16 +218,4 @@ public function testPathReturnType(string $alias): void
226218
['x' => 'z'],
227219
], $result->get('p'));
228220
}
229-
230-
/**
231-
* @return array<int, array<int, string>>
232-
*/
233-
public function transactionProvider(): array
234-
{
235-
return [
236-
['http'],
237-
['bolt'],
238-
['cluster'],
239-
];
240-
}
241221
}

tests/Integration/ConsistencyTest.php

Lines changed: 9 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -13,33 +13,25 @@
1313

1414
namespace Laudis\Neo4j\Tests\Integration;
1515

16-
use Laudis\Neo4j\ClientBuilder;
17-
use Laudis\Neo4j\Contracts\ClientInterface;
16+
use Laudis\Neo4j\Contracts\FormatterInterface;
1817
use Laudis\Neo4j\Databags\Statement;
1918
use Laudis\Neo4j\Formatter\BasicFormatter;
20-
use PHPUnit\Framework\TestCase;
2119

2220
/**
2321
* @psalm-import-type BasicResults from \Laudis\Neo4j\Formatter\BasicFormatter
22+
*
23+
* @extends EnvironmentAwareIntegrationTest<BasicResults>
2424
*/
25-
final class ConsistencyTest extends TestCase
25+
final class ConsistencyTest extends EnvironmentAwareIntegrationTest
2626
{
27-
/** @var ClientInterface<BasicResults> */
28-
private ClientInterface $client;
29-
30-
protected function setUp(): void
27+
protected function formatter(): FormatterInterface
3128
{
32-
parent::setUp();
33-
$this->client = ClientBuilder::create()
34-
->withDriver('http', 'http://neo4j:test@neo4j')
35-
->withDriver('bolt', 'bolt://neo4j:test@neo4j')
36-
->withDriver('cluster', 'neo4j://neo4j:test@core1')
37-
->withFormatter(new BasicFormatter())
38-
->build();
29+
/** @psalm-suppress InvalidReturnStatement */
30+
return new BasicFormatter();
3931
}
4032

4133
/**
42-
* @dataProvider aliases
34+
* @dataProvider connectionAliases
4335
*/
4436
public function testConsistency(string $alias): void
4537
{
@@ -54,7 +46,7 @@ public function testConsistency(string $alias): void
5446
}
5547

5648
/**
57-
* @dataProvider aliases
49+
* @dataProvider connectionAliases
5850
*/
5951
public function testConsistencyTransaction(string $alias): void
6052
{
@@ -74,16 +66,4 @@ public function testConsistencyTransaction(string $alias): void
7466
self::assertEquals(['name' => 'bbb'], $results->get(1)->get('n'));
7567
self::assertEquals(['name' => 'ccc'], $results->last()->get('n'));
7668
}
77-
78-
/**
79-
* @return list<list<string>>
80-
*/
81-
public function aliases(): array
82-
{
83-
return [
84-
['http'],
85-
['bolt'],
86-
['cluster'],
87-
];
88-
}
8969
}

0 commit comments

Comments
 (0)