use of org.neo4j.ogm.domain.gh640.MyNode in project neo4j-ogm by neo4j.
the class RelationshipMappingTest method deletesOfEntitiesWithTheSameButNotEqualParentShouldWork2.
// GH-657
@Test
public void deletesOfEntitiesWithTheSameButNotEqualParentShouldWork2() {
Session tx = sessionFactory.openSession();
Map<String, Object> result = tx.query("CREATE (n1:MyNode {name: 'node1'})\n" + "CREATE (n2:MyNode {name: 'node2'})\n" + "CREATE (n3:MyNode {name: 'node3'})\n" + "CREATE (n1) - [:REL_TWO] -> (n2)\n" + "CREATE (n2) - [:REL_ONE] -> (n1)\n" + "RETURN id(n1) as idOfn1, id(n2) as idOfn2, id(n3) as idOfn3", Collections.emptyMap()).iterator().next();
tx = sessionFactory.openSession();
MyNode node1 = tx.load(MyNode.class, (Long) result.get("idOfn1"));
MyNode node2 = tx.load(MyNode.class, (Long) result.get("idOfn2"));
MyNode node3 = tx.load(MyNode.class, (Long) result.get("idOfn3"));
assertThat(node1).isNotNull();
assertThat(node2).isNotNull();
assertThat(node3).isNotNull();
assertThat(node1.getRefOne()).isEqualTo(node2);
assertThat(node1.getRefTwo()).containsOnly(node2);
assertThat(node2.getRefOne()).isNull();
assertThat(node2.getRefTwo()).containsOnly(node1);
tx = sessionFactory.openSession();
MyNode changed = tx.load(MyNode.class, node2.getId()).copy();
changed.setName("Dirty thing.");
changed.setRefTwo(Collections.emptyList());
tx.save(changed);
// Again, verify in a new session.
tx = sessionFactory.openSession();
node2 = tx.load(MyNode.class, changed.getId());
assertThat(node2.getRefOne()).isNull();
assertThat(node2.getRefTwo()).isEmpty();
Iterable<Map<String, Object>> actual = sessionFactory.openSession().query("" + " MATCH (n1:MyNode {name: 'node1'})," + " (n2:MyNode {name: 'Dirty thing.'})," + " (n3:MyNode {name: 'node3'})," + " (n2) - [:REL_ONE] -> (n1) " + " RETURN n1,n2,n3,exists((n1) - [:REL_TWO] -> (n2)) as relTwo", emptyMap()).queryResults();
assertThat(actual).hasSize(1);
assertThat(actual.iterator().next()).containsEntry("relTwo", false);
}
use of org.neo4j.ogm.domain.gh640.MyNode in project neo4j-ogm by neo4j.
the class RelationshipMappingTest method deletesOfEntitiesWithTheSameButNotEqualParentShouldWork3.
// GH-657
@Test
public void deletesOfEntitiesWithTheSameButNotEqualParentShouldWork3() {
Session tx = sessionFactory.openSession();
Map<String, Object> result = tx.query("CREATE (n1:MyNode {name: 'node1'})\n" + "CREATE (n2:MyNode {name: 'node2'})\n" + "CREATE (n3:MyNode {name: 'node3'})\n" + "CREATE (n2) - [:REL_ONE] -> (n1)\n" + "RETURN id(n1) as idOfn1, id(n2) as idOfn2, id(n3) as idOfn3", Collections.emptyMap()).iterator().next();
tx = sessionFactory.openSession();
MyNode node1 = tx.load(MyNode.class, (Long) result.get("idOfn1"));
MyNode node2 = tx.load(MyNode.class, (Long) result.get("idOfn2"));
MyNode node3 = tx.load(MyNode.class, (Long) result.get("idOfn3"));
assertThat(node1).isNotNull();
assertThat(node2).isNotNull();
assertThat(node3).isNotNull();
assertThat(node1.getRefOne()).isEqualTo(node2);
assertThat(node1.getRefTwo()).isEmpty();
assertThat(node2.getRefTwo()).isEmpty();
tx = sessionFactory.openSession();
MyNode changed = tx.load(MyNode.class, node1.getId()).copy();
changed.setName("Dirty thing.");
changed.setRefTwo(Collections.singletonList(node2));
tx.save(changed);
// Again, verify in a new session.
tx = sessionFactory.openSession();
node1 = tx.load(MyNode.class, changed.getId());
node2 = tx.load(MyNode.class, node2.getId());
assertThat(node1.getRefOne()).isEqualTo(node2);
assertThat(node1.getRefTwo()).containsOnly(node2);
assertThat(node2.getRefTwo()).containsOnly(node1);
Iterable<Map<String, Object>> actual = sessionFactory.openSession().query("" + " MATCH (n1:MyNode {name: 'Dirty thing.'})," + " (n2:MyNode {name: 'node2'})," + " (n3:MyNode {name: 'node3'})," + " (n2) - [:REL_ONE] -> (n1) " + " RETURN n1,n2,n3,exists((n1) - [:REL_TWO] - (n2)) as relTwo", emptyMap()).queryResults();
assertThat(actual).hasSize(1);
assertThat(actual.iterator().next()).containsEntry("relTwo", true);
}
use of org.neo4j.ogm.domain.gh640.MyNode in project neo4j-ogm by neo4j.
the class RelationshipMappingTest method deletesOfEntitiesWithTheSameButNotEqualParentShouldWork.
// GH-657
@Test
public void deletesOfEntitiesWithTheSameButNotEqualParentShouldWork() {
Session tx = sessionFactory.openSession();
Map<String, Object> result = tx.query("CREATE (n1:MyNode {name: 'node1'})\n" + "CREATE (n2:MyNode {name: 'node2'})\n" + "CREATE (n3:MyNode {name: 'node3'})\n" + "CREATE (n1) - [:REL_TWO] -> (n2)\n" + "CREATE (n2) - [:REL_ONE] -> (n1)\n" + "RETURN id(n1) as idOfn1, id(n2) as idOfn2, id(n3) as idOfn3", Collections.emptyMap()).iterator().next();
tx = sessionFactory.openSession();
MyNode node1 = tx.load(MyNode.class, (Long) result.get("idOfn1"));
MyNode node2 = tx.load(MyNode.class, (Long) result.get("idOfn2"));
MyNode node3 = tx.load(MyNode.class, (Long) result.get("idOfn3"));
assertThat(node1).isNotNull();
assertThat(node2).isNotNull();
assertThat(node3).isNotNull();
assertThat(node1.getRefOne()).isEqualTo(node2);
assertThat(node1.getRefTwo()).containsOnly(node2);
assertThat(node2.getRefTwo()).containsOnly(node1);
tx = sessionFactory.openSession();
MyNode changed = tx.load(MyNode.class, node1.getId()).copy();
changed.setName("Dirty thing.");
changed.setRefTwo(Collections.emptyList());
tx.save(changed);
// Again, verify in a new session.
tx = sessionFactory.openSession();
node1 = tx.load(MyNode.class, changed.getId());
assertThat(node1.getRefOne()).isEqualTo(node2);
assertThat(node1.getRefTwo()).isEmpty();
Iterable<Map<String, Object>> actual = sessionFactory.openSession().query("" + " MATCH (n1:MyNode {name: 'Dirty thing.'})," + " (n2:MyNode {name: 'node2'})," + " (n3:MyNode {name: 'node3'})," + " (n2) - [:REL_ONE] -> (n1) " + " RETURN n1,n2,n3,exists((n1) - [:REL_TWO] -> (n2)) as relTwo", emptyMap()).queryResults();
assertThat(actual).hasSize(1);
assertThat(actual.iterator().next()).containsEntry("relTwo", false);
}
use of org.neo4j.ogm.domain.gh640.MyNode in project neo4j-ogm by neo4j.
the class SingleUseEntityMapperTest method shouldMapAggregatedMapProperties.
// GH-873
@Test
public void shouldMapAggregatedMapProperties() {
SingleUseEntityMapper entityMapper = new SingleUseEntityMapper(sessionFactory.metaData(), new ReflectionEntityInstantiator(sessionFactory.metaData()));
Iterable<Map<String, Object>> results = sessionFactory.openSession().query("MATCH (t:MyNode) RETURN t.id AS id, t.type AS type, {b1: 'w1', b2: 'w2'} AS attributes LIMIT 1", EMPTY_MAP).queryResults();
assertThat(results).hasSize(1);
MyNode thingResult = entityMapper.map(MyNode.class, results.iterator().next());
assertThat(thingResult.getId()).isEqualTo("the-id");
assertThat(thingResult.getType()).isEqualTo("the-type");
assertThat(thingResult.getAttributes()).containsEntry("b1", "w1");
assertThat(thingResult.getAttributes()).containsEntry("b2", "w2");
}
use of org.neo4j.ogm.domain.gh640.MyNode in project neo4j-ogm by neo4j.
the class SingleUseEntityMapperTest method oneTimeSetUp.
@BeforeClass
public static void oneTimeSetUp() {
sessionFactory = new SessionFactory(getDriver(), "org.neo4j.ogm.domain.gh551", "org.neo4j.ogm.domain.gh391", "org.neo4j.ogm.domain.gh750", "org.neo4j.ogm.domain.gh777", "org.neo4j.ogm.domain.cineasts.minimum", "org.neo4j.ogm.domain.gh813", "org.neo4j.ogm.domain.gh873");
// Prepare test data
Session session = sessionFactory.openSession();
session.query("MATCH (n) DETACH DELETE n", EMPTY_MAP);
session.query("unwind range(1,10) as x with x create (n:ThingEntity {name: 'Thing ' + x}) return n", EMPTY_MAP);
Actor actor = new Actor("A1");
Movie movie = new Movie("M1");
Role role = new Role("R1", actor, movie);
session.save(role);
movie = new Movie("M2");
role = new Role("R2", actor, movie);
session.save(role);
session.save(new UserInfo("Foo", "Bar", "i@do.com"));
MyNode myNode = new MyNode();
myNode.setId("the-id");
myNode.setType("the-type");
myNode.getAttributes().put("a1", "v1");
myNode.getAttributes().put("a2", "v2");
session.save(myNode);
}
Aggregations