public async Task Transform_ShouldThrowException_If_SubstituteNotFound() { // Arrange _transformDataProvider .Setup(_ => _.Get(It.IsAny <string>())) .ReturnsAsync((IElement)null); ReusableElementSchemaTransformFactory = new ReusableElementSchemaTransformFactory(_transformDataProvider.Object); var element = (Reusable) new ElementBuilder() .WithType(EElementType.Reusable) .WithQuestionId("ReusableTest") .Build(); element.ElementRef = "test"; // Act var result = await Assert.ThrowsAsync <Exception>(() => ReusableElementSchemaTransformFactory.Transform(new FormSchema() { Pages = new List <Page> { new Page { Elements = new List <IElement> { element } } } })); // Assert Assert.Equal("ReusableElementSchemaTransformFactory::CreateSubstituteRecord, No substitute element could be created for question ReusableTest", result.Message); }
public async Task Transform_ShouldCall_TransformDataProvider_And_ShouldUpdate_CustomValidationMessage_WhenSupplied() { // Arrange var validationMessage = "custom validation message"; _transformDataProvider .Setup(_ => _.Get(It.IsAny <string>())) .ReturnsAsync(new Textbox { Properties = new BaseProperty { QuestionId = "ReusableTest" } }); ReusableElementSchemaTransformFactory = new ReusableElementSchemaTransformFactory(_transformDataProvider.Object); var element = (Reusable) new ElementBuilder() .WithType(EElementType.Reusable) .WithQuestionId("ReusableTest") .WithCustomValidationMessage(validationMessage) .Build(); element.ElementRef = "test"; // Act var result = await ReusableElementSchemaTransformFactory.Transform(new FormSchema() { Pages = new List <Page> { new Page() { Elements = new List <IElement> { element } } } }); // Assert Assert.IsType <FormSchema>(result); Assert.Equal(validationMessage, result.Pages.FirstOrDefault().Elements.FirstOrDefault().Properties.CustomValidationMessage); }
public async Task Transform_ShouldCall_TransformDataProvider_And_ShouldUpdate_TargetMapping_And_Optional_Properties() { // Arrange _transformDataProvider .Setup(_ => _.Get(It.IsAny <string>())) .ReturnsAsync(new Textbox { Properties = new BaseProperty { QuestionId = "ReusableTest" } }); ReusableElementSchemaTransformFactory = new ReusableElementSchemaTransformFactory(_transformDataProvider.Object); var element = (Reusable) new ElementBuilder() .WithType(EElementType.Reusable) .WithQuestionId("ReusableTest") .WithOptional(true) .WithTargetMapping("target.mapping") .Build(); element.ElementRef = "test"; // Act var result = await ReusableElementSchemaTransformFactory.Transform(new FormSchema() { Pages = new List <Page> { new Page() { Elements = new List <IElement> { element } } } }); // Assert Assert.IsType <FormSchema>(result); Assert.Equal("target.mapping", result.Pages.FirstOrDefault().Elements.FirstOrDefault().Properties.TargetMapping); Assert.True(result.Pages.FirstOrDefault().Elements.FirstOrDefault().Properties.Optional); }
public async Task Transform_ShouldCall_TransformDataProvider_And_Element_ShouldBe_Replaced() { // Arrange _transformDataProvider .Setup(_ => _.Get(It.IsAny <string>())) .ReturnsAsync(new Textbox { Properties = new BaseProperty { QuestionId = "ReusableTest" } }); ReusableElementSchemaTransformFactory = new ReusableElementSchemaTransformFactory(_transformDataProvider.Object); var element = (Reusable) new ElementBuilder() .WithType(EElementType.Reusable) .WithQuestionId("ReusableTest") .Build(); element.ElementRef = "test"; // Act var result = await ReusableElementSchemaTransformFactory.Transform(new FormSchema() { Pages = new List <Page> { new Page { Elements = new List <IElement> { element } } } }); // Assert Assert.IsType <FormSchema>(result); Assert.True(result.Pages.FirstOrDefault().Elements.FirstOrDefault().Type == EElementType.Textbox); _transformDataProvider.Verify(_ => _.Get(It.Is <string>(x => x.Equals("test"))), Times.Once); }
public ReusableElementSchemaTransformFactoryTests() { ReusableElementSchemaTransformFactory = new ReusableElementSchemaTransformFactory(_transformDataProvider.Object); }