10
10
use GuzzleHttp \Psr7 \Request ;
11
11
use GuzzleHttp \Psr7 \Utils ;
12
12
use Neo4j \QueryAPI \Neo4jRequestFactory ;
13
+ use Neo4j \QueryAPI \Objects \Authentication ;
13
14
14
15
/**
15
16
* @api
@@ -18,8 +19,8 @@ class Neo4jRequestFactoryTest extends TestCase
18
19
{
19
20
private $ psr17Factory ;
20
21
private $ streamFactory ;
21
- private string $ baseUri = ' https://6f72daa1.databases.neo4j.io ' ;
22
- private string $ authHeader = ' Basic dXNlcjpwYXNzd29yZA== ' ;
22
+ private string $ address ;
23
+ private string $ authHeader ;
23
24
24
25
/**
25
26
* @throws Exception
@@ -28,6 +29,11 @@ protected function setUp(): void
28
29
{
29
30
$ this ->psr17Factory = $ this ->createMock (RequestFactoryInterface::class);
30
31
$ this ->streamFactory = $ this ->createMock (StreamFactoryInterface::class);
32
+
33
+ $ this ->address = getenv ('NEO4J_ADDRESS ' );
34
+
35
+ $ auth = Authentication::fromEnvironment ();
36
+ $ this ->authHeader = $ auth ->getHeader ();
31
37
}
32
38
33
39
/**
@@ -39,21 +45,16 @@ public function testBuildRunQueryRequest()
39
45
$ parameters = ['param1 ' => 'value1 ' ];
40
46
$ database = 'neo4j ' ;
41
47
42
-
43
48
$ payload = json_encode ([
44
49
'statement ' => $ cypher ,
45
50
'parameters ' => $ parameters ,
46
51
'includeCounters ' => true ,
47
52
]);
48
- $ uri = "{$ this ->baseUri }/db/ {$ database }/query/v2 " ;
49
-
53
+ $ uri = "{$ this ->address }/db/ {$ database }/query/v2 " ;
50
54
51
55
$ mockRequest = new Request ('POST ' , $ uri );
52
-
53
-
54
56
$ mockStream = Utils::streamFor ($ payload );
55
57
56
-
57
58
$ this ->streamFactory ->method ('createStream ' )
58
59
->willReturn ($ mockStream );
59
60
@@ -63,7 +64,7 @@ public function testBuildRunQueryRequest()
63
64
$ factory = new Neo4jRequestFactory (
64
65
$ this ->psr17Factory ,
65
66
$ this ->streamFactory ,
66
- $ this ->baseUri ,
67
+ $ this ->address ,
67
68
$ this ->authHeader
68
69
);
69
70
$ request = $ factory ->buildRunQueryRequest ($ database , $ cypher , $ parameters );
@@ -79,7 +80,7 @@ public function testBuildRunQueryRequest()
79
80
public function testBuildBeginTransactionRequest ()
80
81
{
81
82
$ database = 'neo4j ' ;
82
- $ uri = "{$ this ->baseUri }/db/ {$ database }/query/v2/tx " ;
83
+ $ uri = "{$ this ->address }/db/ {$ database }/query/v2/tx " ;
83
84
84
85
$ mockRequest = new Request ('POST ' , $ uri );
85
86
$ mockStream = Utils::streamFor ('' );
@@ -93,9 +94,10 @@ public function testBuildBeginTransactionRequest()
93
94
$ factory = new Neo4jRequestFactory (
94
95
$ this ->psr17Factory ,
95
96
$ this ->streamFactory ,
96
- $ this ->baseUri
97
+ $ this ->address
97
98
);
98
99
$ request = $ factory ->buildBeginTransactionRequest ($ database );
100
+
99
101
$ this ->assertEquals ('POST ' , $ request ->getMethod ());
100
102
$ this ->assertEquals ($ uri , (string ) $ request ->getUri ());
101
103
}
@@ -107,7 +109,7 @@ public function testBuildCommitRequest()
107
109
{
108
110
$ database = 'neo4j ' ;
109
111
$ transactionId = '12345 ' ;
110
- $ uri = "{$ this ->baseUri }/db/ {$ database }/query/v2/tx/ {$ transactionId }/commit " ;
112
+ $ uri = "{$ this ->address }/db/ {$ database }/query/v2/tx/ {$ transactionId }/commit " ;
111
113
112
114
$ mockRequest = new Request ('POST ' , $ uri );
113
115
$ mockStream = Utils::streamFor ('' );
@@ -121,7 +123,7 @@ public function testBuildCommitRequest()
121
123
$ factory = new Neo4jRequestFactory (
122
124
$ this ->psr17Factory ,
123
125
$ this ->streamFactory ,
124
- $ this ->baseUri
126
+ $ this ->address
125
127
);
126
128
$ request = $ factory ->buildCommitRequest ($ database , $ transactionId );
127
129
@@ -136,7 +138,7 @@ public function testBuildRollbackRequest()
136
138
{
137
139
$ database = 'neo4j ' ;
138
140
$ transactionId = '12345 ' ;
139
- $ uri = "{$ this ->baseUri }/db/ {$ database }/query/v2/tx/ {$ transactionId }/rollback " ;
141
+ $ uri = "{$ this ->address }/db/ {$ database }/query/v2/tx/ {$ transactionId }/rollback " ;
140
142
141
143
$ mockRequest = new Request ('POST ' , $ uri );
142
144
$ mockStream = Utils::streamFor ('' );
@@ -150,7 +152,7 @@ public function testBuildRollbackRequest()
150
152
$ factory = new Neo4jRequestFactory (
151
153
$ this ->psr17Factory ,
152
154
$ this ->streamFactory ,
153
- $ this ->baseUri
155
+ $ this ->address
154
156
);
155
157
$ request = $ factory ->buildRollbackRequest ($ database , $ transactionId );
156
158
@@ -159,14 +161,15 @@ public function testBuildRollbackRequest()
159
161
}
160
162
161
163
/**
162
- * Test for the createRequest method (Private method should be tested indirectly through other public methods)
164
+ * Test for createRequest method with headers and body
163
165
*/
164
166
public function testCreateRequestWithHeadersAndBody ()
165
167
{
166
168
$ cypher = 'MATCH (n) RETURN n ' ;
167
169
$ parameters = ['param1 ' => 'value1 ' ];
168
170
$ database = 'neo4j ' ;
169
- $ uri = "{$ this ->baseUri }/db/ {$ database }/query/v2 " ;
171
+ $ uri = "{$ this ->address }/db/ {$ database }/query/v2 " ;
172
+
170
173
$ payload = json_encode ([
171
174
'statement ' => $ cypher ,
172
175
'parameters ' => $ parameters ,
@@ -184,7 +187,7 @@ public function testCreateRequestWithHeadersAndBody()
184
187
$ factory = new Neo4jRequestFactory (
185
188
$ this ->psr17Factory ,
186
189
$ this ->streamFactory ,
187
- $ this ->baseUri ,
190
+ $ this ->address ,
188
191
$ this ->authHeader
189
192
);
190
193
@@ -196,13 +199,16 @@ public function testCreateRequestWithHeadersAndBody()
196
199
$ this ->assertJsonStringEqualsJsonString ($ payload , (string ) $ request ->getBody ());
197
200
}
198
201
199
-
202
+ /**
203
+ * Test createRequest without Authorization header
204
+ */
200
205
public function testCreateRequestWithoutAuthorizationHeader ()
201
206
{
202
207
$ cypher = 'MATCH (n) RETURN n ' ;
203
208
$ parameters = ['param1 ' => 'value1 ' ];
204
209
$ database = 'neo4j ' ;
205
- $ uri = "{$ this ->baseUri }/db/ {$ database }/query/v2 " ;
210
+ $ uri = "{$ this ->address }/db/ {$ database }/query/v2 " ;
211
+
206
212
$ payload = json_encode ([
207
213
'statement ' => $ cypher ,
208
214
'parameters ' => $ parameters ,
@@ -220,15 +226,14 @@ public function testCreateRequestWithoutAuthorizationHeader()
220
226
$ factory = new Neo4jRequestFactory (
221
227
$ this ->psr17Factory ,
222
228
$ this ->streamFactory ,
223
- $ this ->baseUri
229
+ $ this ->address
224
230
);
225
231
226
232
$ request = $ factory ->buildRunQueryRequest ($ database , $ cypher , $ parameters );
227
233
228
234
$ this ->assertEquals ('application/json ' , $ request ->getHeaderLine ('Content-Type ' ));
229
235
$ this ->assertEquals ('application/json ' , $ request ->getHeaderLine ('Accept ' ));
230
236
$ this ->assertEmpty ($ request ->getHeaderLine ('Authorization ' ));
231
-
232
237
$ this ->assertJsonStringEqualsJsonString ($ payload , (string ) $ request ->getBody ());
233
238
}
234
239
}
0 commit comments