From 7ead531f4adf828a876348ac69a0df391b77bc14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Basl=C3=A9?= Date: Mon, 29 Jun 2015 17:00:08 +0200 Subject: [PATCH] integration test for N1QL query, prepare one for find --- .../core/CouchbaseTemplateTests.java | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/src/integration/java/org/springframework/data/couchbase/core/CouchbaseTemplateTests.java b/src/integration/java/org/springframework/data/couchbase/core/CouchbaseTemplateTests.java index 1d2515df..67624d4f 100644 --- a/src/integration/java/org/springframework/data/couchbase/core/CouchbaseTemplateTests.java +++ b/src/integration/java/org/springframework/data/couchbase/core/CouchbaseTemplateTests.java @@ -16,6 +16,8 @@ package org.springframework.data.couchbase.core; +import static com.couchbase.client.java.query.Select.select; +import static com.couchbase.client.java.query.dsl.Expression.x; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.IsEqual.equalTo; import static org.junit.Assert.*; @@ -30,12 +32,16 @@ import java.util.Map; import com.couchbase.client.java.Bucket; import com.couchbase.client.java.document.RawJsonDocument; import com.couchbase.client.java.error.DocumentDoesNotExistException; +import com.couchbase.client.java.query.Query; +import com.couchbase.client.java.query.QueryResult; +import com.couchbase.client.java.query.dsl.Expression; import com.couchbase.client.java.view.Stale; import com.couchbase.client.java.view.ViewQuery; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.Test; import org.junit.runner.RunWith; +import sun.reflect.generics.reflectiveObjects.NotImplementedException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.OptimisticLockingFailureException; @@ -211,6 +217,28 @@ public class CouchbaseTemplateTests { } } + @Test + public void shouldQueryRaw() { + Query query = Query.simple(select("name").from(Expression.i(client.name())) + .where(x("name").isNotMissing())); + + QueryResult queryResult = template.queryN1QL(query); + assertNotNull(queryResult); + assertTrue(queryResult.errors().toString(), queryResult.finalSuccess()); + assertFalse(queryResult.allRows().isEmpty()); + } + + @Test(expected = NotImplementedException.class) //TODO remove when implemented + public void shouldQueryWithMapping() { + Query query = Query.simple(select("name").from(Expression.i(client.name())) + .where(x("name").isNotMissing())); + + List fragments = template.findByN1QL(query, BeerFragment.class); + assertNotNull(fragments); + assertFalse(fragments.isEmpty()); + //TODO assert the content of the fragments, etc... + } + @Test public void shouldDeserialiseLongs() { final long time = new Date().getTime(); @@ -552,4 +580,15 @@ public class CouchbaseTemplateTests { } } + static class BeerFragment { + private String name; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + } }