public void DeleteMultipleRelationshipProperties2()
        {
            var node1 = Node.CreateNode();
            var node2 = Node.CreateNode();

            var now = DateTime.Now;

            var p = new Properties();

            p.SetProperty("name", "jack");
            p.SetProperty("age", 12);
            p.SetProperty("date", now);

            var rel1 = Relationship.CreateRelationship(node1, node2, "like", p);

            var cypher = new Cypher();

            cypher.Start(s => s.Relationship("rel1", rel1.Id));
            cypher.Delete(d => d.Relationship("rel1", new List <string> {
                "age", "name"
            }));
            cypher.Return(r => r.Relationship("rel1"));

            var results = cypher.Execute();

            var r1 = Relationship.GetRelationship(rel1.Id);

            Assert.IsTrue(r1 == results.First().Field <Relationship>("rel1"));

            Assert.IsTrue(r1.GetPropertyOrOther("age", -1) == -1);
            Assert.IsTrue(r1.GetPropertyOrOther("name", "deleted") == "deleted");

            Assert.IsTrue(r1.GetProperty <DateTime>("date") == now);
        }
        public void ReturnAllElements()
        {
            var node1 = Node.CreateNode();
            var node2 = Node.CreateNode();
            var rel1  = node1.CreateRelationshipTo(node2, "like");


            var cypher = new Cypher();

            cypher.Start(s => s.Node("node1", node1.Id));
            cypher.Match(m => m.Node("node1").To("rel1", "like").Node("node2"));
            cypher.Return(r => r.AllElements());

            var row = cypher.Execute().AsEnumerable().FirstOrDefault();

            Assert.IsNotNull(row);

            var objNode1 = row.Field <object>("node1");
            var objNode2 = row.Field <object>("node2");
            var objRel1  = row.Field <object>("rel1");

            var rowNode1 = RestNodeStore.CreateNodeFromJson((JObject)objNode1);
            var rowNode2 = RestNodeStore.CreateNodeFromJson((JObject)objNode2);
            var rowRel1  = RestRelationshipStore.CreateRelationshipFromJson((JObject)objRel1);

            Assert.IsTrue(node1.Id == rowNode1.Id);
            Assert.IsTrue(node2.Id == rowNode2.Id);
            Assert.IsTrue(rel1.Id == rowRel1.Id);
        }
        public void OperatorHasTest2()
        {
            var p1 = new Properties();

            p1.SetProperty("name", "jack");

            var p2 = new Properties();

            p2.SetProperty("name", "jill");
            p2.SetProperty("count", 3);

            var node1 = Node.CreateNode();
            var node2 = Node.CreateNode();
            var node3 = Node.CreateNode();

            var rel1 = node1.CreateRelationshipTo(node2, "like", p1);
            var rel2 = node1.CreateRelationshipTo(node3, "like", p2);

            var cypher = new Cypher();

            cypher.Start(s => s.Relationship("rel", rel1.Id, rel2.Id));
            cypher.Where(w => w.RelationshipHas("rel", "count"));
            cypher.Return(r => r.Relationship("rel"));

            var result = cypher.Execute();

            Assert.IsTrue(result.Count() == 1);
            Assert.IsTrue(result.First().Field <Relationship>("rel") == rel2);
        }
        public void CreateRelationshipWithProperties()
        {
            var node1 = Node.CreateNode();
            var node2 = Node.CreateNode();

            var p = new Properties();

            p.SetProperty("name", "jack");
            p.SetProperty("age", 12);

            var cypher = new Cypher();

            cypher.Start(s => s.Node("n1", node1.Id).Node("n2", node2.Id));

            cypher.Create(c => c.Node("n1").To("r", "like", p).Node("n2"));

            cypher.Return(r => r.Relationship("r"));

            var result = cypher.Execute();

            Assert.IsTrue(result.Count() == 1);
            Assert.IsTrue(result.First().Field <Relationship>("r") != null);
            var rel = result.First().Field <Relationship>("r");

            Assert.IsTrue(rel.StartNode == node1);
            Assert.IsTrue(rel.EndNode == node2);
            Assert.IsTrue(rel.GetProperty <string>("name") == "jack");
            Assert.IsTrue(rel.GetProperty <int>("age") == 12);
        }
        public void DeleteSingleRelationshipProperty()
        {
            var node1 = Node.CreateNode();
            var node2 = Node.CreateNode();


            var now = DateTime.Now;

            var p = new Properties();

            p.SetProperty("name", "jack");
            p.SetProperty("age", 12);
            p.SetProperty("date", now);

            var rel1 = Relationship.CreateRelationship(node1, node2, "like", p);

            var cypher = new Cypher();

            cypher.Start(s => s.Relationship("rel1", rel1.Id));
            cypher.Delete(d => d.Relationship("rel1", "age"));

            cypher.Execute();

            var r1 = Relationship.GetRelationship(rel1.Id);

            Assert.IsTrue(r1.GetPropertyOrOther("age", -1) == -1);

            Assert.IsTrue(r1.GetProperty <string>("name") == "jack");
            Assert.IsTrue(r1.GetProperty <DateTime>("date") == now);
        }
        public void DeleteMultipleNodeProperties2()
        {
            var now = DateTime.Now;

            var p = new Properties();

            p.SetProperty("name", "jack");
            p.SetProperty("age", 12);
            p.SetProperty("date", now);

            var node1 = Node.CreateNode(p);

            var cypher = new Cypher();

            cypher.Start(s => s.Node("node1", node1.Id));
            cypher.Delete(d => d.Node("node1", new List <string> {
                "age", "name"
            }));
            cypher.Return(r => r.Node("node1"));

            var results = cypher.Execute();

            var n1 = Node.GetNode(node1.Id);

            Assert.IsTrue(n1 == results.First().Field <Node>("node1"));

            Assert.IsTrue(n1.GetPropertyOrOther("age", -1) == -1);
            Assert.IsTrue(n1.GetPropertyOrOther("name", "deleted") == "deleted");

            Assert.IsTrue(n1.GetProperty <DateTime>("date") == now);
        }
        public void CreateNodesWithProperties()
        {
            var p = new Properties();

            p.SetProperty("name", "jack");
            p.SetProperty("age", 12);

            var node1 = Node.CreateNode();

            var cypher = new Cypher();

            cypher.Start(s => s.Node("node1", node1.Id));
            cypher.CreateUnique(l => l.Node("node1").To("likes").Node("node2", p));

            cypher.Return(r => r.Node("node2"));

            var result = cypher.Execute();

            Assert.IsTrue(result.Count() == 1);
            Assert.IsTrue(result.First().Field <Node>("node2") != null);
            var n2 = result.First().Field <Node>("node2");

            Assert.IsTrue(n2.GetProperty <string>("name") == "jack");
            Assert.IsTrue(n2.GetProperty <int>("age") == 12);
        }
