コード例 #1
0
        public void GivenValidTemplateJsonWithOptionalExpressions_WhenFactoryCreate_ThenTemplateCreated_Test(string json)
        {
            var templateContainer = JsonConvert.DeserializeObject <TemplateContainer>(json);

            var factory = new IotJsonPathContentTemplateFactory();

            var template = factory.Create(templateContainer);

            Assert.NotNull(template);

            var jsonPathTemplate = template as IotJsonPathContentTemplate;

            Assert.NotNull(jsonPathTemplate);

            Assert.Equal("heartrate", jsonPathTemplate.TypeName);
            Assert.Equal("$..[?(@Body.heartrate)]", jsonPathTemplate.TypeMatchExpression);
            Assert.Equal("$.SystemProperties.iothub-connection-device-id", jsonPathTemplate.DeviceIdExpression);
            Assert.Equal("$.Properties.iothub-creation-time-utc", jsonPathTemplate.TimestampExpression);
            Assert.Equal("$.patient", jsonPathTemplate.PatientIdExpression);
            Assert.Collection(jsonPathTemplate.Values, v =>
            {
                Assert.True(v.Required);
                Assert.Equal("hr", v.ValueName);
                Assert.Equal("$.Body.heartrate", v.ValueExpression);
            });
        }
コード例 #2
0
        public void GivenValidTemplateJson_WhenFactoryCreate_ThenTemplateCreated_Test(string json)
        {
            var templateContainer = JsonConvert.DeserializeObject <TemplateContainer>(json);

            var factory = new IotJsonPathContentTemplateFactory();

            var contentTemplate = factory.Create(templateContainer);

            Assert.NotNull(contentTemplate);
            Assert.IsType <IotJsonPathLegacyMeasurementExtractor>(contentTemplate);
            var extractor = contentTemplate as MeasurementExtractor;

            Assert.IsType <JsonPathCalculatedFunctionContentTemplateAdapter <IotJsonPathContentTemplate> >(extractor.Template);

            var jsonPathTemplate = (extractor.Template as JsonPathCalculatedFunctionContentTemplateAdapter <IotJsonPathContentTemplate>).InnerTemplate;

            Assert.Equal("heartrate", jsonPathTemplate.TypeName);
            Assert.Equal("$..[?(@Body.heartrate)]", jsonPathTemplate.TypeMatchExpression);
            Assert.Equal("$.SystemProperties.iothub-connection-device-id", jsonPathTemplate.DeviceIdExpression);
            Assert.Equal("$.Properties.iothub-creation-time-utc", jsonPathTemplate.TimestampExpression);
            Assert.Null(jsonPathTemplate.PatientIdExpression);
            Assert.Collection(jsonPathTemplate.Values, v =>
            {
                Assert.True(v.Required);
                Assert.Equal("hr", v.ValueName);
                Assert.Equal("$.Body.heartrate", v.ValueExpression);
            });
        }
コード例 #3
0
        public void GivenInvalidTemplateTargetType_WhenFactoryCreate_ThenNullReturned_Test()
        {
            var templateContainer = new TemplateContainer();

            var factory = new IotJsonPathContentTemplateFactory();

            var template = factory.Create(templateContainer);

            Assert.Null(template);
        }
コード例 #4
0
        public void GivenInvalidTemplateJsonMissingValueField_WhenFactoryCreate_ThenTemplateErrorReturned_Test(string json)
        {
            var templateContainer = JsonConvert.DeserializeObject <TemplateContainer>(json);
            var factory           = new IotJsonPathContentTemplateFactory();

            var ex = Assert.Throws <InvalidTemplateException>(() => factory.Create(templateContainer));

            Assert.NotNull(ex);
            Assert.Contains("ValueName", ex.Message);
        }
コード例 #5
0
        public void GivenInvalidTemplateBody_WhenFactoryCreate_ThenInvalidTemplateExceptionThrown_Test()
        {
            var templateContainer = new TemplateContainer
            {
                TemplateType = "IotJsonPathContentTemplate",
                Template     = null,
            };

            var factory = new IotJsonPathContentTemplateFactory();

            var ex = Assert.Throws <InvalidTemplateException>(() => factory.Create(templateContainer));

            Assert.NotNull(ex);
        }
コード例 #6
0
        public void GivenInvalidTemplateJsonMissingTypeMetadata_WhenFactoryCreate_ThenTemplateErrorReturned_Test(string json)
        {
            var templateContainer = JsonConvert.DeserializeObject <TemplateContainer>(json);
            var factory           = new IotJsonPathContentTemplateFactory();

            var ex = Assert.Throws <AggregateException>(() => factory.Create(templateContainer));

            Assert.NotNull(ex);
            Assert.Collection(
                ex.InnerExceptions,
                p =>
            {
                Assert.IsType <InvalidTemplateException>(p);
                Assert.Contains("TypeName", ex.Message);
            },
                p =>
            {
                Assert.IsType <InvalidTemplateException>(p);
                Assert.Contains("TypeMatchExpression", ex.Message);
            });
        }