use of org.neo4j.ogm.domain.music.Recording in project neo4j-ogm by neo4j.
the class LoadCapabilityTest method shouldBeAbleToLoadEntityToDifferentDepthsInDifferentSessions.
// DATAGRAPH-642, GH-174
@Test
public void shouldBeAbleToLoadEntityToDifferentDepthsInDifferentSessions() {
Artist led = new Artist("Led Zeppelin");
Album album = new Album("Led Zeppelin IV");
Studio studio = new Studio("Island Studios");
Recording recording = new Recording(album, studio, 1970);
led.addAlbum(album);
album.setArtist(led);
album.setRecording(recording);
session.save(led);
session.clear();
// In the first session, load the artist to depth 2
Artist ledZeppelin = session.load(Artist.class, led.getId(), 2);
assertThat(ledZeppelin).isNotNull();
assertThat(ledZeppelin.getName()).isEqualTo(led.getName());
assertThat(ledZeppelin.getAlbums()).hasSize(1);
Album ledZeppelinIV = ledZeppelin.getAlbums().iterator().next();
assertThat(ledZeppelinIV.getName()).isEqualTo(album.getName());
assertThat(ledZeppelinIV.getArtist()).isEqualTo(ledZeppelin);
assertThat(ledZeppelinIV.getRecording()).isNotNull();
assertThat(ledZeppelinIV.getRecording().getStudio().getName()).isEqualTo(studio.getName());
// In the second session, load the artist to depth 0
Session session2 = sessionFactory.openSession();
Artist ledZeppelin0 = session2.load(Artist.class, led.getId(), 0);
assertThat(ledZeppelin0).isNotNull();
assertThat(ledZeppelin0.getName()).isEqualTo(led.getName());
assertThat(ledZeppelin0.getAlbums()).isEmpty();
}
Aggregations