Example #8
0
        public void SetNodeProperty2()
        {
            var now = DateTime.Now;

            var p = new Properties();

            p.SetProperty("name", "jack");
            p.SetProperty("age", 12);
            p.SetProperty("date", now);


            var node1 = Node.CreateNode();

            var cypher = new Cypher();

            cypher.Start(s => s.Node("node1", node1.Id));
            cypher.Set(s => s.Node("node1", p));
            cypher.Return(r => r.Node("node1"));

            var results = cypher.Execute();

            var n1 = results.First().Field <Node>("node1");

            Assert.IsTrue(n1.GetProperty <string>("name") == "jack");
            Assert.IsTrue(n1.GetProperty <int>("age") == 12);
            Assert.IsTrue(n1.GetProperty <DateTime>("date") == now);
        }
Example #9
0
        public void SetRelationshipProperty2()
        {
            var now = DateTime.Now;

            var p = new Properties();

            p.SetProperty("name", "jack");
            p.SetProperty("age", 12);
            p.SetProperty("date", now);


            var node1 = Node.CreateNode();
            var node2 = Node.CreateNode();

            var rel = Relationship.CreateRelationship(node1, node2, "like");

            var cypher = new Cypher();

            cypher.Start(s => s.Relationship("rel1", rel.Id));
            cypher.Set(s => s.Relationship("rel1", p));
            cypher.Return(r => r.Relationship("rel1"));

            var results = cypher.Execute();

            var r1 = results.First().Field <Relationship>("rel1");

            Assert.IsTrue(r1.GetProperty <string>("name") == "jack");
            Assert.IsTrue(r1.GetProperty <int>("age") == 12);
            Assert.IsTrue(r1.GetProperty <DateTime>("date") == now);
        }
        public void DeleteSingleNodeProperty()
        {
            var now = DateTime.Now;

            var p = new Properties();

            p.SetProperty("name", "jack");
            p.SetProperty("age", 12);
            p.SetProperty("date", now);

            var node1 = Node.CreateNode(p);

            var cypher = new Cypher();

            cypher.Start(s => s.Node("node1", node1.Id));
            cypher.Delete(d => d.Node("node1", "age"));

            cypher.Execute();

            var n1 = Node.GetNode(node1.Id);

            Assert.IsTrue(n1.GetPropertyOrOther("age", -1) == -1);

            Assert.IsTrue(n1.GetProperty <string>("name") == "jack");
            Assert.IsTrue(n1.GetProperty <DateTime>("date") == now);
        }
        public void OperatorHasTest1()
        {
            var p1 = new Properties();

            p1.SetProperty("name", "jack");

            var p2 = new Properties();

            p2.SetProperty("name", "jill");
            p2.SetProperty("count", 3);

            var node1 = Node.CreateNode(p1);
            var node2 = Node.CreateNode(p1);
            var node3 = Node.CreateNode(p2);

            var cypher = new Cypher();

            cypher.Start(s => s.Node("node", node1.Id, node2.Id, node3.Id));
            cypher.Where(w => w.NodeHas("node", "count"));
            cypher.Return(r => r.Node("node"));

            var result = cypher.Execute();

            Assert.IsTrue(result.Count() == 1);
            Assert.IsTrue(result.First().Field <Node>("node") == node3);
        }
        public void DeleteSingleNode()
        {
            var node1 = Node.CreateNode();

            var cypher = new Cypher();

            cypher.Start(s => s.Node("node1", node1.Id));
            cypher.Delete(d => d.Node("node1"));

            cypher.Execute();

            Node.GetNode(node1.Id);
        }
        public void CreateNode()
        {
            var cypher = new Cypher();

            cypher.Create(c => c.Node("node"));

            cypher.Return(r => r.Node("node"));

            var result = cypher.Execute();

            Assert.IsTrue(result.Count() == 1);
            Assert.IsTrue(result.First().Field <Node>("node") != null);
        }
