Search in sources :

Example 1 with Album

use of org.neo4j.ogm.domain.music.Album in project neo4j-ogm by neo4j.

the class SaveCapabilityTest method shouldCountRelationshipEntities.

@Test
public void shouldCountRelationshipEntities() {
    Album greatestHits = new Album("Greatest Hits");
    Studio chessRecordsStudios = new Studio("Chess Records");
    Studio mercuryStudios = new Studio("Mercury");
    Recording recording1 = new Recording(greatestHits, chessRecordsStudios, 1962);
    Recording recording2 = new Recording(greatestHits, mercuryStudios, 1967);
    greatestHits.setRecording(recording1);
    greatestHits.setRecording(recording2);
    session.save(recording1);
    session.save(recording2);
    assertThat(session.countEntitiesOfType(Recording.class)).isEqualTo(2);
}
Also used : Album(org.neo4j.ogm.domain.music.Album) Recording(org.neo4j.ogm.domain.music.Recording) Studio(org.neo4j.ogm.domain.music.Studio) Test(org.junit.Test)

Example 2 with Album

use of org.neo4j.ogm.domain.music.Album in project neo4j-ogm by neo4j.

the class MusicIntegrationTest method shouldRetrieveEntityByPropertyWithZeroDepth.

/**
 * @see DATAGRAPH-629
 */
@Test
public void shouldRetrieveEntityByPropertyWithZeroDepth() {
    Studio emi = new Studio("EMI Studios, London");
    Artist theBeatles = new Artist("The Beatles");
    Album please = new Album("Please Please Me");
    Recording pleaseRecording = new Recording(please, emi, 1963);
    please.setRecording(pleaseRecording);
    theBeatles.getAlbums().add(please);
    please.setArtist(theBeatles);
    session.save(theBeatles);
    theBeatles = session.loadAll(Artist.class).iterator().next();
    assertThat(theBeatles.getName()).isEqualTo("The Beatles");
    assertThat(theBeatles.getAlbums()).hasSize(1);
    assertThat(theBeatles.getAlbums().iterator().next().getName()).isEqualTo("Please Please Me");
    assertThat(theBeatles.getAlbums().iterator().next().getRecording().getStudio().getName()).isEqualTo("EMI Studios, London");
    session.clear();
    please = session.loadAll(Album.class, new Filter("name", ComparisonOperator.EQUALS, "Please Please Me"), 0).iterator().next();
    assertThat(please.getName()).isEqualTo("Please Please Me");
    assertThat(please.getArtist()).isNull();
    assertThat(please.getRecording()).isNull();
}
Also used : Artist(org.neo4j.ogm.domain.music.Artist) Filter(org.neo4j.ogm.cypher.Filter) Album(org.neo4j.ogm.domain.music.Album) Recording(org.neo4j.ogm.domain.music.Recording) Studio(org.neo4j.ogm.domain.music.Studio) Test(org.junit.Test)

Example 3 with Album

use of org.neo4j.ogm.domain.music.Album in project neo4j-ogm by neo4j.

the class MusicIntegrationTest method shouldSaveAndRetrieveEntitiesWithInvalidCharsInLabelsAndRels.

/**
 * @see DATAGRAPH-589
 */
@Test
public void shouldSaveAndRetrieveEntitiesWithInvalidCharsInLabelsAndRels() {
    Studio emi = new Studio("EMI Studios, London");
    Artist theBeatles = new Artist("The Beatles");
    Album please = new Album("Please Please Me");
    Recording pleaseRecording = new Recording(please, emi, 1963);
    please.setRecording(pleaseRecording);
    theBeatles.getAlbums().add(please);
    please.setArtist(theBeatles);
    session.save(theBeatles);
    theBeatles = session.loadAll(Artist.class).iterator().next();
    assertThat(theBeatles.getName()).isEqualTo("The Beatles");
    assertThat(theBeatles.getAlbums()).hasSize(1);
    assertThat(theBeatles.getAlbums().iterator().next().getName()).isEqualTo("Please Please Me");
    assertThat(theBeatles.getAlbums().iterator().next().getRecording().getStudio().getName()).isEqualTo("EMI Studios, London");
    please = session.loadAll(Album.class, new Filter("name", ComparisonOperator.EQUALS, "Please Please Me")).iterator().next();
    assertThat(please.getArtist().getName()).isEqualTo("The Beatles");
    Album hard = new Album("A Hard Day's Night");
    hard.setArtist(theBeatles);
    Recording hardRecording = new Recording(hard, emi, 1964);
    hard.setRecording(hardRecording);
    theBeatles.getAlbums().add(hard);
    session.save(hard);
    Collection<Album> albums = session.loadAll(Album.class);
    assertThat(albums).hasSize(2);
    for (Album album : albums) {
        if (album.getName().equals("Please Please Me")) {
            assertThat(album.getRecording().getYear()).isEqualTo(1963);
        } else {
            assertThat(album.getRecording().getYear()).isEqualTo(1964);
        }
    }
}
Also used : Artist(org.neo4j.ogm.domain.music.Artist) Filter(org.neo4j.ogm.cypher.Filter) Album(org.neo4j.ogm.domain.music.Album) Recording(org.neo4j.ogm.domain.music.Recording) Studio(org.neo4j.ogm.domain.music.Studio) Test(org.junit.Test)

Example 4 with Album

use of org.neo4j.ogm.domain.music.Album in project neo4j-ogm by neo4j.

the class DeleteCapabilityTest method canDeleteEntityCollection.

@Test
public void canDeleteEntityCollection() {
    Album album1 = new Album();
    Album album2 = new Album();
    session.save(album1);
    session.save(album2);
    assertEntityCount(2);
    List<Object> albumList = new ArrayList<>();
    albumList.add(album1);
    albumList.add(album2);
    session.delete(albumList);
    assertEntityCount(0);
}
Also used : ArrayList(java.util.ArrayList) Album(org.neo4j.ogm.domain.music.Album) Test(org.junit.Test)

