public void BuildDynamicControlData_ReturnsNullForPropertyInfoWithNoDynamicControlAttribute()
        {
            // Arrange
            DynamicFormBuilder dynamicFormsBuilder = new DynamicFormBuilder();
            PropertyInfo       propertyInfo        = typeof(DummyRequestModel).GetProperty(nameof(DummyRequestModel.Password));

            // Act
            DynamicControlData result = dynamicFormsBuilder.BuildDynamicControlData(propertyInfo);

            // Assert
            Assert.Null(result);
        }
        public void BuildDynamicControlData_CreatesDynamicControlDataFromPropertyInfo()
        {
            // Arrange
            PropertyInfo       propertyInfo        = typeof(DummyRequestModel).GetProperty(nameof(DummyRequestModel.Email));
            DynamicFormBuilder dynamicFormsBuilder = new DynamicFormBuilder();

            // Act
            DynamicControlData result = dynamicFormsBuilder.BuildDynamicControlData(propertyInfo);

            // Assert
            Assert.Equal("email", result.Name);
            Assert.Equal(0, result.Order);
            Assert.Equal("input", result.TagName);
            Assert.NotNull(result.ValidatorData);
            Assert.Equal(result.ValidatorData.Count, 1);
            Assert.Equal("validateMatches", result.ValidatorData[0].Name);
            Assert.NotNull(result.AsyncValidatorData);
            Assert.Equal("asyncValidate", result.AsyncValidatorData.Name);
            Assert.Equal(DummyStrings.Dummy, result.DisplayName);
            Assert.NotNull(result.Properties);
            Assert.Equal(result.Properties["type"], "email");
            Assert.Equal(result.Properties["placeholder"], DummyStrings.Dummy);
        }