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");
}
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);
}
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");
}
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);
}
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();
}
}
Aggregations