@Test public void shouldFireEventForRelationshipEntityWhenItIsSavedIndirectly() throws Exception { FictionalCharacter fingolfin = template.save(new FictionalCharacter("Fingolfin")); entities.clear(); FictionalCharacter morgoth = new FictionalCharacter("Morgoth"); morgoth.slew(fingolfin, "Dagor Bragollach"); template.save(morgoth); assertThat(entities.size(), is(2)); assertThat(((FictionalCharacter) entities.get(0)).id, is(morgoth.id)); assertThat(((Slaying) entities.get(1)).battle, is(equalTo("Dagor Bragollach"))); }
@Test public void shouldFireEventForRelationshipEntities() throws Exception { FictionalCharacter beleg = template.save(new FictionalCharacter("Beleg")); FictionalCharacter brandir = template.save(new FictionalCharacter("Brandir")); entities.clear(); FictionalCharacter turin = new FictionalCharacter("Túrin"); turin.slew(beleg, brandir); template.save(turin); assertThat(entities.size(), is(3)); assertThat(((FictionalCharacter) entities.get(0)).id, is(turin.id)); assertThat( ((Slaying) entities.get(1)).slayee.id, is(Matchers.<Long>either(equalTo(beleg.id)).or(equalTo(brandir.id)))); assertThat( ((Slaying) entities.get(2)).slayee.id, is(Matchers.<Long>either(equalTo(beleg.id)).or(equalTo(brandir.id)))); }