public void UsesSuppliedParamName_WhenMultipleLabelsAreSpecified()
        {
            var model = new MultiLabel { Id = 1 };
            var helper = new CypherExtensionTestHelper().SetupGraphClient();

            var q = helper.Query.MergeEntity(model, "n");

            Assert.AreEqual("MERGE (n:Multi:Label {id:{n}.id})", q.Query.QueryText);
        }
        public void HandlesLabelsWithSpaces()
        {
            var model = new MultiLabelWithSpace { Id = 1 };
            var helper = new CypherExtensionTestHelper().SetupGraphClient();

            var q = helper.Query.MergeEntity(model);

            Assert.AreEqual("MERGE (multilabelwithspace:Multi:`Space Label` {id:{multilabelwithspace}.id})", q.Query.QueryText);
        }
        public void ToCypherStringMergeTest()
        {
            //setup
            var model = CreateModel();
            var helper = new CypherExtensionTestHelper();

            //act
            var result = model.ToCypherString<CypherModel, CypherMergeAttribute>(helper.CypherExtensionContext);
            var result2 = model.ToCypherString<CypherModel, CypherMergeAttribute>(helper.CypherExtensionContext);

            //assert
            Assert.AreEqual("cyphermodel:CypherModel {id:{cyphermodel}.id}", result);
            Assert.AreEqual(result,result2);
        }
        public void MatchEntityTest()
        {
            //setup
            var helper = new CypherExtensionTestHelper().SetupGraphClient();

            var model = CreateModel();
            model.id = Guid.Parse("9aa1343f-18a4-41a6-a414-34b7df62c919");
            //act
            var q = helper.Query.MatchEntity(model).Return(cyphermodel => cyphermodel.As<CypherModel>());
            
            Console.WriteLine(q.GetFormattedDebugText());

            //assert
            Assert.AreEqual("MATCH (cyphermodel:CypherModel {id:{cyphermodel}.id})\r\nRETURN cyphermodel", q.Query.QueryText);
        }
        public void MatchEntityOverrideTest()
        {
            //setup
            var helper = new CypherExtensionTestHelper().SetupGraphClient();

            var model = CreateModel();
            
            //act
            var q = helper.Query
                            .MatchEntity(model, propertyOverride: model.UseProperties(x => x.firstName, x => x.isLegend))
                            .Return(cyphermodel => cyphermodel.As<CypherModel>());

            Console.WriteLine(q.GetFormattedDebugText());

            //assert
            Assert.AreEqual("MATCH (cyphermodel:CypherModel {firstName:{cyphermodel}.firstName,isLegend:{cyphermodel}.isLegend})\r\nRETURN cyphermodel", q.Query.QueryText);
        }
        public void MergeRelationshipDownCastTest()
        {
            //setup
            var helper = new CypherExtensionTestHelper().SetupGraphClient();

            var model = (BaseRelationship) new ComponentOf("from", "to");

            //act
            var q = helper.Query.MergeRelationship(model);

            Console.WriteLine(q.GetFormattedDebugText());

            //assert
            Assert.AreEqual(@"MERGE (from)-[fromto:COMPONENT_OF {quantity:{
  quantity: 0.0,
  unitOfMeasure: ""Gram"",
  factor: 0,
  instructionText: """"
}.quantity,unitOfMeasure:{
  quantity: 0.0,
  unitOfMeasure: ""Gram"",
  factor: 0,
  instructionText: """"
}.unitOfMeasure,factor:{
  quantity: 0.0,
  unitOfMeasure: ""Gram"",
  factor: 0,
  instructionText: """"
}.factor,instructionText:{
  quantity: 0.0,
  unitOfMeasure: ""Gram"",
  factor: 0,
  instructionText: """"
}.instructionText}]->(to)
ON MATCH SET fromto.quantity = 0.0
ON MATCH SET fromto.unitOfMeasure = ""Gram""
ON MATCH SET fromto.factor = 0
ON MATCH SET fromto.instructionText = """"", q.GetFormattedDebugText());
        }
Ejemplo n.º 7
0
        public void MergeRelationshipOnMatchOverrideTest()
        {
            //setup
            var helper = new CypherExtensionTestHelper().SetupGraphClient();

            var model = new ComponentOf("from", "to");

            //act
            var q = helper.Query.MergeRelationship(model, onMatchOverride: model.UseProperties(x => x.quantity));

            Console.WriteLine(q.GetFormattedDebugText());

            //assert
            Assert.AreEqual(@"MERGE (from)-[fromto:COMPONENT_OF {quantity:{
  quantity: 0.0,
  unitOfMeasure: ""Gram"",
  factor: 0,
  instructionText: """"
}.quantity,unitOfMeasure:{
  quantity: 0.0,
  unitOfMeasure: ""Gram"",
  factor: 0,
  instructionText: """"
}.unitOfMeasure,factor:{
  quantity: 0.0,
  unitOfMeasure: ""Gram"",
  factor: 0,
  instructionText: """"
}.factor,instructionText:{
  quantity: 0.0,
  unitOfMeasure: ""Gram"",
  factor: 0,
  instructionText: """"
}.instructionText}]->(to)
ON MATCH SET fromto.quantity = 0.0", q.GetFormattedDebugText().CorrectLineBreak());
        }
        public void MergeEntityOverrideOnCreateTest()
        {
            //setup
            var helper = new CypherExtensionTestHelper().SetupGraphClient();
            var model  = CreateModel();

            //act
            var q = helper.Query.MergeEntity(model, onCreateOverride: model.UseProperties(x => x.firstName));

            Console.WriteLine(q.GetFormattedDebugText());

            //assert
            Assert.AreEqual(@"MERGE (cyphermodel:CypherModel {id:{
  id: ""b00b7355-ce53-49f2-a421-deadb655673d""
}.id})
ON MATCH
SET cyphermodel.isLegend = false
ON MATCH
SET cyphermodel.answerToTheMeaningOfLifeAndEverything = 42
ON CREATE
SET cyphermodel = {
  firstName: ""Foo""
}", q.GetFormattedDebugText());
        }
Ejemplo n.º 9
0
        public void MergeEntityOverrideMergeTest()
        {
            //setup
            var helper = new CypherExtensionTestHelper().SetupGraphClient();
            var model  = CreateModel();

            //act
            var q = helper.Query.MergeEntity(model, mergeOverride: model.UseProperties(x => x.firstName));

            Console.WriteLine(q.GetFormattedDebugText());

            //assert
            Assert.AreEqual(@"MERGE (cyphermodel:CypherModel {firstName:{
  firstName: ""Foo""
}.firstName})
ON MATCH SET cyphermodel.isLegend = false
ON MATCH SET cyphermodel.answerToTheMeaningOfLifeAndEverything = 42
ON CREATE SET cyphermodel = {
  firstName: ""Foo"",
  dateOfBirth: ""1981-04-01T00:00:00+00:00"",
  isLegend: false,
  answerToTheMeaningOfLifeAndEverything: 42
}", q.GetFormattedDebugText());
        }
        public void MatchEntityOverrideTest()
        {
            //setup
            var helper = new CypherExtensionTestHelper().SetupGraphClient();

            var model = CreateModel();

            //act
            var q = helper.Query
                    .MatchEntity(model, propertyOverride: model.UseProperties(x => x.firstName, x => x.isLegend))
                    .Return(cyphermodel => cyphermodel.As <CypherModel>());

            Console.WriteLine(q.GetFormattedDebugText());

            //assert
            Assert.AreEqual(@"MATCH (cyphermodel:CypherModel {firstName:{
  firstName: ""Foo"",
  isLegend: false
}.firstName,isLegend:{
  firstName: ""Foo"",
  isLegend: false
}.isLegend})
RETURN cyphermodel", q.GetFormattedDebugText());
        }
Ejemplo n.º 11
0
        public void MergeEntityKeyTest()
        {
            //setup
            var helper = new CypherExtensionTestHelper().SetupGraphClient();
            var model  = CreateModel();

            //act
            var q = helper.Query.MergeEntity(model, "key");

            Console.WriteLine(q.GetFormattedDebugText());

            //assert
            Assert.AreEqual(@"MERGE (key:CypherModel {id:{
  id: ""b00b7355-ce53-49f2-a421-deadb655673d""
}.id})
ON MATCH SET key.isLegend = false
ON MATCH SET key.answerToTheMeaningOfLifeAndEverything = 42
ON CREATE SET key = {
  firstName: ""Foo"",
  dateOfBirth: ""1981-04-01T00:00:00+00:00"",
  isLegend: false,
  answerToTheMeaningOfLifeAndEverything: 42
}", q.GetFormattedDebugText());
        }
        public void MergeEntityKeyTest()
        {
            //setup
            var helper = new CypherExtensionTestHelper().SetupGraphClient();
            var model = CreateModel();

            //act
            var q = helper.Query.MergeEntity(model,"key");

            Console.WriteLine(q.GetFormattedDebugText());

            //assert
            Assert.AreEqual(@"MERGE (key:CypherModel {id:{
  id: ""b00b7355-ce53-49f2-a421-deadb655673d""
}.id})
ON MATCH SET key.isLegend = false
ON MATCH SET key.answerToTheMeaningOfLifeAndEverything = 42
ON CREATE SET key = {
  firstName: ""Foo"",
  dateOfBirth: ""1981-04-01T00:00:00+00:00"",
  isLegend: false,
  answerToTheMeaningOfLifeAndEverything: 42
}", q.GetFormattedDebugText());
        }
        public void MergeEntityOverrideMergeTest()
        {
            //setup
            var helper = new CypherExtensionTestHelper().SetupGraphClient();
            var model = CreateModel();

            //act
            var q = helper.Query.MergeEntity(model, mergeOverride:model.UseProperties(x => x.firstName));

            Console.WriteLine(q.GetFormattedDebugText());

            //assert
            Assert.AreEqual(@"MERGE (cyphermodel:CypherModel {firstName:{
  firstName: ""Foo""
}.firstName})
ON MATCH SET cyphermodel.isLegend = false
ON MATCH SET cyphermodel.answerToTheMeaningOfLifeAndEverything = 42
ON CREATE SET cyphermodel = {
  firstName: ""Foo"",
  dateOfBirth: ""1981-04-01T00:00:00+00:00"",
  isLegend: false,
  answerToTheMeaningOfLifeAndEverything: 42
}", q.GetFormattedDebugText());
        }
        public void MergeRelationshipAllArgsTest()
        {
            //setup
            var helper = new CypherExtensionTestHelper().SetupGraphClient();

            var model = new ComponentOf("from", "to");

            //act
            var q = helper.Query.MergeRelationship(model, new List<CypherProperty>(), new List<CypherProperty>(), new List<CypherProperty>());

            Console.WriteLine(q.GetFormattedDebugText());

            //assert
            Assert.AreEqual("MERGE (from)-[fromto:COMPONENT_OF {}]->(to)", q.Query.QueryText);
        }
        public void MergeRelationshipOnCreateOverrideTest()
        {
            //setup
            var helper = new CypherExtensionTestHelper().SetupGraphClient();

            var model = new ComponentOf("from", "to");

            //act
            var q = helper.Query.MergeRelationship(model, onCreateOverride: model.UseProperties(x => x.quantity));

            Console.WriteLine(q.GetFormattedDebugText());

            //assert
            Assert.AreEqual("MERGE (from)-[fromto:COMPONENT_OF {quantity:{fromto}.quantity,unitOfMeasure:{fromto}.unitOfMeasure,factor:{fromto}.factor,instructionText:{fromto}.instructionText}]->(to)\r\nON MATCH\r\nSET fromto.quantity={fromto}.quantity,fromto.unitOfMeasure={fromto}.unitOfMeasure,fromto.factor={fromto}.factor,fromto.instructionText={fromto}.instructionText\r\nON CREATE\r\nSET fromto.quantity={fromto}.quantity", q.Query.QueryText);
        }
        public void MergeEntityAllArgsTest()
        {
            //setup
            var helper = new CypherExtensionTestHelper().SetupGraphClient();
            var model = CreateModel();

            //act
            var q = helper.Query.MergeEntity(model,"key", new List<CypherProperty>(),new List<CypherProperty>(), new List<CypherProperty>(), "(a:Node)-->","<--(b:Node)");

            Console.WriteLine(q.GetFormattedDebugText());

            //assert
            Assert.AreEqual("MERGE (a:Node)-->(key:CypherModel {})<--(b:Node)", q.Query.QueryText);
        }
        public void MergeEntityOverrideOnCreateTest()
        {
            //setup
            var helper = new CypherExtensionTestHelper().SetupGraphClient();
            var model = CreateModel();

            //act
            var q = helper.Query.MergeEntity(model, onCreateOverride: model.UseProperties(x => x.firstName));

            Console.WriteLine(q.GetFormattedDebugText());

            //assert
            Assert.AreEqual("MERGE (cyphermodel:CypherModel {id:{cyphermodel}.id})\r\nON MATCH\r\nSET cyphermodel.isLegend={cyphermodel}.isLegend,cyphermodel.answerToTheMeaningOfLifeAndEverything={cyphermodel}.answerToTheMeaningOfLifeAndEverything\r\nON CREATE\r\nSET cyphermodel.firstName={cyphermodel}.firstName", q.Query.QueryText);
        }
        public void MatchEntityKeyTest()
        {
            //setup
            var helper = new CypherExtensionTestHelper().SetupGraphClient();

            var model = CreateModel();
            
            //act
            var q = helper.Query.MatchEntity(model,"key").Return(cyphermodel => cyphermodel.As<CypherModel>());

            Console.WriteLine(q.Query.DebugQueryText);

            //assert
            Assert.AreEqual(@"MATCH (key:CypherModel {id:{
  ""id"": ""b00b7355-ce53-49f2-a421-deadb655673d""
}.id})
RETURN cyphermodel", q.Query.DebugQueryText);
        }
        public void MatchAllTest()
        {
            //setup
            var helper = new CypherExtensionTestHelper().SetupGraphClient();

            //act
            var result = helper.Query.MatchEntity(new CypherModel(), propertyOverride: new List<CypherProperty>());

            //assert
            Assert.AreEqual("MATCH (cyphermodel:CypherModel {})", result.GetFormattedDebugText());
        }
        public void MatchEntityPrePostKeyOverrideTest()
        {
            //setup
            var helper = new CypherExtensionTestHelper().SetupGraphClient();

            var model = CreateModel();

            //act
            var q = helper.Query.MatchEntity(model, "key",  "(a:Node)-->", "<--(b:Node)", new List<CypherProperty>()).Return(cyphermodel => cyphermodel.As<CypherModel>());

            Console.WriteLine(q.GetFormattedDebugText());

            //assert
            Assert.AreEqual("MATCH (a:Node)-->(key:CypherModel {})<--(b:Node)\r\nRETURN cyphermodel", q.Query.QueryText);
        }
        public void MergeEntityOverrideOnMatchTest()
        {
            //setup
            var helper = new CypherExtensionTestHelper().SetupGraphClient();
            var model = CreateModel();

            //act
            var q = helper.Query.MergeEntity(model, onMatchOverride: model.UseProperties(x => x.firstName));

            Console.WriteLine(q.Query.QueryText);

            //assert
            Assert.AreEqual(@"MERGE (cyphermodel:CypherModel {id:{cyphermodelMatchKey}.id})
ON MATCH
SET cyphermodel.firstName = {cyphermodelfirstName}
ON CREATE
SET cyphermodel = {cyphermodelOnCreate}", q.Query.QueryText);
        }
        public void MergeEntityOverrideOnCreateTest()
        {
            //setup
            var helper = new CypherExtensionTestHelper().SetupGraphClient();
            var model = CreateModel();

            //act
            var q = helper.Query.MergeEntity(model, onCreateOverride: model.UseProperties(x => x.firstName));

            Console.WriteLine(q.GetFormattedDebugText());

            //assert
            Assert.AreEqual(@"MERGE (cyphermodel:CypherModel {id:{
  id: ""b00b7355-ce53-49f2-a421-deadb655673d""
}.id})
ON MATCH SET cyphermodel.isLegend = false
ON MATCH SET cyphermodel.answerToTheMeaningOfLifeAndEverything = 42
ON CREATE SET cyphermodel = {
  firstName: ""Foo""
}", q.GetFormattedDebugText());
        }
        public void MatchEntityPreTest()
        {
            //setup
            var helper = new CypherExtensionTestHelper().SetupGraphClient();

            var model = CreateModel();
            

            //act
            var q = helper.Query.MatchEntity(model, preCql: "(a:Node)-->").Return(cyphermodel => cyphermodel.As<CypherModel>());

            Console.WriteLine(q.GetFormattedDebugText());

            //assert
            Assert.AreEqual(@"MATCH (a:Node)-->(cyphermodel:CypherModel {id:{
  id: ""b00b7355-ce53-49f2-a421-deadb655673d""
}.id})
RETURN cyphermodel", q.GetFormattedDebugText());
        }
        public void MergeEntityKeyTest()
        {
            //setup
            var helper = new CypherExtensionTestHelper().SetupGraphClient();
            var model = CreateModel();

            //act
            var q = helper.Query.MergeEntity(model,"key");

            Console.WriteLine(q.GetFormattedDebugText());

            //assert
            Assert.AreEqual("MERGE (key:CypherModel {id:{key}.id})\r\nON MATCH\r\nSET key.isLegend={key}.isLegend,key.answerToTheMeaningOfLifeAndEverything={key}.answerToTheMeaningOfLifeAndEverything\r\nON CREATE\r\nSET key.firstName={key}.firstName,key.dateOfBirth={key}.dateOfBirth,key.isLegend={key}.isLegend,key.answerToTheMeaningOfLifeAndEverything={key}.answerToTheMeaningOfLifeAndEverything", q.Query.QueryText);
        }
        public void MatchEntityKeyTest()
        {
            //setup
            var helper = new CypherExtensionTestHelper().SetupGraphClient();

            var model = CreateModel();
            
            //act
            var q = helper.Query.MatchEntity(model,"key").Return(cyphermodel => cyphermodel.As<CypherModel>());

            Console.WriteLine(q.GetFormattedDebugText());

            //assert
            Assert.AreEqual("MATCH (key:CypherModel {id:{key}.id})\r\nRETURN cyphermodel", q.Query.QueryText);
        }
        public void MergeRelationshipOnMatchOverrideTest()
        {
            //setup
            var helper = new CypherExtensionTestHelper().SetupGraphClient();

            var model = new ComponentOf("from", "to");

            //act
            var q = helper.Query.MergeRelationship(model,onMatchOverride:model.UseProperties(x => x.quantity));

            Console.WriteLine(q.GetFormattedDebugText());

            //assert
            Assert.AreEqual(@"MERGE (from)-[fromto:COMPONENT_OF {quantity:{
  quantity: 0.0,
  unitOfMeasure: ""Gram"",
  factor: 0,
  instructionText: """"
}.quantity,unitOfMeasure:{
  quantity: 0.0,
  unitOfMeasure: ""Gram"",
  factor: 0,
  instructionText: """"
}.unitOfMeasure,factor:{
  quantity: 0.0,
  unitOfMeasure: ""Gram"",
  factor: 0,
  instructionText: """"
}.factor,instructionText:{
  quantity: 0.0,
  unitOfMeasure: ""Gram"",
  factor: 0,
  instructionText: """"
}.instructionText}]->(to)
ON MATCH SET fromto.quantity = 0.0", q.GetFormattedDebugText());
        }