Test that GraphAdapterBuilder works with multiple entity types.
This commit is contained in:
parent
efde6674e1
commit
2e6b22fa2e
|
@ -130,6 +130,45 @@ public final class GraphAdapterBuilderTest extends TestCase {
|
||||||
assertEquals(Collections.emptyList(), listOfLists.get(1));
|
assertEquals(Collections.emptyList(), listOfLists.get(1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testSerializationWithMultipleTypes() {
|
||||||
|
Company google = new Company("Google");
|
||||||
|
new Employee("Jesse", google);
|
||||||
|
new Employee("Joel", google);
|
||||||
|
|
||||||
|
GsonBuilder gsonBuilder = new GsonBuilder();
|
||||||
|
new GraphAdapterBuilder()
|
||||||
|
.addType(Company.class)
|
||||||
|
.addType(Employee.class)
|
||||||
|
.registerOn(gsonBuilder);
|
||||||
|
Gson gson = gsonBuilder.create();
|
||||||
|
|
||||||
|
assertEquals("{'0x1':{'name':'Google','employees':['0x2','0x3']},"
|
||||||
|
+ "'0x2':{'name':'Jesse','company':'0x1'},"
|
||||||
|
+ "'0x3':{'name':'Joel','company':'0x1'}}",
|
||||||
|
gson.toJson(google).replace('"', '\''));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testDeserializationWithMultipleTypes() {
|
||||||
|
GsonBuilder gsonBuilder = new GsonBuilder();
|
||||||
|
new GraphAdapterBuilder()
|
||||||
|
.addType(Company.class)
|
||||||
|
.addType(Employee.class)
|
||||||
|
.registerOn(gsonBuilder);
|
||||||
|
Gson gson = gsonBuilder.create();
|
||||||
|
|
||||||
|
String json = "{'0x1':{'name':'Google','employees':['0x2','0x3']},"
|
||||||
|
+ "'0x2':{'name':'Jesse','company':'0x1'},"
|
||||||
|
+ "'0x3':{'name':'Joel','company':'0x1'}}";
|
||||||
|
Company company = gson.fromJson(json, Company.class);
|
||||||
|
assertEquals("Google", company.name);
|
||||||
|
Employee jesse = company.employees.get(0);
|
||||||
|
assertEquals("Jesse", jesse.name);
|
||||||
|
assertEquals(company, jesse.company);
|
||||||
|
Employee joel = company.employees.get(1);
|
||||||
|
assertEquals("Joel", joel.name);
|
||||||
|
assertEquals(company, joel.company);
|
||||||
|
}
|
||||||
|
|
||||||
static class Roshambo {
|
static class Roshambo {
|
||||||
String name;
|
String name;
|
||||||
Roshambo beats;
|
Roshambo beats;
|
||||||
|
@ -137,4 +176,22 @@ public final class GraphAdapterBuilderTest extends TestCase {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static class Employee {
|
||||||
|
final String name;
|
||||||
|
final Company company;
|
||||||
|
Employee(String name, Company company) {
|
||||||
|
this.name = name;
|
||||||
|
this.company = company;
|
||||||
|
this.company.employees.add(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static class Company {
|
||||||
|
final String name;
|
||||||
|
final List<Employee> employees = new ArrayList<Employee>();
|
||||||
|
Company(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user