Search in sources :

Example 36 with Movie

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

the class CineastsRelationshipEntityTest method shouldLoadASingleRating.

@Test
public void shouldLoadASingleRating() {
    Movie movie = new Movie("Pulp Fiction", 1994);
    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);
    // Add a rating from luanne for the same movie
    User luanne = new User();
    luanne.setName("luanne");
    luanne.setLogin("luanne");
    luanne.setPassword("luanne");
    Rating rating = new Rating();
    rating.setMovie(movie);
    rating.setUser(luanne);
    rating.setStars(3);
    luanne.setRatings(Collections.singleton(rating));
    session.save(luanne);
    session.clear();
    Rating loadedRating = session.load(Rating.class, rating.getId(), 3);
    assertThat(loadedRating).isNotNull();
    assertThat(loadedRating.getId()).isEqualTo(rating.getId());
    assertThat(loadedRating.getStars()).isEqualTo(rating.getStars());
}
Also used : Movie(org.neo4j.ogm.domain.cineasts.annotated.Movie) User(org.neo4j.ogm.domain.cineasts.annotated.User) Rating(org.neo4j.ogm.domain.cineasts.annotated.Rating) Test(org.junit.Test)

Example 37 with Movie

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

the class CineastsRelationshipEntityTest method shouldLoadFilmsByTitleUsingCaseInsensitiveWildcardBasedLikeExpression.

/**
 * For DATAGRAPH-761
 */
@Test
public void shouldLoadFilmsByTitleUsingCaseInsensitiveWildcardBasedLikeExpression() {
    Movie firstFilm = new Movie("Dirty Harry", 1977);
    Movie secondFilm = new Movie("Harry Potter and the Order of the Phoenix", 2009);
    Movie thirdFilm = new Movie("Delhi Belly", 2012);
    session.save(firstFilm);
    session.save(secondFilm);
    session.save(thirdFilm);
    Filter filter = new Filter("title", ComparisonOperator.LIKE, "harry*");
    Collection<Movie> allFilms = session.loadAll(Movie.class, filter);
    assertThat(allFilms).as("The wrong-sized collection of films was returned").hasSize(1);
    assertThat(allFilms.iterator().next().getTitle()).isEqualTo("Harry Potter and the Order of the Phoenix");
}
Also used : Movie(org.neo4j.ogm.domain.cineasts.annotated.Movie) Filter(org.neo4j.ogm.cypher.Filter) Test(org.junit.Test)

Example 38 with Movie

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

the class RelationshipEntityMappingTest method shouldBeAbleToSaveAndLoadRelationshipEntityWithNullProperties.

@Test
public void shouldBeAbleToSaveAndLoadRelationshipEntityWithNullProperties() {
    Actor keanu = new Actor("Keanu Reeves");
    Movie matrix = new Movie("The Matrix", 1999);
    HashSet<Role> roles = new HashSet<>();
    Role role = new Role(matrix, keanu, null);
    roles.add(role);
    keanu.setRoles(roles);
    session.save(keanu);
    Map<String, Object> params = new HashMap<>();
    params.put("actorId", keanu.getUuid());
    Result result = session.query("MATCH (a:Actor)-[r:ACTS_IN]-(m:Movie) WHERE a.uuid = $actorId RETURN r as rel", params, true);
    Iterator<Map<String, Object>> iterator = result.iterator();
    Map<String, Object> first = iterator.next();
    assertThat(role).isSameAs(first.get("rel"));
}
Also used : Role(org.neo4j.ogm.domain.cineasts.annotated.Role) Movie(org.neo4j.ogm.domain.cineasts.annotated.Movie) HashMap(java.util.HashMap) Actor(org.neo4j.ogm.domain.cineasts.annotated.Actor) HashMap(java.util.HashMap) Map(java.util.Map) HashSet(java.util.HashSet) Result(org.neo4j.ogm.model.Result) Test(org.junit.Test)

Example 39 with Movie

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

