Search in sources :

Example 21 with Filter

use of org.eclipse.hono.service.management.Filter in project hono by eclipse.

the class AbstractDeviceManagementSearchDevicesTest method testSearchDevicesWithWildCardToMatchMultipleCharacters.

/**
 * Verifies that a request to search devices with filters containing the wildcard character '*'
 * succeeds and matching devices are found.
 *
 * @param ctx The vert.x test context.
 */
@Test
default void testSearchDevicesWithWildCardToMatchMultipleCharacters(final VertxTestContext ctx) {
    final String tenantId = DeviceRegistryUtils.getUniqueIdentifier();
    final int pageSize = 10;
    final int pageOffset = 0;
    final Filter filter1 = new Filter("/id", "test*-*");
    final Filter filter2 = new Filter("/ext/value", "test$1*e");
    final Sort sortOption = new Sort("/id");
    createDevices(tenantId, Map.of("testDevice", new Device(), "testDevice-1", new Device().setExtensions(Map.of("value", "test$1Value")), "testDevice-2", new Device().setExtensions(Map.of("value", "test$2Value")))).compose(ok -> getDeviceManagementService().searchDevices(tenantId, pageSize, pageOffset, List.of(filter1, filter2), List.of(sortOption), NoopSpan.INSTANCE).onComplete(ctx.succeeding(s -> {
        ctx.verify(() -> {
            assertThat(s.getStatus()).isEqualTo(HttpURLConnection.HTTP_OK);
            final SearchResult<DeviceWithId> searchResult = s.getPayload();
            assertThat(searchResult.getTotal()).isEqualTo(1);
            assertThat(searchResult.getResult()).hasSize(1);
            assertThat(searchResult.getResult().get(0).getId()).isEqualTo("testDevice-1");
        });
        ctx.completeNow();
    })));
}
Also used : Filter(org.eclipse.hono.service.management.Filter) Sort(org.eclipse.hono.service.management.Sort) Test(org.junit.jupiter.api.Test)

Aggregations

Filter (org.eclipse.hono.service.management.Filter)21 Sort (org.eclipse.hono.service.management.Sort)20 Future (io.vertx.core.Future)17 HttpURLConnection (java.net.HttpURLConnection)17 List (java.util.List)17 Optional (java.util.Optional)17 Test (org.junit.jupiter.api.Test)17 SearchResult (org.eclipse.hono.service.management.SearchResult)14 Truth.assertThat (com.google.common.truth.Truth.assertThat)13 NoopSpan (io.opentracing.noop.NoopSpan)12 VertxTestContext (io.vertx.junit5.VertxTestContext)12 Map (java.util.Map)12 DeviceRegistryUtils (org.eclipse.hono.deviceregistry.util.DeviceRegistryUtils)12 CompositeFuture (io.vertx.core.CompositeFuture)10 Collectors (java.util.stream.Collectors)10 ServiceInvocationException (org.eclipse.hono.client.ServiceInvocationException)8 Adapter (org.eclipse.hono.util.Adapter)8 Span (io.opentracing.Span)5 JsonObject (io.vertx.core.json.JsonObject)5 RegistryManagementConstants (org.eclipse.hono.util.RegistryManagementConstants)5