Skip to content

Commit dcd16b0

Browse files
committed
Mild reorganization of KVClient class
- Adding error check on "KVClient::keys" method
1 parent 3f23583 commit dcd16b0

File tree

2 files changed

+58
-45
lines changed

2 files changed

+58
-45
lines changed

src/KV/KVClient.php

Lines changed: 43 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,49 @@ public function get($key, QueryOptions $queryOptions = null) {
7777
return [null, $qm, new Error(sprintf('%s: %s', $response->getStatusCode(), $response->getReasonPhrase()))];
7878
}
7979

80+
/**
81+
* @param \DCarbone\PHPConsulAPI\KV\KVPair $p
82+
* @param \DCarbone\PHPConsulAPI\WriteOptions $writeOptions
83+
* @return array(
84+
* @type \DCarbone\PHPConsulAPI\WriteMeta write metadata
85+
* @type \DCarbone\PHPConsulAPI\Error|null error, if any
86+
* )
87+
*/
88+
public function put(KVPair $p, WriteOptions $writeOptions = null) {
89+
$r = new Request('put', sprintf('v1/kv/%s', $p->Key), $this->c, $p->Value);
90+
$r->setWriteOptions($writeOptions);
91+
if (0 !== $p->Flags) {
92+
$r->params->set('flags', (string)$p->Flags);
93+
}
94+
95+
list($duration, $_, $err) = $this->requireOK($this->doRequest($r));
96+
if (null !== $err) {
97+
return [null, $err];
98+
}
99+
100+
return [$this->buildWriteMeta($duration), null];
101+
}
102+
103+
/**
104+
* @param string $key
105+
* @param \DCarbone\PHPConsulAPI\WriteOptions|null $writeOptions
106+
* @return array(
107+
* @type \DCarbone\PHPConsulAPI\WriteMeta metadata about write
108+
* @type \DCarbone\PHPConsulAPI\Error|null error, if any
109+
* )
110+
*/
111+
public function delete($key, WriteOptions $writeOptions = null) {
112+
$r = new Request('delete', sprintf('v1/kv/%s', $key), $this->c);
113+
$r->setWriteOptions($writeOptions);
114+
115+
list ($duration, $_, $err) = $this->requireOK($this->doRequest($r));
116+
if (null !== $err) {
117+
return [null, $err];
118+
}
119+
120+
return [$this->buildWriteMeta($duration), null];
121+
}
122+
80123
/**
81124
* @param string $prefix
82125
* @param \DCarbone\PHPConsulAPI\QueryOptions|null $queryOptions
@@ -167,49 +210,6 @@ public function keys($prefix = null, QueryOptions $queryOptions = null) {
167210
return [$data, $qm, $err];
168211
}
169212

170-
/**
171-
* @param \DCarbone\PHPConsulAPI\KV\KVPair $p
172-
* @param \DCarbone\PHPConsulAPI\WriteOptions $writeOptions
173-
* @return array(
174-
* @type \DCarbone\PHPConsulAPI\WriteMeta write metadata
175-
* @type \DCarbone\PHPConsulAPI\Error|null error, if any
176-
* )
177-
*/
178-
public function put(KVPair $p, WriteOptions $writeOptions = null) {
179-
$r = new Request('put', sprintf('v1/kv/%s', $p->Key), $this->c, $p->Value);
180-
$r->setWriteOptions($writeOptions);
181-
if (0 !== $p->Flags) {
182-
$r->params->set('flags', (string)$p->Flags);
183-
}
184-
185-
list($duration, $_, $err) = $this->requireOK($this->doRequest($r));
186-
if (null !== $err) {
187-
return [null, $err];
188-
}
189-
190-
return [$this->buildWriteMeta($duration), null];
191-
}
192-
193-
/**
194-
* @param string $key
195-
* @param \DCarbone\PHPConsulAPI\WriteOptions|null $writeOptions
196-
* @return array(
197-
* @type \DCarbone\PHPConsulAPI\WriteMeta metadata about write
198-
* @type \DCarbone\PHPConsulAPI\Error|null error, if any
199-
* )
200-
*/
201-
public function delete($key, WriteOptions $writeOptions = null) {
202-
$r = new Request('delete', sprintf('v1/kv/%s', $key), $this->c);
203-
$r->setWriteOptions($writeOptions);
204-
205-
list ($duration, $_, $err) = $this->requireOK($this->doRequest($r));
206-
if (null !== $err) {
207-
return [null, $err];
208-
}
209-
210-
return [$this->buildWriteMeta($duration), null];
211-
}
212-
213213
/**
214214
* @param \DCarbone\PHPConsulAPI\KV\KVPair $p
215215
* @param \DCarbone\PHPConsulAPI\WriteOptions $writeOptions

tests/Usage/KV/KVClientUsageTest.php renamed to tests/Usage/KV/KVClientCRUDTests.php

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@
2525
use DCarbone\PHPConsulAPITests\ConsulManager;
2626

2727
/**
28-
* Class KVClientUsageTest
28+
* Class KVClientCRUDTests
2929
* @package DCarbone\PHPConsulAPITests\Usage\KV
3030
*/
31-
class KVClientUsageTest extends \PHPUnit_Framework_TestCase {
31+
class KVClientCRUDTests extends \PHPUnit_Framework_TestCase {
3232

3333
const KVKey1 = 'testkey1';
3434
const KVValue1 = 'testvalue1';
@@ -215,6 +215,19 @@ public function testCanGetPrefixList() {
215215
}
216216
}
217217

218+
public function testKeysReturnsErrorWithInvalidPrefix() {
219+
$client = new KVClient(new Config());
220+
list($_, $_, $err) = $client->keys(12345);
221+
$this->assertInstanceOf(
222+
Error::class,
223+
$err,
224+
sprintf(
225+
'Expected $err to be "%s", saw "%s"',
226+
Error::class,
227+
is_object($err) ? get_class($err) : gettype($err)
228+
));
229+
}
230+
218231
/**
219232
* @depends testCanPutKey
220233
*/

0 commit comments

Comments
 (0)