From 50dd475eb8cdfceb9f12baab178a0ba66cfb40dc Mon Sep 17 00:00:00 2001 From: Joel Leitch Date: Mon, 1 Dec 2008 00:23:35 +0000 Subject: [PATCH] Added more tests involving Since and Until versioning. --- .../gson/functional/VersioningTest.java | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/gson/src/test/java/com/google/gson/functional/VersioningTest.java b/gson/src/test/java/com/google/gson/functional/VersioningTest.java index 55b44589..7838555c 100644 --- a/gson/src/test/java/com/google/gson/functional/VersioningTest.java +++ b/gson/src/test/java/com/google/gson/functional/VersioningTest.java @@ -53,6 +53,13 @@ public class VersioningTest extends TestCase { json = gson.toJson(target); assertFalse(json.contains("\"a\":" + A)); } + + public void testVersionedUntilDeserialization() { + Gson gson = builder.setVersion(1.3).create(); + String json = "{\"a\":3,\"b\":4,\"c\":5}"; + Version1 version1 = gson.fromJson(json, Version1.class); + assertEquals(A, version1.a); + } public void testVersionedClassesSerialization() { Gson gson = builder.setVersion(1.0).create(); @@ -108,6 +115,39 @@ public class VersioningTest extends TestCase { assertEquals(expected, actual); } + public void testVersionedGsonMixingSinceAndUntilSerialization() { + Gson gson = builder.setVersion(1.0).create(); + SinceUntilMixing target = new SinceUntilMixing(); + String json = gson.toJson(target); + assertFalse(json.contains("\"b\":" + B)); + + gson = builder.setVersion(1.2).create(); + json = gson.toJson(target); + assertTrue(json.contains("\"b\":" + B)); + + gson = builder.setVersion(1.3).create(); + json = gson.toJson(target); + assertFalse(json.contains("\"b\":" + B)); + } + + public void testVersionedGsonMixingSinceAndUntilDeserialization() { + String json = "{\"a\":5,\"b\":6}"; + Gson gson = builder.setVersion(1.0).create(); + SinceUntilMixing result = gson.fromJson(json, SinceUntilMixing.class); + assertEquals(5, result.a); + assertEquals(B, result.b); + + gson = builder.setVersion(1.2).create(); + result = gson.fromJson(json, SinceUntilMixing.class); + assertEquals(5, result.a); + assertEquals(6, result.b); + + gson = builder.setVersion(1.3).create(); + result = gson.fromJson(json, SinceUntilMixing.class); + assertEquals(5, result.a); + assertEquals(B, result.b); + } + private static class Version1 { @Until(1.3) int a = A; @Since(1.0) int b = B; @@ -121,4 +161,12 @@ public class VersioningTest extends TestCase { private static class Version1_2 extends Version1_1 { int d = D; } + + private static class SinceUntilMixing { + int a = A; + + @Since(1.1) + @Until(1.3) + int b = B; + } }