Example #14
0
        public void GetNodeById()
        {
            var node = Node.CreateNode();

            var cypher = new Cypher();

            cypher.Start(s => s.Node("node", node.Id));
            cypher.Return(r => r.Node("node"));

            var result = cypher.Execute();

            Assert.IsTrue(result.Count() == 1);

            Assert.IsTrue(node == result.AsEnumerable().First().Field <Node>("node"));
        }
Example #15
0
        public void MultipleNodeStartingPoints1()
        {
            var node1 = Node.CreateNode();
            var node2 = Node.CreateNode();

            var cypher = new Cypher();

            cypher.Start(s => s.Node("n1", node1.Id).Node("n2", node2.Id));
            cypher.Return(r => r.Node("n1").Node("n2"));

            var result = cypher.Execute();

            Assert.IsTrue(result.Count() == 1);
            Assert.IsTrue(node1 == result.First().Field <Node>("n1"));
            Assert.IsTrue(node2 == result.First().Field <Node>("n2"));
        }
        public void CreateNodeIfMissing()
        {
            var node1 = Node.CreateNode();

            var cypher = new Cypher();

            cypher.Start(s => s.Node("node1", node1.Id));
            cypher.CreateUnique(l => l.Node("node1").To("likes").Node("node2"));

            cypher.Return(r => r.Node("node2"));

            var result = cypher.Execute();

            Assert.IsTrue(result.Count() == 1);
            Assert.IsTrue(result.First().Field <Node>("node2") != null);
        }
        public void DeleteSingleRelationship()
        {
            var node1 = Node.CreateNode();
            var node2 = Node.CreateNode();

            var rel = node1.CreateRelationshipTo(node2, "like");

            var cypher = new Cypher();

            cypher.Start(s => s.Node("node1", node1.Id));
            cypher.Match(m => m.Node("node1").To("r", "like").Node("node2"));
            cypher.Delete(d => d.Relationship("r"));

            cypher.Execute();

            Relationship.GetRelationship(rel.Id);
        }
Example #18
0
        public void GetRelationshipById()
        {
            var node1 = Node.CreateNode();
            var node2 = Node.CreateNode();

            var rel = node1.CreateRelationshipTo(node2, "like");

            var cypher = new Cypher();

            cypher.Start(s => s.Relationship("relationship", rel.Id));
            cypher.Return(r => r.Relationship("relationship"));

            var result = cypher.Execute();

            Assert.IsTrue(result.Count() == 1);

            Assert.IsTrue(rel == result.AsEnumerable().First().Field <Relationship>("relationship"));
        }
