diff --git a/src/main/java/org/springframework/data/couchbase/config/AbstractCouchbaseConfiguration.java b/src/main/java/org/springframework/data/couchbase/config/AbstractCouchbaseConfiguration.java index ece54107..8f3f5ca5 100644 --- a/src/main/java/org/springframework/data/couchbase/config/AbstractCouchbaseConfiguration.java +++ b/src/main/java/org/springframework/data/couchbase/config/AbstractCouchbaseConfiguration.java @@ -105,7 +105,7 @@ public abstract class AbstractCouchbaseConfiguration { * * @param logger the logger path to use. */ - private static void setLoggerProperty(final String logger) { + protected static void setLoggerProperty(final String logger) { Properties systemProperties = System.getProperties(); systemProperties.setProperty("net.spy.log.LoggerImpl", logger); System.setProperties(systemProperties); @@ -232,7 +232,7 @@ public abstract class AbstractCouchbaseConfiguration { * @param hosts the list of hosts to convert. * @return the converted URIs. */ - private static List bootstrapUris(List hosts) throws URISyntaxException { + protected static List bootstrapUris(List hosts) throws URISyntaxException { List uris = new ArrayList(); for (String host : hosts) { uris.add(new URI("http://" + host + ":8091/pools")); diff --git a/src/test/java/org/springframework/data/couchbase/BucketCreator.java b/src/test/java/org/springframework/data/couchbase/BucketCreator.java index 8395b910..151d1d9c 100644 --- a/src/test/java/org/springframework/data/couchbase/BucketCreator.java +++ b/src/test/java/org/springframework/data/couchbase/BucketCreator.java @@ -63,7 +63,7 @@ public class BucketCreator implements InitializingBean { private void createBucket() throws Exception { ClusterManager bucketManager = - new ClusterManager(Arrays.asList(new URI(hostUri)), adminUser, adminPass); + new ClusterManager(Arrays.asList(URI.create("http://" + hostUri + ":8091")), adminUser, adminPass); bucketManager.createDefaultBucket(BucketType.COUCHBASE, 128, 0, true); logger.info("Finished creating bucket, sleeping for warmup."); diff --git a/src/test/java/org/springframework/data/couchbase/TestApplicationConfig.java b/src/test/java/org/springframework/data/couchbase/TestApplicationConfig.java index e280a632..7ce4257c 100644 --- a/src/test/java/org/springframework/data/couchbase/TestApplicationConfig.java +++ b/src/test/java/org/springframework/data/couchbase/TestApplicationConfig.java @@ -17,6 +17,7 @@ package org.springframework.data.couchbase; import com.couchbase.client.CouchbaseClient; +import com.couchbase.client.CouchbaseConnectionFactoryBuilder; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -26,7 +27,6 @@ import org.springframework.data.couchbase.config.AbstractCouchbaseConfiguration; import org.springframework.data.couchbase.core.CouchbaseTemplate; import org.springframework.data.couchbase.core.WriteResultChecking; -import java.net.URI; import java.util.Arrays; import java.util.List; @@ -73,7 +73,16 @@ public class TestApplicationConfig extends AbstractCouchbaseConfiguration { @Override @DependsOn("bucketCreator") public CouchbaseClient couchbaseClient() throws Exception { - return super.couchbaseClient(); + setLoggerProperty(couchbaseLogger()); + + CouchbaseConnectionFactoryBuilder builder = new CouchbaseConnectionFactoryBuilder(); + builder.setOpTimeout(10000); // using a higher timeout for tests to reduce flakiness + + return new CouchbaseClient(builder.buildCouchbaseConnection( + bootstrapUris(bootstrapHosts()), + getBucketName(), + getBucketPassword() + )); } @Override diff --git a/src/test/java/org/springframework/data/couchbase/core/CouchbaseTemplateTests.java b/src/test/java/org/springframework/data/couchbase/core/CouchbaseTemplateTests.java index 3e75f454..0f3f5aad 100644 --- a/src/test/java/org/springframework/data/couchbase/core/CouchbaseTemplateTests.java +++ b/src/test/java/org/springframework/data/couchbase/core/CouchbaseTemplateTests.java @@ -58,17 +58,14 @@ import static org.junit.Assert.assertTrue; @TestExecutionListeners(CouchbaseTemplateViewListener.class) public class CouchbaseTemplateTests { - /** - * JSON object mapper to verify results. - */ - private static final ObjectMapper MAPPER = new ObjectMapper(); - @Autowired private CouchbaseClient client; @Autowired private CouchbaseTemplate template; + private static final ObjectMapper MAPPER = new ObjectMapper(); + @Test public void saveSimpleEntityCorrectly() throws Exception { String id = "beers:awesome-stout"; @@ -78,12 +75,12 @@ public class CouchbaseTemplateTests { template.save(beer); String result = (String) client.get(id); - assertNotNull(result); - Map converted = MAPPER.readValue(result, new TypeReference>(){}); - assertEquals("org.springframework.data.couchbase.core.Beer", converted.get("_class")); - assertEquals(false, converted.get("is_active")); - assertEquals("The Awesome Stout", converted.get("name")); + Map resultConv = MAPPER.readValue(result, new TypeReference>() {}); + + assertEquals("org.springframework.data.couchbase.core.Beer", resultConv.get("_class")); + assertEquals(false, resultConv.get("is_active")); + assertEquals("The Awesome Stout", resultConv.get("name")); } @Test @@ -104,17 +101,16 @@ public class CouchbaseTemplateTests { SimplePerson doc = new SimplePerson(id, "Mr. A"); template.insert(doc); String result = (String) client.get(id); - Map converted = MAPPER.readValue(result, new TypeReference>(){}); - assertEquals("org.springframework.data.couchbase.core.CouchbaseTemplateTests$SimplePerson", converted.get("_class")); - assertEquals("Mr. A", converted.get("name")); + + Map resultConv = MAPPER.readValue(result, new TypeReference>() {}); + assertEquals("Mr. A", resultConv.get("name")); doc = new SimplePerson(id, "Mr. B"); template.insert(doc); result = (String) client.get(id); - converted = MAPPER.readValue(result, new TypeReference>(){}); - assertEquals("org.springframework.data.couchbase.core.CouchbaseTemplateTests$SimplePerson", converted.get("_class")); - assertEquals("Mr. A", converted.get("name")); + resultConv = MAPPER.readValue(result, new TypeReference>() {}); + assertEquals("Mr. A", resultConv.get("name")); } @@ -159,6 +155,7 @@ public class CouchbaseTemplateTests { ComplexPerson complex = new ComplexPerson(id, names, votes, info1, info2); template.save(complex); + assertNotNull(client.get(id)); ComplexPerson response = template.findById(id, ComplexPerson.class); assertEquals(names, response.getFirstnames()); diff --git a/src/test/java/org/springframework/data/couchbase/core/mapping/MappingCouchbaseConverterTests.java b/src/test/java/org/springframework/data/couchbase/core/mapping/MappingCouchbaseConverterTests.java index eec1ef81..9c5dd831 100644 --- a/src/test/java/org/springframework/data/couchbase/core/mapping/MappingCouchbaseConverterTests.java +++ b/src/test/java/org/springframework/data/couchbase/core/mapping/MappingCouchbaseConverterTests.java @@ -27,9 +27,23 @@ import org.springframework.data.mapping.model.MappingException; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -import java.util.*; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Collection; +import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TreeMap; +import java.util.TreeSet; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; /** * @author Michael Nitschinger @@ -71,16 +85,14 @@ public class MappingCouchbaseConverterTests { } @Test - public void writesString() { + public void writesString() throws Exception { CouchbaseDocument converted = new CouchbaseDocument(); StringEntity entity = new StringEntity("foobar"); - Map expected = new HashMap(); - expected.put("_class", entity.getClass().getName()); - expected.put("attr0", "foobar"); - converter.write(entity, converted); - assertEquals(expected.toString(), converted.export().toString()); + Map result = converted.export(); + assertEquals(entity.getClass().getName(), result.get("_class")); + assertEquals("foobar", result.get("attr0")); assertEquals(BaseEntity.ID, converted.getId()); } @@ -99,12 +111,10 @@ public class MappingCouchbaseConverterTests { CouchbaseDocument converted = new CouchbaseDocument(); NumberEntity entity = new NumberEntity(42); - Map expected = new HashMap(); - expected.put("_class", entity.getClass().getName()); - expected.put("attr0", 42); - converter.write(entity, converted); - assertEquals(expected.toString(), converted.export().toString()); + Map result = converted.export(); + assertEquals(entity.getClass().getName(), result.get("_class")); + assertEquals(42L, result.get("attr0")); assertEquals(BaseEntity.ID, converted.getId()); } @@ -123,12 +133,10 @@ public class MappingCouchbaseConverterTests { CouchbaseDocument converted = new CouchbaseDocument(); BooleanEntity entity = new BooleanEntity(true); - Map expected = new HashMap(); - expected.put("_class", entity.getClass().getName()); - expected.put("attr0", true); - converter.write(entity, converted); - assertEquals(expected.toString(), converted.export().toString()); + Map result = converted.export(); + assertEquals(entity.getClass().getName(), result.get("_class")); + assertEquals(true, result.get("attr0")); assertEquals("mockid", converted.getId()); } @@ -147,15 +155,13 @@ public class MappingCouchbaseConverterTests { CouchbaseDocument converted = new CouchbaseDocument(); MixedSimpleEntity entity = new MixedSimpleEntity("a", 5, -0.3, true); - Map expected = new HashMap(); - expected.put("_class", entity.getClass().getName()); - expected.put("attr0", "a"); - expected.put("attr1", 5); - expected.put("attr2", -0.3); - expected.put("attr3", true); - converter.write(entity, converted); - assertEquals(expected.toString(), converted.export().toString()); + Map result = converted.export(); + assertEquals(entity.getClass().getName(), result.get("_class")); + assertEquals("a", result.get("attr0")); + assertEquals(5, result.get("attr1")); + assertEquals(-0.3, result.get("attr2")); + assertEquals(true, result.get("attr3")); } @Test @@ -189,13 +195,10 @@ public class MappingCouchbaseConverterTests { CouchbaseDocument converted = new CouchbaseDocument(); UninitializedEntity entity = new UninitializedEntity(); - Map expected = new HashMap(); - expected.put("_class", entity.getClass().getName()); - expected.put("attr1", 0); - converter.write(entity, converted); - assertEquals(expected.get("_class"), converted.get("_class")); - assertEquals(expected.get("attr1"), converted.get("attr1")); + Map result = converted.export(); + assertEquals(entity.getClass().getName(), result.get("_class")); + assertEquals(0, result.get("attr1")); } @Test @@ -226,16 +229,12 @@ public class MappingCouchbaseConverterTests { MapEntity entity = new MapEntity(attr0, attr1, attr2, attr3); - Map expected = new HashMap(); - expected.put("_class", entity.getClass().getName()); - expected.put("attr0", attr0); - expected.put("attr1", attr1); - expected.put("attr2", attr2); - expected.put("attr3", attr3); - converter.write(entity, converted); - assertEquals(expected.toString(), converted.export().toString()); - + Map result = converted.export(); + assertEquals(attr0, result.get("attr0")); + assertEquals(attr1, result.get("attr1")); + assertEquals(attr2, result.get("attr2")); + assertEquals(attr3, result.get("attr3")); CouchbaseDocument cattr0 = new CouchbaseDocument(); cattr0.put("foo", "bar"); @@ -275,14 +274,11 @@ public class MappingCouchbaseConverterTests { ListEntity entity = new ListEntity(attr0, attr1, attr2); - Map expected = new HashMap(); - expected.put("_class", entity.getClass().getName()); - expected.put("attr0", attr0); - expected.put("attr1", attr1); - expected.put("attr2", attr2); - converter.write(entity, converted); - assertEquals(expected.toString(), converted.export().toString()); + Map result = converted.export(); + assertEquals(attr0, result.get("attr0")); + assertEquals(attr1, result.get("attr1")); + assertEquals(attr2, result.get("attr2")); CouchbaseDocument source = new CouchbaseDocument(); source.put("_class", ListEntity.class.getName()); @@ -315,14 +311,12 @@ public class MappingCouchbaseConverterTests { attr2.add(attr0); SetEntity entity = new SetEntity(attr0, attr1, attr2); - Map expected = new HashMap(); - expected.put("_class", entity.getClass().getName()); - expected.put("attr0", attr0); - expected.put("attr1", attr1); - expected.put("attr2", attr2); converter.write(entity, converted); - assertEquals(expected.toString(), converted.export().toString()); + Map result = converted.export(); + assertEquals(attr0.size(), ((Collection) result.get("attr0")).size()); + assertEquals(attr1.size(), ((Collection) result.get("attr1")).size()); + assertEquals(attr2.size(), ((Collection) result.get("attr2")).size()); CouchbaseList cattr0 = new CouchbaseList(); cattr0.put("foo"); @@ -356,19 +350,12 @@ public class MappingCouchbaseConverterTests { ValueEntity entity = new ValueEntity(addy, listOfEmails); converter.write(entity, converted); + Map result = converted.export(); - Map expected = new HashMap(); - expected.put("_class", entity.getClass().getName()); - expected.put("email", new HashMap() {{ + assertEquals(entity.getClass().getName(), result.get("_class")); + assertEquals(new HashMap() {{ put("emailAddr", email); - }}); - expected.put("listOfEmails", new ArrayList() {{ - add(new HashMap() {{ - put("emailAddr", email); - }}); - }}); - - assertEquals(expected.toString(), converted.export().toString()); + }}, result.get("email")); CouchbaseDocument source = new CouchbaseDocument(); source.put("_class", ValueEntity.class.getName());