コード例 #1
0
        public void CypherQueryBuilderServiceBuildChildRelationshipItemReturnsSuccess()
        {
            //arrange
            const int    soc      = 3231;
            const int    year     = 2021;
            const string nodeName = "nodeName";
            const string relName  = "relNme";
            var          parent   = new GraphPredictedModel {
                Soc = soc
            };
            var child = new GraphPredictedYearModel {
                Soc = soc, Year = year
            };
            var expectedResults = new List <string>
            {
                $"MERGE (a:LmiSocPredictedYear {{Soc: {soc},Year: {year}}}) SET a.uri = '{HttpContentApi}lmisocpredictedyear/{child.ItemId.ToString().ToLowerInvariant()}',a.Measure = '',a.skos__prefLabel = 2021,a.Employment = 0,a.CreatedDate = datetime('{child.CreatedDate:O}')",
                $"MATCH (p:{nodeName} {{Soc: {soc}}}) MATCH (c:LmiSocPredictedYear {{Soc: {soc},Year: {year}}}) MERGE (p)-[rel:{relName}]->(c)",
            };

            //act
            var results = cypherQueryBuilderService.BuildChildRelationship(parent, child, nodeName, relName);

            //assert
            Assert.Equal(expectedResults, results);
        }
コード例 #2
0
        public void CypherQueryBuilderServiceBuildRelationshipReturnsSuccess()
        {
            //arrange
            const char space  = ' ';
            const int  soc    = 3231;
            const int  year   = 2021;
            var        parent = new GraphPredictedModel {
                Soc = soc
            };
            var child = new GraphPredictedYearModel {
                Soc = soc, Year = year
            };
            var sb = new StringBuilder();

            sb.Append($"MATCH (p:parent {{Soc: {soc}}})");
            sb.Append(space);
            sb.Append($"MATCH (c:child {{Soc: {soc},Year: {year}}})");
            sb.Append(space);
            sb.Append("MERGE (p)-[rel:relName]->(c)");
            var expectedResult = sb.ToString();

            //act
            var result = cypherQueryBuilderService.BuildRelationship("parent", "child", "relName", parent, child);

            //assert
            Assert.Equal(expectedResult, result);
        }
コード例 #3
0
        public void CypherQueryBuilderServiceBuildChildRelationshipReturnsSuccess()
        {
            //arrange
            const string nodeName = "nodeName";
            const int    soc      = 3231;
            const int    year     = 2021;
            var          item     = new GraphPredictedModel
            {
                Soc = soc,
                PredictedEmployment = new List <GraphPredictedYearModel>
                {
                    new GraphPredictedYearModel
                    {
                        Soc         = soc,
                        Year        = year,
                        Measure     = "a measure",
                        Employment  = new decimal(1234.5678),
                        CreatedDate = DateTime.UtcNow,
                    },
                },
            };
            var propertyInfo    = item.GetType().GetProperty(nameof(GraphPredictedModel.PredictedEmployment));
            var expectedResults = new List <string>
            {
                $"MERGE (a:LmiSocPredictedYear {{Soc: {soc},Year: {year}}}) SET a.uri = '{HttpContentApi}lmisocpredictedyear/{item.PredictedEmployment.First().ItemId.ToString().ToLowerInvariant()}',a.Measure = '{item.PredictedEmployment.First().Measure:O}',a.skos__prefLabel = {year},a.Employment = 1234.5678,a.CreatedDate = datetime('{item.PredictedEmployment.First().CreatedDate:O}')",
                $"MATCH (p:{nodeName} {{Soc: {soc}}}) MATCH (c:LmiSocPredictedYear {{Soc: {soc},Year: {year}}}) MERGE (p)-[rel:PredictedEmployment]->(c)",
            };

            //act
            var results = cypherQueryBuilderService.BuildChildRelationship(propertyInfo, item, nodeName);

            //assert
            Assert.Equal(expectedResults, results);
        }