Search in sources :

Example 11 with Actor

use of org.neo4j.ogm.domain.cineasts.annotated.Actor in project neo4j-ogm by neo4j.

the class CineastsRelationshipEntityTest method shouldHydrateTheEndNodeOfAnRECorrectly.

// DATAGRAPH-552
@Test
public void shouldHydrateTheEndNodeOfAnRECorrectly() {
    Movie movie = new Movie("Pulp Fiction", 1994);
    Actor actor = new Actor("John Travolta");
    actor.playedIn(movie, "Vincent");
    session.save(movie);
    User michal = new User();
    michal.setName("Michal");
    michal.setLogin("bachmania");
    Rating awesome = new Rating();
    awesome.setMovie(movie);
    awesome.setUser(michal);
    awesome.setStars(5);
    michal.setRatings(Collections.singleton(awesome));
    session.save(michal);
    // Check that Pulp Fiction has one rating from Michal
    Collection<Movie> films = session.loadAll(Movie.class, new Filter("title", ComparisonOperator.EQUALS, "Pulp Fiction"));
    assertThat(films).hasSize(1);
    Movie film = films.iterator().next();
    assertThat(film).isNotNull();
    assertThat(film.getRatings()).hasSize(1);
    assertThat(film.getRatings().iterator().next().getUser().getName()).isEqualTo("Michal");
    assertThat(film.getRoles().iterator().next().getRole()).isEqualTo("Vincent");
    session.clear();
    Rating rating = session.load(Rating.class, awesome.getId(), 2);
    assertThat(rating).isNotNull();
    Movie loadedMovie = rating.getMovie();
    assertThat(loadedMovie).isNotNull();
    assertThat(loadedMovie.getTitle()).isEqualTo("Pulp Fiction");
    assertThat(loadedMovie.getRoles().iterator().next().getRole()).isEqualTo("Vincent");
}
Also used : Movie(org.neo4j.ogm.domain.cineasts.annotated.Movie) User(org.neo4j.ogm.domain.cineasts.annotated.User) Filter(org.neo4j.ogm.cypher.Filter) Actor(org.neo4j.ogm.domain.cineasts.annotated.Actor) Rating(org.neo4j.ogm.domain.cineasts.annotated.Rating) Test(org.junit.Test)

Example 12 with Actor

use of org.neo4j.ogm.domain.cineasts.annotated.Actor in project neo4j-ogm by neo4j.

the class CineastsRelationshipEntityTest method updateRoleToSameValueResultsInTwoRelationshipBetweenSameObjects.

@Test
public void updateRoleToSameValueResultsInTwoRelationshipBetweenSameObjects() throws Exception {
    Movie movie = new Movie("The big John Travolta Party", 2016);
    Actor actor = new Actor("John Travolta");
    Role role1 = actor.playedIn(movie, "He danced mostly");
    Role role2 = actor.playedIn(movie, "He was dancing mostly");
    assertThat(actor.getRoles()).hasSize(2);
    session.save(actor);
    session.clear();
    Actor loaded = session.load(Actor.class, actor.getUuid());
    assertThat(loaded.getRoles()).hasSize(2);
    // set to identical role - this should behave consistently to previous test case
    role2.setRole("He danced mostly");
    session.save(actor);
    session.clear();
    loaded = session.load(Actor.class, actor.getUuid());
    assertThat(loaded.getRoles()).hasSize(2);
}
Also used : Role(org.neo4j.ogm.domain.cineasts.annotated.Role) Movie(org.neo4j.ogm.domain.cineasts.annotated.Movie) Actor(org.neo4j.ogm.domain.cineasts.annotated.Actor) Test(org.junit.Test)

Example 13 with Actor

use of org.neo4j.ogm.domain.cineasts.annotated.Actor in project neo4j-ogm by neo4j.

the class CineastsRelationshipEntityTest method shouldLoadRelationshipEntityWithSameStartEndNodeType.

