From b3ad5aacbd408bc97152a6930635488ae5254b4a Mon Sep 17 00:00:00 2001 From: Yoann Abbes Date: Wed, 1 Apr 2020 09:06:52 +0200 Subject: [PATCH 1/8] add collection:list --- doc/3/controllers/collection/list/index.md | 61 +++++++++++++++++++ .../collection/list/snippets/list.java | 22 +++++++ .../collection/list/snippets/list.test.yml | 7 +++ doc/3/core-classes/list-options/index.md | 26 ++++++++ .../API/Controllers/CollectionController.java | 39 ++++++++++++ .../io/kuzzle/sdk/Options/ListOptions.java | 47 ++++++++++++++ .../test/API/Controllers/CollectionTest.java | 49 +++++++++++++++ 7 files changed, 251 insertions(+) create mode 100644 doc/3/controllers/collection/list/index.md create mode 100644 doc/3/controllers/collection/list/snippets/list.java create mode 100644 doc/3/controllers/collection/list/snippets/list.test.yml create mode 100644 doc/3/core-classes/list-options/index.md create mode 100644 src/main/java/io/kuzzle/sdk/Options/ListOptions.java diff --git a/doc/3/controllers/collection/list/index.md b/doc/3/controllers/collection/list/index.md new file mode 100644 index 00000000..37d19b98 --- /dev/null +++ b/doc/3/controllers/collection/list/index.md @@ -0,0 +1,61 @@ +--- +code: true +type: page +title: list +description: Returns the collection list of an index +--- + +# list + +Returns the list of collections associated to a provided index. +The returned list is sorted in alphanumerical order. + +
+ +```java +public CompletableFuture> list( + final String index, + final ListOptions options) throws NotConnectedException, InternalException + +public CompletableFuture> list( + final String index) throws NotConnectedException, InternalException +``` + + +| Arguments | Type | Description | +| --------- | ---------------------- | ------------- | +| `index` |
String
| Index name | +| `options` |
ListOptions
| List options | + +### options + +A [ListOptions](/sdk/java/3/core-classes/list-options) object. + +The following options can be set: + +| Argument | Type | Description | +| ---------- | -------------------------------- | ---------------------------------------------------------------------------- | +| `from` |
Integer

(`0`) | Offset of the first result | +| `size` |
Integer

(`10`) | Maximum number of returned results | + +## Returns + +Returns a `ConcurrentHashMap` containing the following properties: + +| Property | Type | Description | +| ------------- | ------------------- | ------------------------------------------------------------------ | +| `type` |
String
| Types of returned collections
(`all`, `realtime` or `stored`) | +| `collections` |
ArrayList | List of collections                                                |
+| `from`        | 
Integer
| Offset of the first result | +| `size` |
Integer
| Maximum number of returned results | + +Each object in the `collections` array contains the following properties: + +| Property | Type | Description | +| -------- | ----------------- | ---------------------------------------- | +| `name` |
String
| Collection name | +| `type` |
String
| Collection type (`realtime` or `stored`) | + +## Usage + +<<< ./snippets/list.java \ No newline at end of file diff --git a/doc/3/controllers/collection/list/snippets/list.java b/doc/3/controllers/collection/list/snippets/list.java new file mode 100644 index 00000000..05bd5975 --- /dev/null +++ b/doc/3/controllers/collection/list/snippets/list.java @@ -0,0 +1,22 @@ + ConcurrentHashMap result = kuzzle + .getCollectionController() + .list("nyc-open-data") + .get(); + +/* + { + size=10, + collections=[ + { + name=dark-taxi, + type=stored + }, + { + name=pink-taxi, + type=stored + } + ], + from=0, + type=all + } + */ \ No newline at end of file diff --git a/doc/3/controllers/collection/list/snippets/list.test.yml b/doc/3/controllers/collection/list/snippets/list.test.yml new file mode 100644 index 00000000..b748fa01 --- /dev/null +++ b/doc/3/controllers/collection/list/snippets/list.test.yml @@ -0,0 +1,7 @@ +name: collection#list +description: Returns the collection list of an index +hooks: + before: curl -X POST kuzzle:7512/nyc-open-data/_create && curl -X PUT kuzzle:7512/nyc-open-data/pink-taxi && curl -X PUT kuzzle:7512/nyc-open-data/dark-taxi + after: +template: default +expected: Success \ No newline at end of file diff --git a/doc/3/core-classes/list-options/index.md b/doc/3/core-classes/list-options/index.md new file mode 100644 index 00000000..6004b7d7 --- /dev/null +++ b/doc/3/core-classes/list-options/index.md @@ -0,0 +1,26 @@ +--- +code: true +type: page +title: ListOptions +description: ListOptions class documentation +order: 110 +--- + +# ListOptions + +This class represents the options usable with the [`list`](/sdk/java/3/controllers/collection/list) method of the [CollectionController](/sdk/java/3/controllers/collection). + +## Namespace + +You must include the following package: + +```java +import io.kuzzle.sdk.Options.ListOptions; +``` + +## Properties + +| Property | Type | Description | +| ------------------ | -------------------------------------------- | --------------------------------- | +| `from` |
Integer

(`0`) | Offset of the first result | +| `size` |
Integer

