From ec9081ebc29c00d6e92409f98d97e4ab95315aa6 Mon Sep 17 00:00:00 2001 From: Michael Reiche <48999328+mikereiche@users.noreply.github.com> Date: Fri, 17 Jun 2022 13:51:06 -0700 Subject: [PATCH] Move tests needing server to IntegrationTests. Closes #1472. --- ...est.java => FluxTestIntegrationTests.java} | 6 +- ...ringN1qlQueryCreatorIntegrationTests.java} | 68 ++++++++++++++- .../StringN1qlQueryCreatorMockedTests.java | 84 ++----------------- 3 files changed, 74 insertions(+), 84 deletions(-) rename src/test/java/org/springframework/data/couchbase/domain/{FluxTest.java => FluxTestIntegrationTests.java} (98%) rename src/test/java/org/springframework/data/couchbase/repository/query/{StringN1qlQueryCreatorTests.java => StringN1qlQueryCreatorIntegrationTests.java} (70%) diff --git a/src/test/java/org/springframework/data/couchbase/domain/FluxTest.java b/src/test/java/org/springframework/data/couchbase/domain/FluxTestIntegrationTests.java similarity index 98% rename from src/test/java/org/springframework/data/couchbase/domain/FluxTest.java rename to src/test/java/org/springframework/data/couchbase/domain/FluxTestIntegrationTests.java index ee0bb1cc..16722a6e 100644 --- a/src/test/java/org/springframework/data/couchbase/domain/FluxTest.java +++ b/src/test/java/org/springframework/data/couchbase/domain/FluxTestIntegrationTests.java @@ -66,9 +66,9 @@ import com.couchbase.client.java.query.QueryScanConsistency; /** * @author Michael Reiche */ -@SpringJUnitConfig(FluxTest.Config.class) +@SpringJUnitConfig(FluxTestIntegrationTests.Config.class) @IgnoreWhen(clusterTypes = ClusterType.MOCKED) -public class FluxTest extends JavaIntegrationTests { +public class FluxTestIntegrationTests extends JavaIntegrationTests { @BeforeAll public static void beforeEverything() { @@ -76,7 +76,7 @@ public class FluxTest extends JavaIntegrationTests { * The couchbaseTemplate inherited from JavaIntegrationTests uses org.springframework.data.couchbase.domain.Config * It has typeName = 't' (instead of _class). Don't use it. */ - ApplicationContext ac = new AnnotationConfigApplicationContext(FluxTest.Config.class); + ApplicationContext ac = new AnnotationConfigApplicationContext(FluxTestIntegrationTests.Config.class); couchbaseTemplate = (CouchbaseTemplate) ac.getBean(BeanNames.COUCHBASE_TEMPLATE); reactiveCouchbaseTemplate = (ReactiveCouchbaseTemplate) ac.getBean(BeanNames.REACTIVE_COUCHBASE_TEMPLATE); collection = couchbaseTemplate.getCouchbaseClientFactory().getBucket().defaultCollection(); diff --git a/src/test/java/org/springframework/data/couchbase/repository/query/StringN1qlQueryCreatorTests.java b/src/test/java/org/springframework/data/couchbase/repository/query/StringN1qlQueryCreatorIntegrationTests.java similarity index 70% rename from src/test/java/org/springframework/data/couchbase/repository/query/StringN1qlQueryCreatorTests.java rename to src/test/java/org/springframework/data/couchbase/repository/query/StringN1qlQueryCreatorIntegrationTests.java index 86b2ce74..dbe26976 100644 --- a/src/test/java/org/springframework/data/couchbase/repository/query/StringN1qlQueryCreatorTests.java +++ b/src/test/java/org/springframework/data/couchbase/repository/query/StringN1qlQueryCreatorIntegrationTests.java @@ -39,6 +39,8 @@ import org.springframework.data.couchbase.core.mapping.CouchbasePersistentProper import org.springframework.data.couchbase.core.query.Query; import org.springframework.data.couchbase.domain.Airline; import org.springframework.data.couchbase.domain.AirlineRepository; +import org.springframework.data.couchbase.domain.User; +import org.springframework.data.couchbase.domain.UserRepository; import org.springframework.data.couchbase.repository.config.EnableCouchbaseRepositories; import org.springframework.data.couchbase.util.Capabilities; import org.springframework.data.couchbase.util.ClusterAwareIntegrationTests; @@ -66,9 +68,9 @@ import com.couchbase.client.java.query.QueryScanConsistency; * @author Michael Nitschinger * @author Michael Reiche */ -@SpringJUnitConfig(StringN1qlQueryCreatorTests.Config.class) +@SpringJUnitConfig(StringN1qlQueryCreatorIntegrationTests.Config.class) @IgnoreWhen(clusterTypes = ClusterType.MOCKED) -class StringN1qlQueryCreatorTests extends ClusterAwareIntegrationTests { +class StringN1qlQueryCreatorIntegrationTests extends ClusterAwareIntegrationTests { MappingContext, CouchbasePersistentProperty> context; CouchbaseConverter converter; @@ -149,6 +151,68 @@ class StringN1qlQueryCreatorTests extends ClusterAwareIntegrationTests { } } + + @Test + void createsQueryCorrectly() throws Exception { + String input = "getByFirstnameAndLastname"; + Method method = UserRepository.class.getMethod(input, String.class, String.class); + + CouchbaseQueryMethod queryMethod = new CouchbaseQueryMethod(method, + new DefaultRepositoryMetadata(UserRepository.class), new SpelAwareProxyProjectionFactory(), + converter.getMappingContext()); + + StringN1qlQueryCreator creator = new StringN1qlQueryCreator(getAccessor(getParameters(method), "Oliver", "Twist"), + queryMethod, converter, config().bucketname(), new SpelExpressionParser(), QueryMethodEvaluationContextProvider.DEFAULT, namedQueries); + + Query query = creator.createQuery(); + assertEquals( + "SELECT `_class`, META(`" + bucketName() + + "`).`cas` AS __cas, `createdBy`, `createdDate`, `lastModifiedBy`, `lastModifiedDate`, META(`" + + bucketName() + "`).`id` AS __id, `firstname`, `lastname`, `subtype` FROM `" + bucketName() + + "` where `_class` = \"abstractuser\" and firstname = $1 and lastname = $2", + query.toN1qlSelectString(couchbaseTemplate.reactive(), null, User.class, User.class, false, null, null)); + } + + @Test + void createsQueryCorrectly2() throws Exception { + String input = "getByFirstnameOrLastname"; + Method method = UserRepository.class.getMethod(input, String.class, String.class); + + CouchbaseQueryMethod queryMethod = new CouchbaseQueryMethod(method, + new DefaultRepositoryMetadata(UserRepository.class), new SpelAwareProxyProjectionFactory(), + converter.getMappingContext()); + + StringN1qlQueryCreator creator = new StringN1qlQueryCreator(getAccessor(getParameters(method), "Oliver", "Twist"), + queryMethod, converter, config().bucketname(), new SpelExpressionParser(), QueryMethodEvaluationContextProvider.DEFAULT, namedQueries); + + Query query = creator.createQuery(); + assertEquals( + "SELECT `_class`, META(`" + bucketName() + + "`).`cas` AS __cas, `createdBy`, `createdDate`, `lastModifiedBy`, `lastModifiedDate`, META(`" + + bucketName() + "`).`id` AS __id, `firstname`, `lastname`, `subtype` FROM `" + bucketName() + + "` where `_class` = \"abstractuser\" and (firstname = $first or lastname = $last)", + query.toN1qlSelectString(couchbaseTemplate.reactive(), null, User.class, User.class, false, null, null)); + } + + @Test + void spelTests() throws Exception { + String input = "spelTests"; + Method method = UserRepository.class.getMethod(input); + CouchbaseQueryMethod queryMethod = new CouchbaseQueryMethod(method, + new DefaultRepositoryMetadata(UserRepository.class), new SpelAwareProxyProjectionFactory(), + converter.getMappingContext()); + + StringN1qlQueryCreator creator = new StringN1qlQueryCreator(getAccessor(getParameters(method)), queryMethod, + converter, config().bucketname(), new SpelExpressionParser(), QueryMethodEvaluationContextProvider.DEFAULT, namedQueries); + + Query query = creator.createQuery(); + + String s = query.toN1qlSelectString(couchbaseTemplate.reactive(), "myCollection", User.class, null, + false, null, null); + System.out.println("query: " + s); + + } + private ParameterAccessor getAccessor(Parameters params, Object... values) { return new ParametersParameterAccessor(params, values); } diff --git a/src/test/java/org/springframework/data/couchbase/repository/query/StringN1qlQueryCreatorMockedTests.java b/src/test/java/org/springframework/data/couchbase/repository/query/StringN1qlQueryCreatorMockedTests.java index 3198e48d..4412428c 100644 --- a/src/test/java/org/springframework/data/couchbase/repository/query/StringN1qlQueryCreatorMockedTests.java +++ b/src/test/java/org/springframework/data/couchbase/repository/query/StringN1qlQueryCreatorMockedTests.java @@ -59,57 +59,16 @@ import com.couchbase.client.java.env.ClusterEnvironment; * @author Michael Nitschinger * @author Michael Reiche */ -class StringN1qlQueryCreatorMockedTests extends ClusterAwareIntegrationTests { +class StringN1qlQueryCreatorMockedTests { MappingContext, CouchbasePersistentProperty> context; CouchbaseConverter converter; - CouchbaseTemplate couchbaseTemplate; static NamedQueries namedQueries = new PropertiesBasedNamedQueries(new Properties()); @BeforeEach public void beforeEach() { context = new CouchbaseMappingContext(); converter = new MappingCouchbaseConverter(context); - ApplicationContext ac = new AnnotationConfigApplicationContext(Config.class); - couchbaseTemplate = (CouchbaseTemplate) ac.getBean(COUCHBASE_TEMPLATE); - } - - @Test - void createsQueryCorrectly() throws Exception { - String input = "getByFirstnameAndLastname"; - Method method = UserRepository.class.getMethod(input, String.class, String.class); - - CouchbaseQueryMethod queryMethod = new CouchbaseQueryMethod(method, - new DefaultRepositoryMetadata(UserRepository.class), new SpelAwareProxyProjectionFactory(), - converter.getMappingContext()); - - StringN1qlQueryCreator creator = new StringN1qlQueryCreator(getAccessor(getParameters(method), "Oliver", "Twist"), - queryMethod, converter, "travel-sample", new SpelExpressionParser(), - QueryMethodEvaluationContextProvider.DEFAULT, namedQueries); - - Query query = creator.createQuery(); - assertEquals( - "SELECT `_class`, META(`travel-sample`).`cas` AS __cas, `createdBy`, `createdDate`, `lastModifiedBy`, `lastModifiedDate`, META(`travel-sample`).`id` AS __id, `firstname`, `lastname`, `subtype` FROM `travel-sample` where `_class` = \"abstractuser\" and firstname = $1 and lastname = $2", - query.toN1qlSelectString(couchbaseTemplate.reactive(), User.class, false)); - } - - @Test - void createsQueryCorrectly2() throws Exception { - String input = "getByFirstnameOrLastname"; - Method method = UserRepository.class.getMethod(input, String.class, String.class); - - CouchbaseQueryMethod queryMethod = new CouchbaseQueryMethod(method, - new DefaultRepositoryMetadata(UserRepository.class), new SpelAwareProxyProjectionFactory(), - converter.getMappingContext()); - - StringN1qlQueryCreator creator = new StringN1qlQueryCreator(getAccessor(getParameters(method), "Oliver", "Twist"), - queryMethod, converter, "travel-sample", new SpelExpressionParser(), - QueryMethodEvaluationContextProvider.DEFAULT, namedQueries); - - Query query = creator.createQuery(); - assertEquals( - "SELECT `_class`, META(`travel-sample`).`cas` AS __cas, `createdBy`, `createdDate`, `lastModifiedBy`, `lastModifiedDate`, META(`travel-sample`).`id` AS __id, `firstname`, `lastname`, `subtype` FROM `travel-sample` where `_class` = \"abstractuser\" and (firstname = $first or lastname = $last)", - query.toN1qlSelectString(couchbaseTemplate.reactive(), User.class, false)); } @Test @@ -123,8 +82,8 @@ class StringN1qlQueryCreatorMockedTests extends ClusterAwareIntegrationTests { try { StringN1qlQueryCreator creator = new StringN1qlQueryCreator(getAccessor(getParameters(method), "Oliver"), - queryMethod, converter, "travel-sample", new SpelExpressionParser(), - QueryMethodEvaluationContextProvider.DEFAULT, namedQueries); + queryMethod, converter, "travel-sample", new SpelExpressionParser(), QueryMethodEvaluationContextProvider.DEFAULT, + namedQueries); } catch (IllegalArgumentException e) { return; } @@ -141,8 +100,8 @@ class StringN1qlQueryCreatorMockedTests extends ClusterAwareIntegrationTests { try { StringN1qlQueryCreator creator = new StringN1qlQueryCreator(getAccessor(getParameters(method), "Oliver"), - queryMethod, converter, "travel-sample", new SpelExpressionParser(), - QueryMethodEvaluationContextProvider.DEFAULT, namedQueries); + queryMethod, converter, "travel-sample", new SpelExpressionParser(), QueryMethodEvaluationContextProvider.DEFAULT, + namedQueries); } catch (IllegalArgumentException e) { return; } @@ -157,37 +116,4 @@ class StringN1qlQueryCreatorMockedTests extends ClusterAwareIntegrationTests { return new DefaultParameters(method); } - @Configuration - @EnableCouchbaseRepositories("org.springframework.data.couchbase") - static class Config extends AbstractCouchbaseConfiguration { - - @Override - public String getConnectionString() { - return connectionString(); - } - - @Override - public String getUserName() { - return config().adminUsername(); - } - - @Override - public String getPassword() { - return config().adminPassword(); - } - - @Override - public String getBucketName() { - return bucketName(); - } - - @Override - protected void configureEnvironment(ClusterEnvironment.Builder builder) { - if (config().isUsingCloud()) { - builder.securityConfig( - SecurityConfig.builder().trustManagerFactory(InsecureTrustManagerFactory.INSTANCE).enableTls(true)); - } - } - - } }