Example 5 with Album

use of org.neo4j.ogm.domain.music.Album in project neo4j-ogm by neo4j.

the class LoadCapabilityTest method loadAllShouldRespectEntityType.

// DATAGRAPH-707
@Test
public void loadAllShouldRespectEntityType() {
    Collection<Artist> artists = session.loadAll(Artist.class, Collections.singletonList(beatlesId));
    assertThat(artists).hasSize(1);
    assertThat(artists.iterator().next().getName()).isEqualTo("The Beatles");
    Collection<Album> albums = session.loadAll(Album.class, Collections.singletonList(beatlesId));
    assertThat(albums).isEmpty();
    artists = session.loadAll(Artist.class, Collections.singletonList(beatlesId), 0);
    assertThat(artists).hasSize(1);
    assertThat(artists.iterator().next().getName()).isEqualTo("The Beatles");
    albums = session.loadAll(Album.class, Collections.singletonList(beatlesId), 0);
    assertThat(albums).isEmpty();
    artists = session.loadAll(Artist.class, Collections.singletonList(beatlesId), new SortOrder().add("name"));
    assertThat(artists).hasSize(1);
    assertThat(artists.iterator().next().getName()).isEqualTo("The Beatles");
    albums = session.loadAll(Album.class, Collections.singletonList(beatlesId), new SortOrder().add("name"));
    assertThat(albums).isEmpty();
    artists = session.loadAll(Artist.class, Collections.singletonList(beatlesId), new SortOrder().add("name"), 0);
    assertThat(artists).hasSize(1);
    assertThat(artists.iterator().next().getName()).isEqualTo("The Beatles");
    albums = session.loadAll(Album.class, Collections.singletonList(beatlesId), new SortOrder().add("name"), 0);
    assertThat(albums).isEmpty();
    artists = session.loadAll(Artist.class, Collections.singletonList(beatlesId), new Pagination(0, 5));
    assertThat(artists).hasSize(1);
    assertThat(artists.iterator().next().getName()).isEqualTo("The Beatles");
    albums = session.loadAll(Album.class, Collections.singletonList(beatlesId), new Pagination(0, 5));
    assertThat(albums).isEmpty();
    artists = session.loadAll(Artist.class, Collections.singletonList(beatlesId), new Pagination(0, 5), 0);
    assertThat(artists).hasSize(1);
    assertThat(artists.iterator().next().getName()).isEqualTo("The Beatles");
    albums = session.loadAll(Album.class, Collections.singletonList(beatlesId), new Pagination(0, 5), 0);
    assertThat(albums).isEmpty();
    artists = session.loadAll(Artist.class, Collections.singletonList(beatlesId), new SortOrder().add("name"), new Pagination(0, 5));
    assertThat(artists).hasSize(1);
    assertThat(artists.iterator().next().getName()).isEqualTo("The Beatles");
    albums = session.loadAll(Album.class, Collections.singletonList(beatlesId), new SortOrder().add("name"), new Pagination(0, 5));
    assertThat(albums).isEmpty();
    artists = session.loadAll(Artist.class, Collections.singletonList(beatlesId), new SortOrder().add("name"), new Pagination(0, 5), 0);
    assertThat(artists).hasSize(1);
    assertThat(artists.iterator().next().getName()).isEqualTo("The Beatles");
    Artist bonJovi = new Artist("Bon Jovi");
    session.save(bonJovi);
    artists = session.loadAll(Artist.class, Arrays.asList(beatlesId, pleaseId, bonJovi.getId()), new SortOrder().add("name"), new Pagination(0, 5), 0);
    assertThat(artists).hasSize(2);
    artists = session.loadAll(Artist.class, Collections.singletonList(beatlesId), new SortOrder().add("name"), new Pagination(0, 5), 0);
    assertThat(artists).hasSize(1);
    assertThat(artists.iterator().next().getName()).isEqualTo(// make sure Bon Jovi isn't returned as well
    "The Beatles");
    albums = session.loadAll(Album.class, Collections.singletonList(beatlesId), new SortOrder().add("name"), new Pagination(0, 5), 0);
    assertThat(albums).isEmpty();
}
Also used : Artist(org.neo4j.ogm.domain.music.Artist) Pagination(org.neo4j.ogm.cypher.query.Pagination) Album(org.neo4j.ogm.domain.music.Album) SortOrder(org.neo4j.ogm.cypher.query.SortOrder) Test(org.junit.Test)

Aggregations

Album (org.neo4j.ogm.domain.music.Album)33 Test (org.junit.Test)30 Artist (org.neo4j.ogm.domain.music.Artist)27 Recording (org.neo4j.ogm.domain.music.Recording)21 Studio (org.neo4j.ogm.domain.music.Studio)21 Neo4jSession (org.neo4j.ogm.session.Neo4jSession)9 Session (org.neo4j.ogm.session.Session)7 ArrayList (java.util.ArrayList)3 List (java.util.List)3 Before (org.junit.Before)3 Filter (org.neo4j.ogm.cypher.Filter)3 Map (java.util.Map)2 MappingContext (org.neo4j.ogm.context.MappingContext)2 SessionFactory (org.neo4j.ogm.session.SessionFactory)2 Transaction (org.neo4j.ogm.transaction.Transaction)2 LocalDate (java.time.LocalDate)1 ZoneId (java.time.ZoneId)1 Date (java.util.Date)1 EntityGraphMapper (org.neo4j.ogm.context.EntityGraphMapper)1 Filters (org.neo4j.ogm.cypher.Filters)1