Esempio n. 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);
        }
Esempio n. 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);
        }
Esempio n. 3
0
        public void CypherQueryBuilderServicGetPropertyValueReturnsExceptionForNullItem()
        {
            //arrange
            var item         = new GraphPredictedYearModel();
            var propertyInfo = item.GetType().GetProperty(nameof(GraphPredictedYearModel.Soc));

            //act
            var exceptionResult = Assert.Throws <ArgumentNullException>(() => cypherQueryBuilderService.GetPropertyValue(null, propertyInfo));

            //assert
            Assert.Equal("Value cannot be null. (Parameter 'item')", exceptionResult.Message);
        }
Esempio n. 4
0
        public void CypherQueryBuilderServiceGetPropertyValueReturnsSuccess(int soc, string createdDate, string employment, string measure, string fieldName, string expectedResult)
        {
            //arrange
            var item = new GraphPredictedYearModel
            {
                Soc         = soc,
                CreatedDate = DateTime.Parse(createdDate, CultureInfo.InvariantCulture),
                Employment  = decimal.Parse(employment, CultureInfo.InvariantCulture),
                Measure     = measure,
            };
            var propertyInfo = item.GetType().GetProperty(fieldName);

            //act
            var result = cypherQueryBuilderService.GetPropertyValue(item, propertyInfo);

            //assert
            Assert.Equal(expectedResult, result);
        }
Esempio n. 5
0
        public void CypherQueryBuilderServiceBuildSetPropertiesReturnsSuccess()
        {
            //arrange
            const string nodeAlias = "n";
            const string nodeName  = "NodeName";
            const int    soc       = 3231;
            const int    year      = 2021;
            var          item      = new GraphPredictedYearModel
            {
                Soc        = soc,
                Year       = year,
                Measure    = "a measure",
                Employment = new decimal(1234.5678),
            };
            var expectedResult = $"{nodeAlias}.uri = '{HttpContentApi}{nodeName.ToLowerInvariant()}/{item.ItemId.ToString().ToLowerInvariant()}',{nodeAlias}.Measure = '{item.Measure}',{nodeAlias}.skos__prefLabel = {item.Year},{nodeAlias}.Employment = {item.Employment},{nodeAlias}.CreatedDate = datetime('{item.CreatedDate:O}')";

            //act
            var result = cypherQueryBuilderService.BuildSetProperties(nodeAlias, nodeName, item);

            //assert
            Assert.Equal(expectedResult, result);
        }