the class RelationshipEntityMappingTest method testThatAnnotatedRelationshipOnRelationshipEntityCreatesTheCorrectRelationshipTypeInTheGraph.

@Test
public void testThatAnnotatedRelationshipOnRelationshipEntityCreatesTheCorrectRelationshipTypeInTheGraph() {
    Movie hp = new Movie("Goblet of Fire", 2005);
    Actor daniel = new Actor("Daniel Radcliffe");
    daniel.playedIn(hp, "Harry Potter");
    session.save(daniel);
    session.clear();
    assertThat(session.query("MATCH (m:Movie {uuid:\"" + hp.getUuid().toString() + "\"}), " + "(a:Actor {uuid:\"" + daniel.getUuid().toString() + "\"}) " + " WHERE m.title = 'Goblet of Fire' and m.year = 2005 " + " and a.name='Daniel Radcliffe' and (a)-[:ACTS_IN {role:'Harry Potter'}]->(m) " + " return m, a", emptyMap()).queryResults()).hasSize(1);
}
Also used : Movie(org.neo4j.ogm.domain.cineasts.annotated.Movie) Actor(org.neo4j.ogm.domain.cineasts.annotated.Actor) Test(org.junit.Test)

Example 40 with Movie

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

the class QueryCapabilityTest method shouldBeAbleToMapRelationshipEntities.

// DATAGRAPH-700
@Test
public void shouldBeAbleToMapRelationshipEntities() {
    Iterator<Map<String, Object>> results = session.query("MATCH (u:User {name:$name})-[r:RATED]->(m) RETURN u,r,m", Collections.singletonMap("name", "Vince")).iterator();
    assertThat(results).isNotNull();
    Map<String, Object> result = results.next();
    assertThat(result).isNotNull();
    Movie movie = (Movie) result.get("m");
    assertThat(movie).isNotNull();
    assertThat(movie.getTitle()).isEqualTo("Top Gear");
    User user = (User) result.get("u");
    assertThat(user).isNotNull();
    assertThat(user.getName()).isEqualTo("Vince");
    Rating rating = (Rating) result.get("r");
    assertThat(rating).isNotNull();
    assertThat(rating.getStars()).isEqualTo(4);
    assertThat(movie.getRatings().iterator().next().getId()).isEqualTo(rating.getId());
    assertThat(user.getRatings().iterator().next().getId()).isEqualTo(rating.getId());
    assertThat(results.hasNext()).isFalse();
}
Also used : Movie(org.neo4j.ogm.domain.cineasts.annotated.Movie) ExtendedUser(org.neo4j.ogm.domain.cineasts.annotated.ExtendedUser) User(org.neo4j.ogm.domain.cineasts.annotated.User) Rating(org.neo4j.ogm.domain.cineasts.annotated.Rating) Map(java.util.Map) HashMap(java.util.HashMap) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)41 Movie (org.neo4j.ogm.domain.cineasts.annotated.Movie)41 User (org.neo4j.ogm.domain.cineasts.annotated.User)25 Rating (org.neo4j.ogm.domain.cineasts.annotated.Rating)24 Filter (org.neo4j.ogm.cypher.Filter)17 HashMap (java.util.HashMap)11 Map (java.util.Map)11 ExtendedUser (org.neo4j.ogm.domain.cineasts.annotated.ExtendedUser)8 Actor (org.neo4j.ogm.domain.cineasts.annotated.Actor)7 HashSet (java.util.HashSet)6 ArrayList (java.util.ArrayList)3 List (java.util.List)3 Result (org.neo4j.ogm.model.Result)3 Filters (org.neo4j.ogm.cypher.Filters)2 Pet (org.neo4j.ogm.domain.cineasts.annotated.Pet)2 Plays (org.neo4j.ogm.domain.cineasts.annotated.Plays)2 Role (org.neo4j.ogm.domain.cineasts.annotated.Role)2 URL (java.net.URL)1 Pagination (org.neo4j.ogm.cypher.query.Pagination)1 SortOrder (org.neo4j.ogm.cypher.query.SortOrder)1