@@ -28,47 +28,47 @@ public function testGetters()
28
28
$ server = $ this ->getServer ();
29
29
$ serverProvider = new ServerProvider ();
30
30
$ serverProvider ->addServer ($ server );
31
-
31
+
32
32
$ client = new Client ($ serverProvider );
33
-
33
+
34
34
$ this ->assertEquals (
35
35
$ serverProvider ->getRandomServer (),
36
36
$ client ->getServer (),
37
37
'Correctly passes server provider '
38
38
);
39
39
}
40
-
40
+
41
41
public function testMappers ()
42
42
{
43
43
$ server = $ this ->getServer ();
44
44
$ serverProvider = new ServerProvider ();
45
45
$ serverProvider ->addServer ($ server );
46
-
46
+
47
47
$ client = new Client ($ serverProvider , new NamedMapper ());
48
-
48
+
49
49
$ result = $ client ->readOne ('select number from numbers(:min, :max) ' , ['min ' => 0 , 'max ' => 10 ]);
50
-
50
+
51
51
$ this ->assertEquals (10 , count ($ result ->rows ), 'Correctly changes mapper ' );
52
52
}
53
-
53
+
54
54
public function testTransports ()
55
55
{
56
56
$ server = $ this ->getServer ();
57
57
$ serverProvider = new ServerProvider ();
58
58
$ serverProvider ->addServer ($ server );
59
-
59
+
60
60
$ transport = $ this ->createMock (TransportInterface::class);
61
61
$ transport ->method ('read ' )->willReturn ([
62
- new Result (new Query ($ server , '' ), [0 ,1 ], new QueryStatistic (0 ,0 , 0 , 0 ))
62
+ new Result (new Query ($ server , '' ), [0 , 1 ], new QueryStatistic (0 , 0 , 0 , 0 )),
63
63
]);
64
-
64
+
65
65
$ client = new Client ($ serverProvider , null , $ transport );
66
-
66
+
67
67
$ result = $ client ->readOne ('test query ' );
68
-
68
+
69
69
$ this ->assertEquals (2 , count ($ result ->rows ), 'Correctly changes transport ' );
70
70
}
71
-
71
+
72
72
public function testClusters ()
73
73
{
74
74
$ cluster = new Cluster (
@@ -78,97 +78,97 @@ public function testClusters()
78
78
new Server ('127.0.0.3 ' ),
79
79
]
80
80
);
81
-
81
+
82
82
$ cluster2 = new Cluster (
83
83
'test2 ' , [
84
84
new Server ('127.0.0.4 ' ),
85
85
new Server ('127.0.0.5 ' ),
86
86
new Server ('127.0.0.6 ' ),
87
87
]
88
88
);
89
-
89
+
90
90
$ serverProvider = new ServerProvider ();
91
91
$ serverProvider ->addCluster ($ cluster )->addCluster ($ cluster2 );
92
-
92
+
93
93
$ client = new Client ($ serverProvider );
94
-
94
+
95
95
$ server = $ client ->onCluster ('test ' )->getServer (); /* will return random server from cluster */
96
96
$ this ->assertContains (
97
97
$ server ,
98
98
$ cluster ->getServers (),
99
99
'Correctly returns random server from specified cluster '
100
100
);
101
-
101
+
102
102
$ this ->assertEquals ($ server , $ client ->getServer (), 'Remembers firstly selected random server for next calls ' );
103
-
103
+
104
104
$ client ->using ('127.0.0.3 ' );
105
105
$ server = $ client ->getServer ();
106
-
106
+
107
107
$ this ->assertEquals (
108
108
'127.0.0.3 ' ,
109
109
$ server ->getHost (),
110
110
'Correctly returns specified server from specified cluster '
111
111
);
112
-
112
+
113
113
$ server = $ client ->onCluster ('test2 ' )->getServer (); /* will return random server from cluster */
114
114
$ this ->assertContains (
115
115
$ server ,
116
116
$ cluster2 ->getServers (),
117
117
'Correctly returns random server from specified cluster '
118
118
);
119
-
119
+
120
120
$ client ->usingRandomServer ();
121
121
$ server = $ client ->getServer ();
122
-
122
+
123
123
while ($ server === $ client ->getServer ()) {
124
124
/* Randomize while get non used server */
125
125
}
126
-
126
+
127
127
$ this ->assertTrue (true , 'Correctly randomizes cluster servers on each call ' );
128
-
128
+
129
129
$ this ->expectException (ClusterException::class);
130
130
$ this ->expectExceptionMessage ('Server with hostname [127.0.0.0] is not found in cluster ' );
131
-
131
+
132
132
$ client ->onCluster ('test ' )->using ('127.0.0.0 ' )->getServer ();
133
133
}
134
-
134
+
135
135
public function testServers ()
136
136
{
137
137
$ server1 = new Server ('127.0.0.1 ' );
138
138
$ server2 = new Server ('127.0.0.2 ' );
139
139
$ server3 = new Server ('127.0.0.3 ' );
140
-
140
+
141
141
$ serverProvider = new ServerProvider ();
142
142
$ serverProvider ->addServer ($ server1 )->addServer ($ server2 )->addServer ($ server3 );
143
-
143
+
144
144
$ client = new Client ($ serverProvider );
145
-
145
+
146
146
$ server = $ client ->getServer ();
147
147
$ this ->assertTrue (
148
148
in_array ($ server ->getHost (), ['127.0.0.1 ' , '127.0.0.2 ' , '127.0.0.3 ' ], true ),
149
149
'Correctly returns random server '
150
150
);
151
-
151
+
152
152
$ this ->assertEquals ($ server , $ client ->getServer (), 'Remembers firstly selected random server for next calls ' );
153
-
153
+
154
154
$ server = $ client ->using ('127.0.0.3 ' )->getServer ();
155
155
$ this ->assertEquals ('127.0.0.3 ' , $ server ->getHost (), 'Correctly returns specified server ' );
156
-
156
+
157
157
$ client ->usingRandomServer ();
158
158
$ server = $ client ->getServer ();
159
-
159
+
160
160
while ($ server === $ client ->getServer ()) {
161
161
/* Randomize while get non used server */
162
162
}
163
-
163
+
164
164
$ this ->assertTrue (true , 'Correctly randomizes cluster servers on each call ' );
165
-
165
+
166
166
$ this ->expectException (ServerProviderException::class);
167
167
$ this ->expectExceptionMessage ('Can not find server with hostname [127.0.0.0] ' );
168
-
168
+
169
169
$ client ->using ('127.0.0.0 ' )->getServer ();
170
170
}
171
-
171
+
172
172
public function testClusterAndServersTogether ()
173
173
{
174
174
$ cluster = new Cluster (
@@ -178,116 +178,116 @@ public function testClusterAndServersTogether()
178
178
new Server ('127.0.0.3 ' ),
179
179
]
180
180
);
181
-
181
+
182
182
$ server1 = new Server ('127.0.0.4 ' );
183
183
$ server2 = new Server ('127.0.0.5 ' );
184
184
$ server3 = new Server ('127.0.0.6 ' );
185
-
185
+
186
186
$ serverProvider = new ServerProvider ();
187
187
$ serverProvider ->addCluster ($ cluster )->addServer ($ server1 )->addServer ($ server2 )->addServer ($ server3 );
188
-
188
+
189
189
$ client = new Client ($ serverProvider );
190
-
190
+
191
191
$ server = $ client ->getServer ();
192
192
$ this ->assertTrue (
193
193
in_array ($ server ->getHost (), ['127.0.0.4 ' , '127.0.0.5 ' , '127.0.0.6 ' ], true ),
194
194
'Correctly returns random server not in cluster '
195
195
);
196
-
196
+
197
197
$ this ->assertEquals ($ server , $ client ->getServer (), 'Remembers firstly selected random server for next calls ' );
198
-
198
+
199
199
$ client ->onCluster ('test ' );
200
-
200
+
201
201
$ server = $ client ->onCluster ('test ' )->getServer (); /* will return random server from cluster */
202
202
$ this ->assertContains (
203
203
$ server ,
204
204
$ cluster ->getServers (),
205
205
'Correctly returns random server from specified cluster '
206
206
);
207
-
207
+
208
208
$ this ->assertEquals ($ server , $ client ->getServer (), 'Remembers firstly selected random server for next calls ' );
209
-
209
+
210
210
$ server = $ client ->onCluster (null )->getServer ();
211
211
$ this ->assertTrue (
212
212
in_array ($ server ->getHost (), ['127.0.0.4 ' , '127.0.0.5 ' , '127.0.0.6 ' ], true ),
213
213
'Correctly returns random server after disabling cluster mode '
214
214
);
215
215
}
216
-
216
+
217
217
protected function getClient (): Client
218
218
{
219
219
$ serverProvider = new ServerProvider ();
220
220
$ serverProvider ->addServer ($ this ->getServer ());
221
-
221
+
222
222
return new Client ($ serverProvider );
223
223
}
224
-
224
+
225
225
public function testReadOne ()
226
226
{
227
227
$ client = $ this ->getClient ();
228
-
228
+
229
229
$ result = $ client ->readOne ('select * from numbers(?, ?) order by number desc ' , [0 , 10 ]);
230
-
230
+
231
231
$ this ->assertEquals (10 , count ($ result ->rows ), 'Correctly executes query using mapper ' );
232
232
}
233
-
233
+
234
234
public function testRead ()
235
235
{
236
236
$ client = $ this ->getClient ();
237
-
237
+
238
238
$ result = $ client ->read (
239
239
[
240
240
[
241
- 'query ' => 'select * from numbers(?, ?) order by number desc ' ,
241
+ 'query ' => 'select * from numbers(?, ?) order by number desc ' ,
242
242
'bindings ' => [0 , 10 ],
243
243
],
244
244
new Query ($ client ->getServer (), 'select * from numbers(0, 20) order by number desc ' ),
245
245
new Query ($ client ->getServer (), 'select * from numbers(0, 20) where number in tab order by number desc ' , [
246
- new TempTable ('tab ' , new FileFromString ('1 ' .PHP_EOL .'2 ' .PHP_EOL ), ['number ' => 'UInt64 ' ], Format::TSV )
246
+ new TempTable ('tab ' , new FileFromString ('1 ' .PHP_EOL .'2 ' .PHP_EOL ), ['number ' => 'UInt64 ' ], Format::TSV ),
247
247
]),
248
248
]
249
249
);
250
-
250
+
251
251
$ this ->assertEquals (10 , count ($ result [0 ]->rows ), 'Correctly converts query from array to query instance ' );
252
252
$ this ->assertEquals (20 , count ($ result [1 ]->rows ), 'Correctly executes queries ' );
253
253
$ this ->assertEquals (2 , count ($ result [2 ]->rows ), 'Correctly executes query with file ' );
254
254
}
255
-
255
+
256
256
public function testWrite ()
257
257
{
258
258
$ client = $ this ->getClient ();
259
-
259
+
260
260
$ client ->write ([
261
261
new Query ($ client ->getServer (), 'drop table if exists default.tdchc_test_table ' ),
262
262
new Query ($ client ->getServer (), 'create table default.tdchc_test_table (number UInt64) engine = Memory ' ),
263
263
], 1 );
264
-
264
+
265
265
$ client ->writeOne ('insert into default.tdchc_test_table (number) FORMAT TSV ' , [], [
266
- new FileFromString ('1 ' .PHP_EOL .'2 ' .PHP_EOL )
266
+ new FileFromString ('1 ' .PHP_EOL .'2 ' .PHP_EOL ),
267
267
]);
268
-
268
+
269
269
$ result = $ client ->readOne ('select * from default.tdchc_test_table ' );
270
-
270
+
271
271
$ this ->assertEquals (2 , count ($ result ->rows ), 'Correctly writes data ' );
272
272
}
273
-
273
+
274
274
public function testWriteFiles ()
275
275
{
276
276
$ client = $ this ->getClient ();
277
-
277
+
278
278
$ client ->write ([
279
279
new Query ($ client ->getServer (), 'drop table if exists default.tdchc_test_table ' ),
280
280
new Query ($ client ->getServer (), 'create table default.tdchc_test_table (number UInt64) engine = Memory ' ),
281
281
], 1 );
282
-
282
+
283
283
$ client ->writeFiles ('default.tdchc_test_table ' , ['number ' ], [
284
284
new FileFromString ('1 ' .PHP_EOL .'2 ' .PHP_EOL ),
285
285
new FileFromString ('3 ' .PHP_EOL .'4 ' .PHP_EOL ),
286
286
new FileFromString ('5 ' .PHP_EOL .'6 ' .PHP_EOL ),
287
287
], Format::TSV );
288
-
288
+
289
289
$ result = $ client ->readOne ('select * from default.tdchc_test_table ' );
290
-
290
+
291
291
$ this ->assertEquals (6 , count ($ result ->rows ), 'Correctly writes data ' );
292
292
}
293
293
}
0 commit comments