object.set("left", new Text("Hello, left!"));
assertThat(object.get("left"), eq(new Text("Hello, left!")));
object.set("right", new Text("Hello, right!"));
assertThat(object.get("right"), eq(new Text("Hello, right!")));
Joined annotation = object.unwrap().getClass().getAnnotation(Joined.class);
assertThat(annotation, not(nullValue()));
assertThat(annotation.terms().length, is(2));
loader.setNamespace(Constants.SOURCE_TABLE);
Joined.Term a = annotation.terms()[0];
assertThat(a.source(), eq(loader.modelType("Left")));
assertThat(a.mappings().length, is(2));
assertThat(a.mappings(), hasItemInArray(mapping("rightId", "id")));
assertThat(a.mappings(), hasItemInArray(mapping("value", "left")));
assertThat(a.shuffle(), is(grouping("rightId")));
Joined.Term b = annotation.terms()[1];
assertThat(b.source(), eq(loader.modelType("Right")));
assertThat(b.mappings().length, is(2));
assertThat(b.mappings(), hasItemInArray(mapping("sid", "id")));
assertThat(b.mappings(), hasItemInArray(mapping("value", "right")));
assertThat(b.shuffle(), is(grouping("sid")));