(`10`) | Maximum number of returned results | diff --git a/src/main/java/io/kuzzle/sdk/API/Controllers/CollectionController.java b/src/main/java/io/kuzzle/sdk/API/Controllers/CollectionController.java index 23dada9f..23cb91af 100644 --- a/src/main/java/io/kuzzle/sdk/API/Controllers/CollectionController.java +++ b/src/main/java/io/kuzzle/sdk/API/Controllers/CollectionController.java @@ -4,8 +4,10 @@ import io.kuzzle.sdk.Exceptions.InternalException; import io.kuzzle.sdk.Exceptions.NotConnectedException; import io.kuzzle.sdk.Kuzzle; +import io.kuzzle.sdk.Options.ListOptions; import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ConcurrentHashMap; public class CollectionController extends BaseController { @@ -38,4 +40,41 @@ public CompletableFuture exists( .thenApplyAsync( (response) -> (Boolean) response.result); } + + /** + * List collections. + * + * @param index + * @param options + * @return a CompletableFuture + * @throws NotConnectedException + * @throws InternalException + */ + public CompletableFuture> list( + final String index, + final ListOptions options) throws NotConnectedException, InternalException { + + final KuzzleMap query = new KuzzleMap(); + query + .put("index", index) + .put("controller", "collection") + .put("action", "list"); + + if (options != null) { + query + .put("from", options.getFrom()) + .put("size", options.getSize()); + } + + return kuzzle + .query(query) + .thenApplyAsync( + (response) -> (ConcurrentHashMap) response.result); + } + + public CompletableFuture> list( + final String index) throws NotConnectedException, InternalException { + + return this.list(index, null); + } } diff --git a/src/main/java/io/kuzzle/sdk/Options/ListOptions.java b/src/main/java/io/kuzzle/sdk/Options/ListOptions.java new file mode 100644 index 00000000..86ff341b --- /dev/null +++ b/src/main/java/io/kuzzle/sdk/Options/ListOptions.java @@ -0,0 +1,47 @@ +package io.kuzzle.sdk.Options; + +import java.util.concurrent.ConcurrentHashMap; + +public class ListOptions { + private Integer from; + private Integer size; + /** + * Constructor + */ + public ListOptions() {} + + /** + * Copy constructor + * + * @param options + */ + public ListOptions(ListOptions options) { + this.from = options.getFrom(); + this.size = options.getSize(); + } + + public Integer getFrom() { + return from; + } + + public Integer getSize() { + return size; + } + + public void setFrom(Integer from) { + this.from = from; + } + + public void setSize(Integer size) { + this.size = size; + } + + public ConcurrentHashMap toHashMap() { + ConcurrentHashMap options = new ConcurrentHashMap<>(); + + options.put("from", this.from); + options.put("size", this.size); + + return options; + } +} diff --git a/src/test/java/io/kuzzle/test/API/Controllers/CollectionTest.java b/src/test/java/io/kuzzle/test/API/Controllers/CollectionTest.java index 0f82e7f0..befc558f 100644 --- a/src/test/java/io/kuzzle/test/API/Controllers/CollectionTest.java +++ b/src/test/java/io/kuzzle/test/API/Controllers/CollectionTest.java @@ -4,6 +4,7 @@ import io.kuzzle.sdk.Exceptions.InternalException; import io.kuzzle.sdk.Exceptions.NotConnectedException; import io.kuzzle.sdk.Kuzzle; +import io.kuzzle.sdk.Options.ListOptions; import io.kuzzle.sdk.Protocol.AbstractProtocol; import io.kuzzle.sdk.Protocol.ProtocolState; import io.kuzzle.sdk.Protocol.WebSocket; @@ -49,4 +50,52 @@ public void existsCollectionShouldThrowWhenNotConnected() throws NotConnectedExc kuzzleMock.getCollectionController().exists(index, collection); } + + @Test + public void listCollectionTestA() throws NotConnectedException, InternalException { + + Kuzzle kuzzleMock = spy(new Kuzzle(networkProtocol)); + String index = "nyc-open-data"; + + ArgumentCaptor arg = ArgumentCaptor.forClass(KuzzleMap.class); + + kuzzleMock.getCollectionController().list(index); + Mockito.verify(kuzzleMock, Mockito.times(1)).query(arg.capture()); + + assertEquals((arg.getValue()).getString("controller"), "collection"); + assertEquals((arg.getValue()).getString("action"), "list"); + assertEquals((arg.getValue()).getString("index"), "nyc-open-data"); + } + + @Test + public void listCollectionTestB() throws NotConnectedException, InternalException { + + Kuzzle kuzzleMock = spy(new Kuzzle(networkProtocol)); + String index = "nyc-open-data"; + + ArgumentCaptor arg = ArgumentCaptor.forClass(KuzzleMap.class); + + ListOptions options = new ListOptions(); + options.setFrom(1); + options.setSize(20); + kuzzleMock.getCollectionController().list(index, options); + Mockito.verify(kuzzleMock, Mockito.times(1)).query(arg.capture()); + + assertEquals((arg.getValue()).getString("controller"), "collection"); + assertEquals((arg.getValue()).getString("action"), "list"); + assertEquals((arg.getValue()).getNumber("from"), 1); + assertEquals((arg.getValue()).getNumber("size"), 20); + assertEquals((arg.getValue()).getString("index"), "nyc-open-data"); + } + + @Test(expected = NotConnectedException.class) + public void listCollectionShouldThrowWhenNotConnected() throws NotConnectedException, InternalException { + AbstractProtocol fakeNetworkProtocol = Mockito.mock(WebSocket.class); + Mockito.when(fakeNetworkProtocol.getState()).thenAnswer((Answer) invocation -> ProtocolState.CLOSE); + + Kuzzle kuzzleMock = spy(new Kuzzle(fakeNetworkProtocol)); + String index = "nyc-open-data"; + + kuzzleMock.getCollectionController().list(index); + } } From f57f360857096bc7ab4ce5c768e92805268c2f5c Mon Sep 17 00:00:00 2001 From: Yoann Abbes Date: Wed, 1 Apr 2020 09:11:34 +0200 Subject: [PATCH 2/8] conflict [ci skip] --- .../API/Controllers/CollectionController.java | 72 +++++++------- .../test/API/Controllers/CollectionTest.java | 94 +++++++++---------- 2 files changed, 83 insertions(+), 83 deletions(-) diff --git a/src/main/java/io/kuzzle/sdk/API/Controllers/CollectionController.java b/src/main/java/io/kuzzle/sdk/API/Controllers/CollectionController.java index 23cb91af..1f87ec65 100644 --- a/src/main/java/io/kuzzle/sdk/API/Controllers/CollectionController.java +++ b/src/main/java/io/kuzzle/sdk/API/Controllers/CollectionController.java @@ -41,40 +41,40 @@ public CompletableFuture exists( (response) -> (Boolean) response.result); } - /** - * List collections. - * - * @param index - * @param options - * @return a CompletableFuture - * @throws NotConnectedException - * @throws InternalException - */ - public CompletableFuture> list( - final String index, - final ListOptions options) throws NotConnectedException, InternalException { - - final KuzzleMap query = new KuzzleMap(); - query - .put("index", index) - .put("controller", "collection") - .put("action", "list"); - - if (options != null) { - query - .put("from", options.getFrom()) - .put("size", options.getSize()); - } - - return kuzzle - .query(query) - .thenApplyAsync( - (response) -> (ConcurrentHashMap) response.result); - } - - public CompletableFuture> list( - final String index) throws NotConnectedException, InternalException { - - return this.list(index, null); - } +// /** +// * List collections. +// * +// * @param index +// * @param options +// * @return a CompletableFuture +// * @throws NotConnectedException +// * @throws InternalException +// */ +// public CompletableFuture> list( +// final String index, +// final ListOptions options) throws NotConnectedException, InternalException { +// +// final KuzzleMap query = new KuzzleMap(); +// query +// .put("index", index) +// .put("controller", "collection") +// .put("action", "list"); +// +// if (options != null) { +// query +// .put("from", options.getFrom()) +// .put("size", options.getSize()); +// } +// +// return kuzzle +// .query(query) +// .thenApplyAsync( +// (response) -> (ConcurrentHashMap) response.result); +// } +// +// public CompletableFuture> list( +// final String index) throws NotConnectedException, InternalException { +// +// return this.list(index, null); +// } } diff --git a/src/test/java/io/kuzzle/test/API/Controllers/CollectionTest.java b/src/test/java/io/kuzzle/test/API/Controllers/CollectionTest.java index befc558f..f5e8ecf3 100644 --- a/src/test/java/io/kuzzle/test/API/Controllers/CollectionTest.java +++ b/src/test/java/io/kuzzle/test/API/Controllers/CollectionTest.java @@ -51,51 +51,51 @@ public void existsCollectionShouldThrowWhenNotConnected() throws NotConnectedExc kuzzleMock.getCollectionController().exists(index, collection); } - @Test - public void listCollectionTestA() throws NotConnectedException, InternalException { - - Kuzzle kuzzleMock = spy(new Kuzzle(networkProtocol)); - String index = "nyc-open-data"; - - ArgumentCaptor arg = ArgumentCaptor.forClass(KuzzleMap.class); - - kuzzleMock.getCollectionController().list(index); - Mockito.verify(kuzzleMock, Mockito.times(1)).query(arg.capture()); - - assertEquals((arg.getValue()).getString("controller"), "collection"); - assertEquals((arg.getValue()).getString("action"), "list"); - assertEquals((arg.getValue()).getString("index"), "nyc-open-data"); - } - - @Test - public void listCollectionTestB() throws NotConnectedException, InternalException { - - Kuzzle kuzzleMock = spy(new Kuzzle(networkProtocol)); - String index = "nyc-open-data"; - - ArgumentCaptor arg = ArgumentCaptor.forClass(KuzzleMap.class); - - ListOptions options = new ListOptions(); - options.setFrom(1); - options.setSize(20); - kuzzleMock.getCollectionController().list(index, options); - Mockito.verify(kuzzleMock, Mockito.times(1)).query(arg.capture()); - - assertEquals((arg.getValue()).getString("controller"), "collection"); - assertEquals((arg.getValue()).getString("action"), "list"); - assertEquals((arg.getValue()).getNumber("from"), 1); - assertEquals((arg.getValue()).getNumber("size"), 20); - assertEquals((arg.getValue()).getString("index"), "nyc-open-data"); - } - - @Test(expected = NotConnectedException.class) - public void listCollectionShouldThrowWhenNotConnected() throws NotConnectedException, InternalException { - AbstractProtocol fakeNetworkProtocol = Mockito.mock(WebSocket.class); - Mockito.when(fakeNetworkProtocol.getState()).thenAnswer((Answer) invocation -> ProtocolState.CLOSE); - - Kuzzle kuzzleMock = spy(new Kuzzle(fakeNetworkProtocol)); - String index = "nyc-open-data"; - - kuzzleMock.getCollectionController().list(index); - } +// @Test +// public void listCollectionTestA() throws NotConnectedException, InternalException { +// +// Kuzzle kuzzleMock = spy(new Kuzzle(networkProtocol)); +// String index = "nyc-open-data"; +// +// ArgumentCaptor arg = ArgumentCaptor.forClass(KuzzleMap.class); +// +// kuzzleMock.getCollectionController().list(index); +// Mockito.verify(kuzzleMock, Mockito.times(1)).query(arg.capture()); +// +// assertEquals((arg.getValue()).getString("controller"), "collection"); +// assertEquals((arg.getValue()).getString("action"), "list"); +// assertEquals((arg.getValue()).getString("index"), "nyc-open-data"); +// } +// +// @Test +// public void listCollectionTestB() throws NotConnectedException, InternalException { +// +// Kuzzle kuzzleMock = spy(new Kuzzle(networkProtocol)); +// String index = "nyc-open-data"; +// +// ArgumentCaptor arg = ArgumentCaptor.forClass(KuzzleMap.class); +// +// ListOptions options = new ListOptions(); +// options.setFrom(1); +// options.setSize(20); +// kuzzleMock.getCollectionController().list(index, options); +// Mockito.verify(kuzzleMock, Mockito.times(1)).query(arg.capture()); +// +// assertEquals((arg.getValue()).getString("controller"), "collection"); +// assertEquals((arg.getValue()).getString("action"), "list"); +// assertEquals((arg.getValue()).getNumber("from"), 1); +// assertEquals((arg.getValue()).getNumber("size"), 20); +// assertEquals((arg.getValue()).getString("index"), "nyc-open-data"); +// } +// +// @Test(expected = NotConnectedException.class) +// public void listCollectionShouldThrowWhenNotConnected() throws NotConnectedException, InternalException { +// AbstractProtocol fakeNetworkProtocol = Mockito.mock(WebSocket.class); +// Mockito.when(fakeNetworkProtocol.getState()).thenAnswer((Answer) invocation -> ProtocolState.CLOSE); +// +// Kuzzle kuzzleMock = spy(new Kuzzle(fakeNetworkProtocol)); +// String index = "nyc-open-data"; +// +// kuzzleMock.getCollectionController().list(index); +// } } From 50df3736ec7d973b3249f596f72698e7d58bca4c Mon Sep 17 00:00:00 2001 From: Yoann Abbes Date: Wed, 1 Apr 2020 09:14:28 +0200 Subject: [PATCH 3/8] indent --- .../API/Controllers/CollectionController.java | 72 +++++++------- .../test/API/Controllers/CollectionTest.java | 94 +++++++++---------- 2 files changed, 83 insertions(+), 83 deletions(-) diff --git a/src/main/java/io/kuzzle/sdk/API/Controllers/CollectionController.java b/src/main/java/io/kuzzle/sdk/API/Controllers/CollectionController.java index 3518de76..6a25c4af 100644 --- a/src/main/java/io/kuzzle/sdk/API/Controllers/CollectionController.java +++ b/src/main/java/io/kuzzle/sdk/API/Controllers/CollectionController.java @@ -41,42 +41,42 @@ public CompletableFuture exists( (response) -> (Boolean) response.result); } - /** - * List collections. - * - * @param index - * @param options - * @return a CompletableFuture - * @throws NotConnectedException - * @throws InternalException - */ - public CompletableFuture> list( - final String index, - final ListOptions options) throws NotConnectedException, InternalException { - - final KuzzleMap query = new KuzzleMap(); - query - .put("index", index) - .put("controller", "collection") - .put("action", "list"); - - if (options != null) { - query - .put("from", options.getFrom()) - .put("size", options.getSize()); - } - - return kuzzle - .query(query) - .thenApplyAsync( - (response) -> (ConcurrentHashMap) response.result); - } - - public CompletableFuture> list( - final String index) throws NotConnectedException, InternalException { - - return this.list(index, null); - } + /** + * List collections. + * + * @param index + * @param options + * @return a CompletableFuture + * @throws NotConnectedException + * @throws InternalException + */ + public CompletableFuture> list( + final String index, + final ListOptions options) throws NotConnectedException, InternalException { + + final KuzzleMap query = new KuzzleMap(); + query + .put("index", index) + .put("controller", "collection") + .put("action", "list"); + + if (options != null) { + query + .put("from", options.getFrom()) + .put("size", options.getSize()); + } + + return kuzzle + .query(query) + .thenApplyAsync( + (response) -> (ConcurrentHashMap) response.result); + } + + public CompletableFuture> list( + final String index) throws NotConnectedException, InternalException { + + return this.list(index, null); + } /** * Get collection mapping diff --git a/src/test/java/io/kuzzle/test/API/Controllers/CollectionTest.java b/src/test/java/io/kuzzle/test/API/Controllers/CollectionTest.java index 9eb76798..4aed1312 100644 --- a/src/test/java/io/kuzzle/test/API/Controllers/CollectionTest.java +++ b/src/test/java/io/kuzzle/test/API/Controllers/CollectionTest.java @@ -51,70 +51,70 @@ public void existsCollectionShouldThrowWhenNotConnected() throws NotConnectedExc kuzzleMock.getCollectionController().exists(index, collection); } - @Test - public void listCollectionTestA() throws NotConnectedException, InternalException { + @Test + public void listCollectionTestA() throws NotConnectedException, InternalException { - Kuzzle kuzzleMock = spy(new Kuzzle(networkProtocol)); - String index = "nyc-open-data"; + Kuzzle kuzzleMock = spy(new Kuzzle(networkProtocol)); + String index = "nyc-open-data"; - ArgumentCaptor arg = ArgumentCaptor.forClass(KuzzleMap.class); + ArgumentCaptor arg = ArgumentCaptor.forClass(KuzzleMap.class); - kuzzleMock.getCollectionController().list(index); - Mockito.verify(kuzzleMock, Mockito.times(1)).query(arg.capture()); + kuzzleMock.getCollectionController().list(index); + Mockito.verify(kuzzleMock, Mockito.times(1)).query(arg.capture()); - assertEquals((arg.getValue()).getString("controller"), "collection"); - assertEquals((arg.getValue()).getString("action"), "list"); - assertEquals((arg.getValue()).getString("index"), "nyc-open-data"); - } + assertEquals((arg.getValue()).getString("controller"), "collection"); + assertEquals((arg.getValue()).getString("action"), "list"); + assertEquals((arg.getValue()).getString("index"), "nyc-open-data"); + } - @Test - public void listCollectionTestB() throws NotConnectedException, InternalException { + @Test + public void listCollectionTestB() throws NotConnectedException, InternalException { - Kuzzle kuzzleMock = spy(new Kuzzle(networkProtocol)); - String index = "nyc-open-data"; + Kuzzle kuzzleMock = spy(new Kuzzle(networkProtocol)); + String index = "nyc-open-data"; - ArgumentCaptor arg = ArgumentCaptor.forClass(KuzzleMap.class); + ArgumentCaptor arg = ArgumentCaptor.forClass(KuzzleMap.class); - ListOptions options = new ListOptions(); - options.setFrom(1); - options.setSize(20); - kuzzleMock.getCollectionController().list(index, options); - Mockito.verify(kuzzleMock, Mockito.times(1)).query(arg.capture()); + ListOptions options = new ListOptions(); + options.setFrom(1); + options.setSize(20); + kuzzleMock.getCollectionController().list(index, options); + Mockito.verify(kuzzleMock, Mockito.times(1)).query(arg.capture()); - assertEquals((arg.getValue()).getString("controller"), "collection"); - assertEquals((arg.getValue()).getString("action"), "list"); - assertEquals((arg.getValue()).getNumber("from"), 1); - assertEquals((arg.getValue()).getNumber("size"), 20); - assertEquals((arg.getValue()).getString("index"), "nyc-open-data"); - } + assertEquals((arg.getValue()).getString("controller"), "collection"); + assertEquals((arg.getValue()).getString("action"), "list"); + assertEquals((arg.getValue()).getNumber("from"), 1); + assertEquals((arg.getValue()).getNumber("size"), 20); + assertEquals((arg.getValue()).getString("index"), "nyc-open-data"); + } - @Test(expected = NotConnectedException.class) - public void listCollectionShouldThrowWhenNotConnected() throws NotConnectedException, InternalException { - AbstractProtocol fakeNetworkProtocol = Mockito.mock(WebSocket.class); - Mockito.when(fakeNetworkProtocol.getState()).thenAnswer((Answer) invocation -> ProtocolState.CLOSE); + @Test(expected = NotConnectedException.class) + public void listCollectionShouldThrowWhenNotConnected() throws NotConnectedException, InternalException { + AbstractProtocol fakeNetworkProtocol = Mockito.mock(WebSocket.class); + Mockito.when(fakeNetworkProtocol.getState()).thenAnswer((Answer) invocation -> ProtocolState.CLOSE); - Kuzzle kuzzleMock = spy(new Kuzzle(fakeNetworkProtocol)); - String index = "nyc-open-data"; + Kuzzle kuzzleMock = spy(new Kuzzle(fakeNetworkProtocol)); + String index = "nyc-open-data"; - kuzzleMock.getCollectionController().list(index); - } + kuzzleMock.getCollectionController().list(index); + } - @Test - public void getMappingCollectionTest() throws NotConnectedException, InternalException { + @Test + public void getMappingCollectionTest() throws NotConnectedException, InternalException { - Kuzzle kuzzleMock = spy(new Kuzzle(networkProtocol)); - String index = "nyc-open-data"; - String collection = "yellow-taxi"; + Kuzzle kuzzleMock = spy(new Kuzzle(networkProtocol)); + String index = "nyc-open-data"; + String collection = "yellow-taxi"; - ArgumentCaptor arg = ArgumentCaptor.forClass(KuzzleMap.class); + ArgumentCaptor arg = ArgumentCaptor.forClass(KuzzleMap.class); - kuzzleMock.getCollectionController().getMapping(index, collection); - Mockito.verify(kuzzleMock, Mockito.times(1)).query(arg.capture()); + kuzzleMock.getCollectionController().getMapping(index, collection); + Mockito.verify(kuzzleMock, Mockito.times(1)).query(arg.capture()); - assertEquals((arg.getValue()).getString("controller"), "collection"); - assertEquals((arg.getValue()).getString("action"), "getMapping"); - assertEquals((arg.getValue()).getString("index"), "nyc-open-data"); - assertEquals((arg.getValue()).getString("collection"), "yellow-taxi"); + assertEquals((arg.getValue()).getString("controller"), "collection"); + assertEquals((arg.getValue()).getString("action"), "getMapping"); + assertEquals((arg.getValue()).getString("index"), "nyc-open-data"); + assertEquals((arg.getValue()).getString("collection"), "yellow-taxi"); } @Test(expected = NotConnectedException.class) From 942270c427d0c3e11cd132cc39a81bfea202476d Mon Sep 17 00:00:00 2001 From: Yoann Abbes Date: Wed, 1 Apr 2020 09:31:06 +0200 Subject: [PATCH 4/8] fix snippet --- .../controllers/document/m-update/snippets/m-update.test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/3/controllers/document/m-update/snippets/m-update.test.yml b/doc/3/controllers/document/m-update/snippets/m-update.test.yml index 29ccba1f..b14ef60a 100644 --- a/doc/3/controllers/document/m-update/snippets/m-update.test.yml +++ b/doc/3/controllers/document/m-update/snippets/m-update.test.yml @@ -10,5 +10,5 @@ hooks: after: template: print-result-array expected: - - "id=some-id, status=200" - - "id=some-id2, status=200" \ No newline at end of file + - "id=some-id, _version=2, status=200" + - "id=some-id2, _version=2, status=200" \ No newline at end of file From 9692853daa9596fe0a330d083dd6d9ec85de225e Mon Sep 17 00:00:00 2001 From: Yoann Abbes Date: Wed, 15 Apr 2020 14:29:38 +0200 Subject: [PATCH 5/8] get rid listOptions --- doc/3/controllers/collection/list/index.md | 16 ------- doc/3/core-classes/list-options/index.md | 26 ---------- .../API/Controllers/CollectionController.java | 36 +++++--------- .../io/kuzzle/sdk/Options/ListOptions.java | 47 ------------------ .../test/API/Controllers/CollectionTest.java | 48 +++++-------------- 5 files changed, 24 insertions(+), 149 deletions(-) delete mode 100644 doc/3/core-classes/list-options/index.md delete mode 100644 src/main/java/io/kuzzle/sdk/Options/ListOptions.java diff --git a/doc/3/controllers/collection/list/index.md b/doc/3/controllers/collection/list/index.md index 37d19b98..646eaf6f 100644 --- a/doc/3/controllers/collection/list/index.md +++ b/doc/3/controllers/collection/list/index.md @@ -13,10 +13,6 @@ The returned list is sorted in alphanumerical order.
```java -public CompletableFuture> list( - final String index, - final ListOptions options) throws NotConnectedException, InternalException - public CompletableFuture> list( final String index) throws NotConnectedException, InternalException ``` @@ -25,18 +21,6 @@ public CompletableFuture> list( | Arguments | Type | Description | | --------- | ---------------------- | ------------- | | `index` |
String
| Index name | -| `options` |
ListOptions
| List options | - -### options - -A [ListOptions](/sdk/java/3/core-classes/list-options) object. - -The following options can be set: - -| Argument | Type | Description | -| ---------- | -------------------------------- | ---------------------------------------------------------------------------- | -| `from` |
Integer

(`0`) | Offset of the first result | -| `size` |
Integer

(`10`) | Maximum number of returned results | ## Returns diff --git a/doc/3/core-classes/list-options/index.md b/doc/3/core-classes/list-options/index.md deleted file mode 100644 index 6004b7d7..00000000 --- a/doc/3/core-classes/list-options/index.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -code: true -type: page -title: ListOptions -description: ListOptions class documentation -order: 110 ---- - -# ListOptions - -This class represents the options usable with the [`list`](/sdk/java/3/controllers/collection/list) method of the [CollectionController](/sdk/java/3/controllers/collection). - -## Namespace - -You must include the following package: - -```java -import io.kuzzle.sdk.Options.ListOptions; -``` - -## Properties - -| Property | Type | Description | -| ------------------ | -------------------------------------------- | --------------------------------- | -| `from` |
Integer

(`0`) | Offset of the first result | -| `size` |
Integer

(`10`) | Maximum number of returned results | diff --git a/src/main/java/io/kuzzle/sdk/API/Controllers/CollectionController.java b/src/main/java/io/kuzzle/sdk/API/Controllers/CollectionController.java index 6a25c4af..a421627a 100644 --- a/src/main/java/io/kuzzle/sdk/API/Controllers/CollectionController.java +++ b/src/main/java/io/kuzzle/sdk/API/Controllers/CollectionController.java @@ -4,7 +4,6 @@ import io.kuzzle.sdk.Exceptions.InternalException; import io.kuzzle.sdk.Exceptions.NotConnectedException; import io.kuzzle.sdk.Kuzzle; -import io.kuzzle.sdk.Options.ListOptions; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentHashMap; @@ -42,29 +41,24 @@ public CompletableFuture exists( } /** - * List collections. + * Get collection mapping * * @param index - * @param options + * @param collection * @return a CompletableFuture * @throws NotConnectedException * @throws InternalException */ - public CompletableFuture> list( + public CompletableFuture> getMapping( final String index, - final ListOptions options) throws NotConnectedException, InternalException { + final String collection) throws NotConnectedException, InternalException { final KuzzleMap query = new KuzzleMap(); query .put("index", index) + .put("collection", collection) .put("controller", "collection") - .put("action", "list"); - - if (options != null) { - query - .put("from", options.getFrom()) - .put("size", options.getSize()); - } + .put("action", "getMapping"); return kuzzle .query(query) @@ -72,35 +66,27 @@ public CompletableFuture> list( (response) -> (ConcurrentHashMap) response.result); } - public CompletableFuture> list( - final String index) throws NotConnectedException, InternalException { - - return this.list(index, null); - } - /** - * Get collection mapping + * List collections. * * @param index - * @param collection * @return a CompletableFuture * @throws NotConnectedException * @throws InternalException */ - public CompletableFuture> getMapping( - final String index, - final String collection) throws NotConnectedException, InternalException { + public CompletableFuture> list( + final String index) throws NotConnectedException, InternalException { final KuzzleMap query = new KuzzleMap(); query .put("index", index) - .put("collection", collection) .put("controller", "collection") - .put("action", "getMapping"); + .put("action", "list"); return kuzzle .query(query) .thenApplyAsync( (response) -> (ConcurrentHashMap) response.result); } + } diff --git a/src/main/java/io/kuzzle/sdk/Options/ListOptions.java b/src/main/java/io/kuzzle/sdk/Options/ListOptions.java deleted file mode 100644 index 86ff341b..00000000 --- a/src/main/java/io/kuzzle/sdk/Options/ListOptions.java +++ /dev/null @@ -1,47 +0,0 @@ -package io.kuzzle.sdk.Options; - -import java.util.concurrent.ConcurrentHashMap; - -public class ListOptions { - private Integer from; - private Integer size; - /** - * Constructor - */ - public ListOptions() {} - - /** - * Copy constructor - * - * @param options - */ - public ListOptions(ListOptions options) { - this.from = options.getFrom(); - this.size = options.getSize(); - } - - public Integer getFrom() { - return from; - } - - public Integer getSize() { - return size; - } - - public void setFrom(Integer from) { - this.from = from; - } - - public void setSize(Integer size) { - this.size = size; - } - - public ConcurrentHashMap toHashMap() { - ConcurrentHashMap options = new ConcurrentHashMap<>(); - - options.put("from", this.from); - options.put("size", this.size); - - return options; - } -} diff --git a/src/test/java/io/kuzzle/test/API/Controllers/CollectionTest.java b/src/test/java/io/kuzzle/test/API/Controllers/CollectionTest.java index 4aed1312..f1c4a594 100644 --- a/src/test/java/io/kuzzle/test/API/Controllers/CollectionTest.java +++ b/src/test/java/io/kuzzle/test/API/Controllers/CollectionTest.java @@ -4,7 +4,6 @@ import io.kuzzle.sdk.Exceptions.InternalException; import io.kuzzle.sdk.Exceptions.NotConnectedException; import io.kuzzle.sdk.Kuzzle; -import io.kuzzle.sdk.Options.ListOptions; import io.kuzzle.sdk.Protocol.AbstractProtocol; import io.kuzzle.sdk.Protocol.ProtocolState; import io.kuzzle.sdk.Protocol.WebSocket; @@ -52,80 +51,59 @@ public void existsCollectionShouldThrowWhenNotConnected() throws NotConnectedExc } @Test - public void listCollectionTestA() throws NotConnectedException, InternalException { - - Kuzzle kuzzleMock = spy(new Kuzzle(networkProtocol)); - String index = "nyc-open-data"; - - ArgumentCaptor arg = ArgumentCaptor.forClass(KuzzleMap.class); - - kuzzleMock.getCollectionController().list(index); - Mockito.verify(kuzzleMock, Mockito.times(1)).query(arg.capture()); - - assertEquals((arg.getValue()).getString("controller"), "collection"); - assertEquals((arg.getValue()).getString("action"), "list"); - assertEquals((arg.getValue()).getString("index"), "nyc-open-data"); - } - - @Test - public void listCollectionTestB() throws NotConnectedException, InternalException { + public void getMappingCollectionTest() throws NotConnectedException, InternalException { Kuzzle kuzzleMock = spy(new Kuzzle(networkProtocol)); String index = "nyc-open-data"; + String collection = "yellow-taxi"; ArgumentCaptor arg = ArgumentCaptor.forClass(KuzzleMap.class); - ListOptions options = new ListOptions(); - options.setFrom(1); - options.setSize(20); - kuzzleMock.getCollectionController().list(index, options); + kuzzleMock.getCollectionController().getMapping(index, collection); Mockito.verify(kuzzleMock, Mockito.times(1)).query(arg.capture()); assertEquals((arg.getValue()).getString("controller"), "collection"); - assertEquals((arg.getValue()).getString("action"), "list"); - assertEquals((arg.getValue()).getNumber("from"), 1); - assertEquals((arg.getValue()).getNumber("size"), 20); + assertEquals((arg.getValue()).getString("action"), "getMapping"); assertEquals((arg.getValue()).getString("index"), "nyc-open-data"); + assertEquals((arg.getValue()).getString("collection"), "yellow-taxi"); } @Test(expected = NotConnectedException.class) - public void listCollectionShouldThrowWhenNotConnected() throws NotConnectedException, InternalException { + public void getMappingShouldThrowWhenNotConnected() throws NotConnectedException, InternalException { AbstractProtocol fakeNetworkProtocol = Mockito.mock(WebSocket.class); Mockito.when(fakeNetworkProtocol.getState()).thenAnswer((Answer) invocation -> ProtocolState.CLOSE); Kuzzle kuzzleMock = spy(new Kuzzle(fakeNetworkProtocol)); String index = "nyc-open-data"; + String collection = "yellow-taxi"; - kuzzleMock.getCollectionController().list(index); + kuzzleMock.getCollectionController().getMapping(index, collection); } @Test - public void getMappingCollectionTest() throws NotConnectedException, InternalException { + public void listCollectionTest() throws NotConnectedException, InternalException { Kuzzle kuzzleMock = spy(new Kuzzle(networkProtocol)); String index = "nyc-open-data"; - String collection = "yellow-taxi"; ArgumentCaptor arg = ArgumentCaptor.forClass(KuzzleMap.class); - kuzzleMock.getCollectionController().getMapping(index, collection); + kuzzleMock.getCollectionController().list(index); Mockito.verify(kuzzleMock, Mockito.times(1)).query(arg.capture()); assertEquals((arg.getValue()).getString("controller"), "collection"); - assertEquals((arg.getValue()).getString("action"), "getMapping"); + assertEquals((arg.getValue()).getString("action"), "list"); assertEquals((arg.getValue()).getString("index"), "nyc-open-data"); - assertEquals((arg.getValue()).getString("collection"), "yellow-taxi"); } @Test(expected = NotConnectedException.class) - public void getMappingShouldThrowWhenNotConnected() throws NotConnectedException, InternalException { + public void listCollectionShouldThrowWhenNotConnected() throws NotConnectedException, InternalException { AbstractProtocol fakeNetworkProtocol = Mockito.mock(WebSocket.class); Mockito.when(fakeNetworkProtocol.getState()).thenAnswer((Answer) invocation -> ProtocolState.CLOSE); Kuzzle kuzzleMock = spy(new Kuzzle(fakeNetworkProtocol)); String index = "nyc-open-data"; - String collection = "yellow-taxi"; - kuzzleMock.getCollectionController().getMapping(index, collection); + kuzzleMock.getCollectionController().list(index); } } From a19e7e95e87aeb191a0a094145d178debfc45d62 Mon Sep 17 00:00:00 2001 From: Yoann Abbes Date: Wed, 15 Apr 2020 14:30:53 +0200 Subject: [PATCH 6/8] conflict [ci skip] --- .../API/Controllers/CollectionController.java | 45 ++++++++-------- .../test/API/Controllers/CollectionTest.java | 52 +++++++++---------- 2 files changed, 48 insertions(+), 49 deletions(-) diff --git a/src/main/java/io/kuzzle/sdk/API/Controllers/CollectionController.java b/src/main/java/io/kuzzle/sdk/API/Controllers/CollectionController.java index a421627a..3b061a83 100644 --- a/src/main/java/io/kuzzle/sdk/API/Controllers/CollectionController.java +++ b/src/main/java/io/kuzzle/sdk/API/Controllers/CollectionController.java @@ -66,27 +66,26 @@ public CompletableFuture> getMapping( (response) -> (ConcurrentHashMap) response.result); } - /** - * List collections. - * - * @param index - * @return a CompletableFuture - * @throws NotConnectedException - * @throws InternalException - */ - public CompletableFuture> list( - final String index) throws NotConnectedException, InternalException { - - final KuzzleMap query = new KuzzleMap(); - query - .put("index", index) - .put("controller", "collection") - .put("action", "list"); - - return kuzzle - .query(query) - .thenApplyAsync( - (response) -> (ConcurrentHashMap) response.result); - } - +// /** +// * List collections. +// * +// * @param index +// * @return a CompletableFuture +// * @throws NotConnectedException +// * @throws InternalException +// */ +// public CompletableFuture> list( +// final String index) throws NotConnectedException, InternalException { +// +// final KuzzleMap query = new KuzzleMap(); +// query +// .put("index", index) +// .put("controller", "collection") +// .put("action", "list"); +// +// return kuzzle +// .query(query) +// .thenApplyAsync( +// (response) -> (ConcurrentHashMap) response.result); +// } } diff --git a/src/test/java/io/kuzzle/test/API/Controllers/CollectionTest.java b/src/test/java/io/kuzzle/test/API/Controllers/CollectionTest.java index f1c4a594..fa18e67c 100644 --- a/src/test/java/io/kuzzle/test/API/Controllers/CollectionTest.java +++ b/src/test/java/io/kuzzle/test/API/Controllers/CollectionTest.java @@ -80,30 +80,30 @@ public void getMappingShouldThrowWhenNotConnected() throws NotConnectedException kuzzleMock.getCollectionController().getMapping(index, collection); } - @Test - public void listCollectionTest() throws NotConnectedException, InternalException { - - Kuzzle kuzzleMock = spy(new Kuzzle(networkProtocol)); - String index = "nyc-open-data"; - - ArgumentCaptor arg = ArgumentCaptor.forClass(KuzzleMap.class); - - kuzzleMock.getCollectionController().list(index); - Mockito.verify(kuzzleMock, Mockito.times(1)).query(arg.capture()); - - assertEquals((arg.getValue()).getString("controller"), "collection"); - assertEquals((arg.getValue()).getString("action"), "list"); - assertEquals((arg.getValue()).getString("index"), "nyc-open-data"); - } - - @Test(expected = NotConnectedException.class) - public void listCollectionShouldThrowWhenNotConnected() throws NotConnectedException, InternalException { - AbstractProtocol fakeNetworkProtocol = Mockito.mock(WebSocket.class); - Mockito.when(fakeNetworkProtocol.getState()).thenAnswer((Answer) invocation -> ProtocolState.CLOSE); - - Kuzzle kuzzleMock = spy(new Kuzzle(fakeNetworkProtocol)); - String index = "nyc-open-data"; - - kuzzleMock.getCollectionController().list(index); - } +// @Test +// public void listCollectionTest() throws NotConnectedException, InternalException { +// +// Kuzzle kuzzleMock = spy(new Kuzzle(networkProtocol)); +// String index = "nyc-open-data"; +// +// ArgumentCaptor arg = ArgumentCaptor.forClass(KuzzleMap.class); +// +// kuzzleMock.getCollectionController().list(index); +// Mockito.verify(kuzzleMock, Mockito.times(1)).query(arg.capture()); +// +// assertEquals((arg.getValue()).getString("controller"), "collection"); +// assertEquals((arg.getValue()).getString("action"), "list"); +// assertEquals((arg.getValue()).getString("index"), "nyc-open-data"); +// } +// +// @Test(expected = NotConnectedException.class) +// public void listCollectionShouldThrowWhenNotConnected() throws NotConnectedException, InternalException { +// AbstractProtocol fakeNetworkProtocol = Mockito.mock(WebSocket.class); +// Mockito.when(fakeNetworkProtocol.getState()).thenAnswer((Answer) invocation -> ProtocolState.CLOSE); +// +// Kuzzle kuzzleMock = spy(new Kuzzle(fakeNetworkProtocol)); +// String index = "nyc-open-data"; +// +// kuzzleMock.getCollectionController().list(index); +// } } From c6a2e73cfdfd8d87bde9379f002d57ab2fc0ce1f Mon Sep 17 00:00:00 2001 From: Yoann Abbes Date: Wed, 15 Apr 2020 14:58:00 +0200 Subject: [PATCH 7/8] conflict [ci skip] --- .../API/Controllers/CollectionController.java | 46 ++++++++-------- .../test/API/Controllers/CollectionTest.java | 54 +++++++++---------- 2 files changed, 50 insertions(+), 50 deletions(-) diff --git a/src/main/java/io/kuzzle/sdk/API/Controllers/CollectionController.java b/src/main/java/io/kuzzle/sdk/API/Controllers/CollectionController.java index 1445b3fd..9caf8a29 100644 --- a/src/main/java/io/kuzzle/sdk/API/Controllers/CollectionController.java +++ b/src/main/java/io/kuzzle/sdk/API/Controllers/CollectionController.java @@ -137,29 +137,6 @@ public CompletableFuture> getMapping( (response) -> (ConcurrentHashMap) response.result); } - /** - * List collections. - * - * @param index - * @return a CompletableFuture - * @throws NotConnectedException - * @throws InternalException - */ - public CompletableFuture> list( - final String index) throws NotConnectedException, InternalException { - - final KuzzleMap query = new KuzzleMap(); - query - .put("index", index) - .put("controller", "collection") - .put("action", "list"); - - return kuzzle - .query(query) - .thenApplyAsync( - (response) -> (ConcurrentHashMap) response.result); - } - /** * Deletes the validation specifications associated to the given index and collection. * @@ -273,4 +250,27 @@ public CompletableFuture> updateSpecifications .thenApplyAsync( (response) -> (ConcurrentHashMap) response.result); } + +// /** +// * List collections. +// * +// * @param index +// * @return a CompletableFuture +// * @throws NotConnectedException +// * @throws InternalException +// */ +// public CompletableFuture> list( +// final String index) throws NotConnectedException, InternalException { +// +// final KuzzleMap query = new KuzzleMap(); +// query +// .put("index", index) +// .put("controller", "collection") +// .put("action", "list"); +// +// return kuzzle +// .query(query) +// .thenApplyAsync( +// (response) -> (ConcurrentHashMap) response.result); +// } } diff --git a/src/test/java/io/kuzzle/test/API/Controllers/CollectionTest.java b/src/test/java/io/kuzzle/test/API/Controllers/CollectionTest.java index d68a1dd5..4359b02b 100644 --- a/src/test/java/io/kuzzle/test/API/Controllers/CollectionTest.java +++ b/src/test/java/io/kuzzle/test/API/Controllers/CollectionTest.java @@ -178,33 +178,6 @@ public void getMappingShouldThrowWhenNotConnected() throws NotConnectedException kuzzleMock.getCollectionController().getMapping(index, collection); } - @Test - public void listCollectionTest() throws NotConnectedException, InternalException { - - Kuzzle kuzzleMock = spy(new Kuzzle(networkProtocol)); - String index = "nyc-open-data"; - - ArgumentCaptor arg = ArgumentCaptor.forClass(KuzzleMap.class); - - kuzzleMock.getCollectionController().list(index); - Mockito.verify(kuzzleMock, Mockito.times(1)).query(arg.capture()); - - assertEquals((arg.getValue()).getString("controller"), "collection"); - assertEquals((arg.getValue()).getString("action"), "list"); - assertEquals((arg.getValue()).getString("index"), "nyc-open-data"); - } - - @Test(expected = NotConnectedException.class) - public void listCollectionShouldThrowWhenNotConnected() throws NotConnectedException, InternalException { - AbstractProtocol fakeNetworkProtocol = Mockito.mock(WebSocket.class); - Mockito.when(fakeNetworkProtocol.getState()).thenAnswer((Answer) invocation -> ProtocolState.CLOSE); - - Kuzzle kuzzleMock = spy(new Kuzzle(fakeNetworkProtocol)); - String index = "nyc-open-data"; - - kuzzleMock.getCollectionController().list(index); - } - @Test public void deleteSpecificationsCollectionTest() throws NotConnectedException, InternalException { @@ -370,4 +343,31 @@ public void updateSpecificationsCollectionThrowWhenNotConnected() throws NotConn kuzzleMock.getCollectionController().updateSpecifications(index, collection, specifications); } + +// @Test +// public void listCollectionTest() throws NotConnectedException, InternalException { +// +// Kuzzle kuzzleMock = spy(new Kuzzle(networkProtocol)); +// String index = "nyc-open-data"; +// +// ArgumentCaptor arg = ArgumentCaptor.forClass(KuzzleMap.class); +// +// kuzzleMock.getCollectionController().list(index); +// Mockito.verify(kuzzleMock, Mockito.times(1)).query(arg.capture()); +// +// assertEquals((arg.getValue()).getString("controller"), "collection"); +// assertEquals((arg.getValue()).getString("action"), "list"); +// assertEquals((arg.getValue()).getString("index"), "nyc-open-data"); +// } +// +// @Test(expected = NotConnectedException.class) +// public void listCollectionShouldThrowWhenNotConnected() throws NotConnectedException, InternalException { +// AbstractProtocol fakeNetworkProtocol = Mockito.mock(WebSocket.class); +// Mockito.when(fakeNetworkProtocol.getState()).thenAnswer((Answer) invocation -> ProtocolState.CLOSE); +// +// Kuzzle kuzzleMock = spy(new Kuzzle(fakeNetworkProtocol)); +// String index = "nyc-open-data"; +// +// kuzzleMock.getCollectionController().list(index); +// } } From cb7b26e1969ae19e38e539fb5a1133ee47b7b342 Mon Sep 17 00:00:00 2001 From: Yoann Abbes Date: Wed, 15 Apr 2020 14:58:55 +0200 Subject: [PATCH 8/8] conflict --- .../API/Controllers/CollectionController.java | 44 ++++++++-------- .../test/API/Controllers/CollectionTest.java | 52 +++++++++---------- 2 files changed, 48 insertions(+), 48 deletions(-) diff --git a/src/main/java/io/kuzzle/sdk/API/Controllers/CollectionController.java b/src/main/java/io/kuzzle/sdk/API/Controllers/CollectionController.java index e5a9efc6..c5831c54 100644 --- a/src/main/java/io/kuzzle/sdk/API/Controllers/CollectionController.java +++ b/src/main/java/io/kuzzle/sdk/API/Controllers/CollectionController.java @@ -277,26 +277,26 @@ public CompletableFuture> updateSpecifications (response) -> (ConcurrentHashMap) response.result); } -// /** -// * List collections. -// * -// * @param index -// * @return a CompletableFuture -// * @throws NotConnectedException -// * @throws InternalException -// */ -// public CompletableFuture> list( -// final String index) throws NotConnectedException, InternalException { -// -// final KuzzleMap query = new KuzzleMap(); -// query -// .put("index", index) -// .put("controller", "collection") -// .put("action", "list"); -// -// return kuzzle -// .query(query) -// .thenApplyAsync( -// (response) -> (ConcurrentHashMap) response.result); -// } + /** + * List collections. + * + * @param index + * @return a CompletableFuture + * @throws NotConnectedException + * @throws InternalException + */ + public CompletableFuture> list( + final String index) throws NotConnectedException, InternalException { + + final KuzzleMap query = new KuzzleMap(); + query + .put("index", index) + .put("controller", "collection") + .put("action", "list"); + + return kuzzle + .query(query) + .thenApplyAsync( + (response) -> (ConcurrentHashMap) response.result); + } } diff --git a/src/test/java/io/kuzzle/test/API/Controllers/CollectionTest.java b/src/test/java/io/kuzzle/test/API/Controllers/CollectionTest.java index d395dc45..edd2de00 100644 --- a/src/test/java/io/kuzzle/test/API/Controllers/CollectionTest.java +++ b/src/test/java/io/kuzzle/test/API/Controllers/CollectionTest.java @@ -374,30 +374,30 @@ public void updateSpecificationsCollectionThrowWhenNotConnected() throws NotConn kuzzleMock.getCollectionController().updateSpecifications(index, collection, specifications); } -// @Test -// public void listCollectionTest() throws NotConnectedException, InternalException { -// -// Kuzzle kuzzleMock = spy(new Kuzzle(networkProtocol)); -// String index = "nyc-open-data"; -// -// ArgumentCaptor arg = ArgumentCaptor.forClass(KuzzleMap.class); -// -// kuzzleMock.getCollectionController().list(index); -// Mockito.verify(kuzzleMock, Mockito.times(1)).query(arg.capture()); -// -// assertEquals((arg.getValue()).getString("controller"), "collection"); -// assertEquals((arg.getValue()).getString("action"), "list"); -// assertEquals((arg.getValue()).getString("index"), "nyc-open-data"); -// } -// -// @Test(expected = NotConnectedException.class) -// public void listCollectionShouldThrowWhenNotConnected() throws NotConnectedException, InternalException { -// AbstractProtocol fakeNetworkProtocol = Mockito.mock(WebSocket.class); -// Mockito.when(fakeNetworkProtocol.getState()).thenAnswer((Answer) invocation -> ProtocolState.CLOSE); -// -// Kuzzle kuzzleMock = spy(new Kuzzle(fakeNetworkProtocol)); -// String index = "nyc-open-data"; -// -// kuzzleMock.getCollectionController().list(index); -// } + @Test + public void listCollectionTest() throws NotConnectedException, InternalException { + + Kuzzle kuzzleMock = spy(new Kuzzle(networkProtocol)); + String index = "nyc-open-data"; + + ArgumentCaptor arg = ArgumentCaptor.forClass(KuzzleMap.class); + + kuzzleMock.getCollectionController().list(index); + Mockito.verify(kuzzleMock, Mockito.times(1)).query(arg.capture()); + + assertEquals((arg.getValue()).getString("controller"), "collection"); + assertEquals((arg.getValue()).getString("action"), "list"); + assertEquals((arg.getValue()).getString("index"), "nyc-open-data"); + } + + @Test(expected = NotConnectedException.class) + public void listCollectionShouldThrowWhenNotConnected() throws NotConnectedException, InternalException { + AbstractProtocol fakeNetworkProtocol = Mockito.mock(WebSocket.class); + Mockito.when(fakeNetworkProtocol.getState()).thenAnswer((Answer) invocation -> ProtocolState.CLOSE); + + Kuzzle kuzzleMock = spy(new Kuzzle(fakeNetworkProtocol)); + String index = "nyc-open-data"; + + kuzzleMock.getCollectionController().list(index); + } }