Example #19
0
        public void GetNodeByIndexLookup()
        {
            var node1 = Node.CreateNode();

            var value1 = UniqueValue();

            node1.AddToIndex("nodes", "name", value1);

            var cypher = new Cypher();

            cypher.Start(s => s.Node("node", "nodes", "name", value1));
            cypher.Return(r => r.Node("node"));

            var result = cypher.Execute();

            Assert.IsTrue(result.Count() == 1);

            Assert.IsTrue(node1 == result.First().Field <Node>("node"));
        }
Example #20
0
        public void GetMultipleNodesById()
        {
            var node1 = Node.CreateNode();
            var node2 = Node.CreateNode();
            var node3 = Node.CreateNode();

            var cypher = new Cypher();

            cypher.Start(s => s.Node("node", node1.Id, node2.Id, node3.Id));
            cypher.Return(r => r.Node("node"));

            var result = cypher.Execute();

            Assert.IsTrue(result.Count() == 3);

            Assert.IsTrue(node1 == result.First().Field <Node>("node"));
            Assert.IsTrue(node2 == result.ElementAt(1).Field <Node>("node"));
            Assert.IsTrue(node3 == result.ElementAt(2).Field <Node>("node"));
        }
Example #21
0
        public void GetNodeByIndexQuery()
        {
            var node1 = Node.CreateNode();

            var value1 = DateTime.Now.Millisecond;

            node1.AddToIndex("nodes", "name", value1);

            var cypher = new Cypher();

            cypher.Start(s => s.Node("node", "nodes", string.Format("name:{0}", value1)));
            cypher.Return(r => r.Node("node"));

            var result = cypher.Execute();

            Assert.IsTrue(result.Count() == 1);

            Assert.IsTrue(node1 == result.First().Field <Node>("node"));
        }
        public void MatchByRelationshipTypeUseIdentifer3()
        {
            var node1 = Node.CreateNode();
            var node2 = Node.CreateNode();
            var node3 = Node.CreateNode();

            var rel1 = node2.CreateRelationshipTo(node1, "knows");
            var rel2 = node1.CreateRelationshipTo(node3, "blocks");

            var cypher = new Cypher();

            cypher.Start(s => s.Node("node1", node1.Id));
            cypher.Match(m => m.Node("node1").From("r1", "knows").Node("matchedNode"));
            cypher.Return(r => r.Relationship("r1"));

            var result = cypher.Execute();

            Assert.IsTrue(result.Count() == 1);
            Assert.IsTrue(result.First().Field <Relationship>("r1") == rel1);
        }
        public void IncomingRelationships()
        {
            var node1 = Node.CreateNode();
            var node2 = Node.CreateNode();
            var node3 = Node.CreateNode();

            var rel1 = node1.CreateRelationshipTo(node2, "like");
            var rel2 = node3.CreateRelationshipTo(node1, "like");

            var cypher = new Cypher();

            cypher.Start(s => s.Node("node1", node1.Id));
            cypher.Match(m => m.Node("node1").From().Node("matchedNode"));
            cypher.Return(r => r.Node("matchedNode"));

            var result = cypher.Execute();

            Assert.IsTrue(result.Count() == 1);
            Assert.IsTrue(result.First().Field <Node>("matchedNode") == node3);
        }
