public void GivenValidTemplateJsonWithOptionalExpressions_WhenFactoryCreate_ThenTemplateCreated_Test(string json)
        {
            var templateContainer = JsonConvert.DeserializeObject <TemplateContainer>(json);

            var factory = new IotCentralJsonPathContentTemplateFactory();

            var template = factory.Create(templateContainer);

            Assert.NotNull(template);

            var jsonPathTemplate = template as IotCentralJsonPathContentTemplate;

            Assert.NotNull(jsonPathTemplate);

            Assert.Equal("telemetry", jsonPathTemplate.TypeName);
            Assert.Equal("$..[?(@telemetry)]", jsonPathTemplate.TypeMatchExpression);
            Assert.Equal("$.deviceId", jsonPathTemplate.DeviceIdExpression);
            Assert.Equal("$.enqueuedTime", jsonPathTemplate.TimestampExpression);
            Assert.Equal("$.messageProperties.patientId", jsonPathTemplate.PatientIdExpression);
            Assert.Collection(
                jsonPathTemplate.Values,
                v =>
            {
                Assert.True(v.Required);
                Assert.Equal("activity", v.ValueName);
                Assert.Equal("$.template.Activity", v.ValueExpression);
            },
                v =>
            {
                Assert.True(v.Required);
                Assert.Equal("bp_diastolic", v.ValueName);
                Assert.Equal("$.template.BloodPressure.Diastolic", v.ValueExpression);
            });
        }
        public void GivenInvalidTemplateTargetType_WhenFactoryCreate_ThenNullReturned_Test()
        {
            var templateContainer = new TemplateContainer();

            var factory = new IotCentralJsonPathContentTemplateFactory();

            var template = factory.Create(templateContainer);

            Assert.Null(template);
        }
        public void GivenInvalidTemplateJsonMissingValueField_WhenFactoryCreate_ThenTemplateErrorReturned_Test(string json)
        {
            var templateContainer = JsonConvert.DeserializeObject <TemplateContainer>(json);
            var factory           = new IotCentralJsonPathContentTemplateFactory();

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

            Assert.NotNull(ex);
            Assert.Contains("ValueName", ex.Message);
        }
        public void GivenInvalidTemplateBody_WhenFactoryCreate_ThenInvalidTemplateExceptionThrown_Test()
        {
            var templateContainer = new TemplateContainer
            {
                TemplateType = "IotCentralJsonPathContent",
                Template     = null,
            };

            var factory = new IotCentralJsonPathContentTemplateFactory();

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

            Assert.NotNull(ex);
        }
        public void GivenInvalidTemplateJsonMissingTypeMetadata_WhenFactoryCreate_ThenTemplateErrorReturned_Test(string json)
        {
            var templateContainer = JsonConvert.DeserializeObject <TemplateContainer>(json);
            var factory           = new IotCentralJsonPathContentTemplateFactory();

            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);
            });
        }
Exemplo n.º 6
0
        public void GivenValidTemplateJson_WhenFactoryCreate_ThenTemplateCreated_Test(string json)
        {
            var templateContainer = JsonConvert.DeserializeObject <TemplateContainer>(json);

            var factory = new IotCentralJsonPathContentTemplateFactory();

            var contentTemplate = factory.Create(templateContainer);

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

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

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

            Assert.Equal("telemetry", jsonPathTemplate.TypeName);
            Assert.Equal("$..[?(@telemetry)]", jsonPathTemplate.TypeMatchExpression);
            Assert.Equal("$.deviceId", jsonPathTemplate.DeviceIdExpression);
            Assert.Equal("$.enqueuedTime", jsonPathTemplate.TimestampExpression);
            Assert.Null(jsonPathTemplate.PatientIdExpression);
            Assert.Collection(
                jsonPathTemplate.Values,
                v =>
            {
                Assert.True(v.Required);
                Assert.Equal("activity", v.ValueName);
                Assert.Equal("$.template.Activity", v.ValueExpression);
            },
                v =>
            {
                Assert.True(v.Required);
                Assert.Equal("bp_diastolic", v.ValueName);
                Assert.Equal("$.template.BloodPressure.Diastolic", v.ValueExpression);
            });
        }