public static void validatePersonListJsonCodec(JsonCodec<List<Person>> jsonCodec) { ImmutableList<Person> expected = ImmutableList.of( new Person().setName("dain").setRocks(true), new Person().setName("martin").setRocks(true), new Person().setName("mark").setRocks(true)); String json = jsonCodec.toJson(expected); assertEquals(jsonCodec.fromJson(json), expected); byte[] bytes = jsonCodec.toJsonBytes(expected); assertEquals(jsonCodec.fromJson(bytes), expected); }
@Test public void testJsonCodec() throws Exception { JsonCodec<Person> jsonCodec = jsonCodec(Person.class); Person.validatePersonJsonCodec(jsonCodec); }
@Test public void testListJsonCodec() throws Exception { JsonCodec<List<Person>> jsonCodec = listJsonCodec(Person.class); Person.validatePersonListJsonCodec(jsonCodec); }
@Test public void testJsonCodecFactoryBinding() throws Exception { Injector injector = Guice.createInjector(new JsonModule()); JsonCodecFactory codecFactory = injector.getInstance(JsonCodecFactory.class); Person.validatePersonJsonCodec(codecFactory.jsonCodec(Person.class)); Person.validatePersonListJsonCodec(codecFactory.listJsonCodec(Person.class)); Person.validatePersonMapJsonCodec(codecFactory.mapJsonCodec(String.class, Person.class)); }
public static void validatePersonJsonCodec(JsonCodec<Person> jsonCodec) { // create object with null lastName Person expected = new Person().setName("dain").setRocks(true); String json = jsonCodec.toJson(expected); assertFalse(json.contains("lastName")); assertEquals(jsonCodec.fromJson(json), expected); byte[] bytes = jsonCodec.toJsonBytes(expected); assertEquals(jsonCodec.fromJson(bytes), expected); // create object with missing lastName expected.setLastName(Optional.empty()); json = jsonCodec.toJson(expected); assertFalse(json.contains("lastName")); assertEquals(jsonCodec.fromJson(json), expected); bytes = jsonCodec.toJsonBytes(expected); assertEquals(jsonCodec.fromJson(bytes), expected); // create object with present lastName expected.setLastName(Optional.of("Awesome")); json = jsonCodec.toJson(expected); assertTrue(json.contains("lastName")); assertEquals(jsonCodec.fromJson(json), expected); bytes = jsonCodec.toJsonBytes(expected); assertEquals(jsonCodec.fromJson(bytes), expected); }
@Test public void testMapJsonCodec() throws Exception { JsonCodec<Map<String, Person>> jsonCodec = mapJsonCodec(String.class, Person.class); Person.validatePersonMapJsonCodec(jsonCodec); }
@Test public void testJsonCodecFactoryBinding() throws Exception { Injector injector = Guice.createInjector(new JsonModule()); JsonCodecFactory codecFactory = injector.getInstance(JsonCodecFactory.class); Person.validatePersonJsonCodec(codecFactory.jsonCodec(Person.class)); Person.validatePersonListJsonCodec(codecFactory.listJsonCodec(Person.class)); Person.validatePersonMapJsonCodec(codecFactory.mapJsonCodec(String.class, Person.class)); }
public static void validatePersonJsonCodec(JsonCodec<Person> jsonCodec) { // create object with null lastName Person expected = new Person().setName("dain").setRocks(true); String json = jsonCodec.toJson(expected); assertFalse(json.contains("lastName")); assertEquals(jsonCodec.fromJson(json), expected); byte[] bytes = jsonCodec.toJsonBytes(expected); assertEquals(jsonCodec.fromJson(bytes), expected); // create object with missing lastName expected.setLastName(Optional.empty()); json = jsonCodec.toJson(expected); assertFalse(json.contains("lastName")); assertEquals(jsonCodec.fromJson(json), expected); bytes = jsonCodec.toJsonBytes(expected); assertEquals(jsonCodec.fromJson(bytes), expected); // create object with present lastName expected.setLastName(Optional.of("Awesome")); json = jsonCodec.toJson(expected); assertTrue(json.contains("lastName")); assertEquals(jsonCodec.fromJson(json), expected); bytes = jsonCodec.toJsonBytes(expected); assertEquals(jsonCodec.fromJson(bytes), expected); }
@Test public void testMapJsonCodec() throws Exception { JsonCodec<Map<String, Person>> jsonCodec = mapJsonCodec(String.class, Person.class); Person.validatePersonMapJsonCodec(jsonCodec); }
public static void validatePersonListJsonCodec(JsonCodec<List<Person>> jsonCodec) { ImmutableList<Person> expected = ImmutableList.of( new Person().setName("dain").setRocks(true), new Person().setName("martin").setRocks(true), new Person().setName("mark").setRocks(true)); String json = jsonCodec.toJson(expected); assertEquals(jsonCodec.fromJson(json), expected); byte[] bytes = jsonCodec.toJsonBytes(expected); assertEquals(jsonCodec.fromJson(bytes), expected); }
@Test public void test() throws Exception { Injector injector = Guice.createInjector(new JsonModule(), new Module() { public void configure(Binder binder) { JsonCodecBinder codecBinder = jsonCodecBinder(binder); codecBinder.bindJsonCodec(Person.class); codecBinder.bindListJsonCodec(Person.class); codecBinder.bindMapJsonCodec(String.class, Person.class); } }); injector.injectMembers(this); assertNotNull(personJsonCodec); assertNotNull(personListJsonCodec); assertNotNull(personMapJsonCodec); Person.validatePersonJsonCodec(personJsonCodec); Person.validatePersonListJsonCodec(personListJsonCodec); Person.validatePersonMapJsonCodec(personMapJsonCodec); } }
@Test public void testTypeTokenList() throws Exception { JsonCodec<List<Person>> jsonCodec = jsonCodec(new TypeToken<List<Person>>() {}); Person.validatePersonListJsonCodec(jsonCodec); }
@Test public void testTypeLiteralMap() throws Exception { JsonCodec<Map<String, Person>> jsonCodec = jsonCodec(new TypeToken<Map<String, Person>>() {}); Person.validatePersonMapJsonCodec(jsonCodec); }
@Test public void testJsonCodec() throws Exception { JsonCodec<Person> jsonCodec = jsonCodec(Person.class); Person.validatePersonJsonCodec(jsonCodec); }
public static void validatePersonMapJsonCodec(JsonCodec<Map<String, Person>> jsonCodec) { ImmutableMap<String, Person> expected = ImmutableMap.<String, Person>builder() .put("dain", new Person().setName("dain").setRocks(true)) .put("martin", new Person().setName("martin").setRocks(true)) .put("mark", new Person().setName("mark").setRocks(true)) .build(); String json = jsonCodec.toJson(expected); assertEquals(jsonCodec.fromJson(json), expected); byte[] bytes = jsonCodec.toJsonBytes(expected); assertEquals(jsonCodec.fromJson(bytes), expected); }
@Test public void testJsonCodecFactoryBinding() throws Exception { Injector injector = Guice.createInjector(new JsonModule()); JsonCodecFactory codecFactory = injector.getInstance(JsonCodecFactory.class); Person.validatePersonJsonCodec(codecFactory.jsonCodec(Person.class)); Person.validatePersonListJsonCodec(codecFactory.listJsonCodec(Person.class)); Person.validatePersonMapJsonCodec(codecFactory.mapJsonCodec(String.class, Person.class)); }
@Test public void testTypeTokenList() throws Exception { JsonCodec<List<Person>> jsonCodec = jsonCodec(new TypeToken<List<Person>>() {}); Person.validatePersonListJsonCodec(jsonCodec); }
@Test public void testTypeLiteralMap() throws Exception { JsonCodec<Map<String, Person>> jsonCodec = jsonCodec(new TypeToken<Map<String, Person>>() {}); Person.validatePersonMapJsonCodec(jsonCodec); }
@Test public void testJsonCodec() throws Exception { JsonCodec<Person> jsonCodec = jsonCodec(Person.class); Person.validatePersonJsonCodec(jsonCodec); }
public static void validatePersonListJsonCodec(JsonCodec<List<Person>> jsonCodec) { ImmutableList<Person> expected = ImmutableList.of( new Person().setName("dain").setRocks(true), new Person().setName("martin").setRocks(true), new Person().setName("mark").setRocks(true)); String json = jsonCodec.toJson(expected); assertEquals(jsonCodec.fromJson(json), expected); byte[] bytes = jsonCodec.toJsonBytes(expected); assertEquals(jsonCodec.fromJson(bytes), expected); }