Example #24
0
        public void MultipleRelationshipStartingPoints1()
        {
            var node1 = Node.CreateNode();
            var node2 = Node.CreateNode();
            var node3 = Node.CreateNode();

            var rel1 = node1.CreateRelationshipTo(node3, "like");
            var rel2 = node2.CreateRelationshipTo(node3, "like");

            var cypher = new Cypher();

            cypher.Start(s => s.Relationship("r1", rel1.Id).Relationship("r2", rel2.Id));
            cypher.Return(r => r.Relationship("r1").Relationship("r2"));

            var result = cypher.Execute();

            Assert.IsTrue(result.Count() == 1);
            Assert.IsTrue(rel1 == result.First().Field <Relationship>("r1"));
            Assert.IsTrue(rel2 == result.First().Field <Relationship>("r2"));
        }
        public void DirectedRelationshipsAndIdentifier()
        {
            var node1 = Node.CreateNode();
            var node2 = Node.CreateNode();
            var node3 = Node.CreateNode();

            var rel1 = node1.CreateRelationshipTo(node2, "knows");
            var rel2 = node1.CreateRelationshipTo(node3, "blocks");

            var cypher = new Cypher();

            cypher.Start(s => s.Node("node1", node1.Id));
            cypher.Match(m => m.Node("node1").To("r", string.Empty).Node());
            cypher.Return(r => r.Relationship("r"));

            var result = cypher.Execute();

            Assert.IsTrue(result.Count() == 2);
            Assert.IsTrue(result.First().Field <Relationship>("r") == rel1);
            Assert.IsTrue(result.ElementAt(1).Field <Relationship>("r") == rel2);
        }
        public void CreateNodeWithProperties()
        {
            var p = new Properties();

            p.SetProperty("name", "jack");
            p.SetProperty("age", 12);

            var cypher = new Cypher();

            cypher.Create(c => c.Node("node", p));

            cypher.Return(r => r.Node("node"));

            var result = cypher.Execute();

            Assert.IsTrue(result.Count() == 1);
            Assert.IsTrue(result.First().Field <Node>("node") != null);
            var n = result.First().Field <Node>("node");

            Assert.IsTrue(n.GetProperty <string>("name") == "jack");
            Assert.IsTrue(n.GetProperty <int>("age") == 12);
        }
        public void CreateRelationship()
        {
            var node1 = Node.CreateNode();
            var node2 = Node.CreateNode();

            var cypher = new Cypher();

            cypher.Start(s => s.Node("n1", node1.Id).Node("n2", node2.Id));

            cypher.Create(c => c.Node("n1").To("r", "like").Node("n2"));

            cypher.Return(r => r.Relationship("r"));

            var result = cypher.Execute();

            Assert.IsTrue(result.Count() == 1);
            Assert.IsTrue(result.First().Field <Relationship>("r") != null);
            var rel = result.First().Field <Relationship>("r");

            Assert.IsTrue(rel.StartNode == node1);
            Assert.IsTrue(rel.EndNode == node2);
        }
Example #28
0
        public void GetRelationshipByIndexQuery()
        {
            var node1 = Node.CreateNode();
            var node2 = Node.CreateNode();

            var rel = node1.CreateRelationshipTo(node2, "like");

            var value1 = DateTime.Now.Millisecond;

            rel.AddToIndex("relationships", "name", value1);

            var cypher = new Cypher();

            cypher.Start(s => s.Relationship("rel", "relationships", string.Format("name:{0}", value1)));
            cypher.Return(r => r.Relationship("rel"));

            var result = cypher.Execute();

            Assert.IsTrue(result.Count() == 1);

            Assert.IsTrue(rel == result.First().Field <Relationship>("rel"));
        }
Example #29
0
        public void GetRelationshipByIndexLookup()
        {
            var node1 = Node.CreateNode();
            var node2 = Node.CreateNode();

            var rel = node1.CreateRelationshipTo(node2, "like");

            var value1 = UniqueValue();

            rel.AddToIndex("relationships", "name", value1);

            var cypher = new Cypher();

            cypher.Start(s => s.Relationship("rel", "relationships", "name", value1));
            cypher.Return(r => r.Relationship("rel"));

            var result = cypher.Execute();

            Assert.IsTrue(result.Count() == 1);

            Assert.IsTrue(rel == result.First().Field <Relationship>("rel"));
        }
        public void MultipleRelatinship3()
        {
            var node1 = Node.CreateNode();
            var node2 = Node.CreateNode();
            var node3 = Node.CreateNode();

            var rel1 = node1.CreateRelationshipTo(node2, "knows");
            var rel2 = node3.CreateRelationshipTo(node2, "blocks");

            var cypher = new Cypher();

            cypher.Start(s => s.Node("node1", node1.Id));
            cypher.Match(m => m.Node("node1").To("knows").Node("node2").Any("blocks").Node("node3"));
            cypher.Return(r => r.Node("node1").Node("node2").Node("node3"));

            var result = cypher.Execute();

            Assert.IsTrue(result.Count() == 1);
            Assert.IsTrue(result.First().Field <Node>("node1") == node1);
            Assert.IsTrue(result.First().Field <Node>("node2") == node2);
            Assert.IsTrue(result.First().Field <Node>("node3") == node3);
        }