From 9f35068629988cd998ee0d7f827f8d8ef0de27b2 Mon Sep 17 00:00:00 2001 From: Michael Nitschinger Date: Fri, 5 Sep 2014 08:25:13 +0200 Subject: [PATCH] DATACOUCH-108 - Fix nondeterministic JSON response assertions. --- .../core/CouchbaseTemplateTests.java | 38 +++++++++++-------- .../MappingCouchbaseConverterTests.java | 3 +- 2 files changed, 25 insertions(+), 16 deletions(-) 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 472009f9..3e75f454 100644 --- a/src/test/java/org/springframework/data/couchbase/core/CouchbaseTemplateTests.java +++ b/src/test/java/org/springframework/data/couchbase/core/CouchbaseTemplateTests.java @@ -19,6 +19,8 @@ package org.springframework.data.couchbase.core; import com.couchbase.client.CouchbaseClient; import com.couchbase.client.protocol.views.Query; import com.couchbase.client.protocol.views.Stale; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; import net.spy.memcached.CASValue; import org.junit.Test; import org.junit.runner.RunWith; @@ -42,7 +44,11 @@ import java.util.Map; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.IsEqual.equalTo; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; /** * @author Michael Nitschinger @@ -52,6 +58,11 @@ import static org.junit.Assert.*; @TestExecutionListeners(CouchbaseTemplateViewListener.class) public class CouchbaseTemplateTests { + /** + * JSON object mapper to verify results. + */ + private static final ObjectMapper MAPPER = new ObjectMapper(); + @Autowired private CouchbaseClient client; @@ -68,10 +79,11 @@ public class CouchbaseTemplateTests { template.save(beer); String result = (String) client.get(id); - String expected = "{\"_class\":\"org.springframework.data.couchbase.core.Beer\"" - + ",\"is_active\":false,\"name\":\"The Awesome Stout\"}"; assertNotNull(result); - assertEquals(expected, 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")); } @Test @@ -89,18 +101,20 @@ public class CouchbaseTemplateTests { String id = "double-insert-test"; client.delete(id).get(); - String expected = "{\"_class\":\"org.springframework.data.couchbase.core." - + "CouchbaseTemplateTests$SimplePerson\",\"name\":\"Mr. A\"}"; - SimplePerson doc = new SimplePerson(id, "Mr. A"); template.insert(doc); String result = (String) client.get(id); - assertEquals(expected, result); + Map converted = MAPPER.readValue(result, new TypeReference>(){}); + assertEquals("org.springframework.data.couchbase.core.CouchbaseTemplateTests$SimplePerson", converted.get("_class")); + assertEquals("Mr. A", converted.get("name")); doc = new SimplePerson(id, "Mr. B"); template.insert(doc); result = (String) client.get(id); - assertEquals(expected, result); + + converted = MAPPER.readValue(result, new TypeReference>(){}); + assertEquals("org.springframework.data.couchbase.core.CouchbaseTemplateTests$SimplePerson", converted.get("_class")); + assertEquals("Mr. A", converted.get("name")); } @@ -146,12 +160,6 @@ public class CouchbaseTemplateTests { template.save(complex); - String expected = "{\"_class\":\"org.springframework.data.couchbase.core." - + "CouchbaseTemplateTests$ComplexPerson\",\"info1\":{\"nullValue\":null,\"foo\":true,\"bar\"" - + ":false},\"votes\":[],\"firstnames\":[\"Michael\",\"Thomas\",null],\"info2\":" - + "{}}"; - assertEquals(expected, client.get(id)); - ComplexPerson response = template.findById(id, ComplexPerson.class); assertEquals(names, response.getFirstnames()); assertEquals(votes, response.getVotes()); 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 80a451a3..eec1ef81 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 @@ -194,7 +194,8 @@ public class MappingCouchbaseConverterTests { expected.put("attr1", 0); converter.write(entity, converted); - assertEquals(expected.toString(), converted.export().toString()); + assertEquals(expected.get("_class"), converted.get("_class")); + assertEquals(expected.get("attr1"), converted.get("attr1")); } @Test