// DATAGRAPH-616
@Test
public void shouldLoadRelationshipEntityWithSameStartEndNodeType() {
    Actor bruce = new Actor("Bruce");
    Actor jim = new Actor("Jim");
    Knows knows = new Knows();
    knows.setFirstActor(bruce);
    knows.setSecondActor(jim);
    knows.setSince(new Date());
    bruce.getKnows().add(knows);
    session.save(bruce);
    session.clear();
    Actor actor = TestUtils.firstOrNull(session.loadAll(Actor.class, new Filter("name", ComparisonOperator.EQUALS, "Bruce")));
    assertThat(actor).isNotNull();
    assertThat(actor.getKnows()).hasSize(1);
    assertThat(actor.getKnows().iterator().next().getFirstActor().getName()).isEqualTo("Bruce");
    assertThat(actor.getKnows().iterator().next().getSecondActor().getName()).isEqualTo("Jim");
}
Also used : Filter(org.neo4j.ogm.cypher.Filter) Actor(org.neo4j.ogm.domain.cineasts.annotated.Actor) Knows(org.neo4j.ogm.domain.cineasts.annotated.Knows) Date(java.util.Date) Test(org.junit.Test)

Example 14 with Actor

use of org.neo4j.ogm.domain.cineasts.annotated.Actor in project neo4j-ogm by neo4j.

the class CineastsRelationshipEntityTest method shouldSaveMultipleRoleRelationshipsBetweenTheSameTwoObjects.

@Test
public void shouldSaveMultipleRoleRelationshipsBetweenTheSameTwoObjects() {
    Movie movie = new Movie("The big John Travolta Party", 2016);
    Actor actor = new Actor("John Travolta");
    for (int i = 65; i <= 90; i++) {
        String role = new String(new char[] { (char) i });
        actor.playedIn(movie, role);
    }
    assertThat(actor.getRoles()).hasSize(26);
    session.save(actor);
    session.clear();
    Actor loadedActor = session.load(Actor.class, actor.getUuid());
    assertThat(loadedActor.getRoles()).hasSize(26);
}
Also used : Movie(org.neo4j.ogm.domain.cineasts.annotated.Movie) Actor(org.neo4j.ogm.domain.cineasts.annotated.Actor) Test(org.junit.Test)

Example 15 with Actor

use of org.neo4j.ogm.domain.cineasts.annotated.Actor in project neo4j-ogm by neo4j.

the class SessionAndMappingContextTest method shouldRollbackRelationshipEntityWithDifferentStartAndEndNodes.

@Test
public void shouldRollbackRelationshipEntityWithDifferentStartAndEndNodes() {
    Actor mary = new Actor("Mary");
    Actor john = new Actor("John");
    Knows maryKnowsJohn = new Knows();
    maryKnowsJohn.setFirstActor(mary);
    maryKnowsJohn.setSecondActor(john);
    try (Transaction tx = session.beginTransaction()) {
        session.save(maryKnowsJohn);
        assertThat(mary.getUuid()).isNotNull();
        assertThat(maryKnowsJohn.id).isNotNull();
        assertThat(john.getUuid()).isNotNull();
        tx.rollback();
        assertThat(mary.getUuid()).isNull();
        assertThat(maryKnowsJohn.id).isNull();
        assertThat(john.getUuid()).isNull();
    }
}
Also used : Transaction(org.neo4j.ogm.transaction.Transaction) Actor(org.neo4j.ogm.domain.cineasts.annotated.Actor) Knows(org.neo4j.ogm.domain.cineasts.annotated.Knows) Test(org.junit.Test)

Aggregations

Actor (org.neo4j.ogm.domain.cineasts.annotated.Actor)27 Test (org.junit.Test)25 Movie (org.neo4j.ogm.domain.cineasts.annotated.Movie)7 HashMap (java.util.HashMap)6 Knows (org.neo4j.ogm.domain.cineasts.annotated.Knows)6 Map (java.util.Map)5 Result (org.neo4j.ogm.model.Result)5 Date (java.util.Date)4 Filter (org.neo4j.ogm.cypher.Filter)4 ArrayList (java.util.ArrayList)3 Document (org.neo4j.ogm.domain.filesystem.Document)3 Arrays (java.util.Arrays)2 EnumSet (java.util.EnumSet)2 List (java.util.List)2 Assertions (org.assertj.core.api.Assertions)2 Before (org.junit.Before)2 Role (org.neo4j.ogm.domain.cineasts.annotated.Role)2 Event (org.neo4j.ogm.session.event.Event)2 Transaction (org.neo4j.ogm.transaction.Transaction)2 HashSet (java.util.HashSet)1