Example #1
0
        public void Populate_WithRegularAndComplexClass_Works()
        {
            // Let's pretend these are the values our properties are currently bound to from our View
            FromEmail.Value   = "LOL_I_AM_NOT_AN_EMAIL!"; // bad
            ToName.Value      = "X";                      // bad
            MessageHtml.Value = "NOPE";                   // bad
            Rating.Value      = 5;                        // good

            var testClassInstance = ValidatableProps.Populate <TestClass>();

            Assert.AreEqual("LOL_I_AM_NOT_AN_EMAIL!", testClassInstance.FromEmail);
            Assert.AreEqual("X", testClassInstance.ToName);
            Assert.AreEqual("NOPE", testClassInstance.MessageHtml);
            Assert.AreEqual(5, testClassInstance.Rating);

            var complexClassValidatable1 = new Validatable <TestClass>(nameof(TestComplexClass.TestClassInstance));

            complexClassValidatable1.Value = testClassInstance;

            var complexClassValidatable2 = new Validatable <string>(nameof(TestComplexClass.MyName));

            complexClassValidatable2.Value = "Test Class!";

            var complexValidatables      = new Validatables(complexClassValidatable1, complexClassValidatable2);
            var testComplexClassInstance = complexValidatables.Populate <TestComplexClass>();

            Assert.AreEqual("Test Class!", testComplexClassInstance.MyName);
            Assert.AreEqual(testClassInstance, testComplexClassInstance.TestClassInstance);
        }
Example #2
0
        public void Setup()
        {
            // Let's pretend these are the properties that we would have in a ViewModel
            FromEmail   = new Validatable <string>(nameof(TestClass.FromEmail));
            ToName      = new Validatable <string>(nameof(TestClass.ToName));
            Rating      = new Validatable <int?>(nameof(TestClass.Rating));
            MessageHtml = new Validatable <string>(nameof(TestClass.MessageHtml));

            Validator        = new TestClassValidator();
            ValidatableProps = new Validatables(FromEmail, ToName, MessageHtml, Rating);
        }
        public void SetupForValidation()
        {
            // set validators and prop groups
            _emailValidator    = new EmailValidator();
            _emailValidatables = new Validatables(RecipientName, RecipientEmailAddress);

            _beerValidator    = new BeerValidator();
            _beerValidatables = new Validatables(BeerName, BeerRating);

            // set some defaults
            BeerName.Value   = "Guinness";
            BeerRating.Value = 8;
        }
Example #4
0
        public void Populate_WithExistingClass_Works()
        {
            // Let's pretend these are the values our properties are currently bound to from our View
            FromEmail.Value   = "OLD VALUE"; // bad
            ToName.Value      = "OLD VALUE"; // bad
            MessageHtml.Value = "OLD VALUE"; // bad
            Rating.Value      = 5;           // good

            var testClassInstance = ValidatableProps.Populate <TestClass>();

            var subsetOfValidatableProps = new Validatables(FromEmail, ToName);

            FromEmail.Value = "NEW VALUE";
            ToName.Value    = "NEW VALUE";

            subsetOfValidatableProps.Populate(testClassInstance);

            Assert.AreEqual("NEW VALUE", testClassInstance.FromEmail);
            Assert.AreEqual("NEW VALUE", testClassInstance.ToName);
            Assert.AreEqual("OLD VALUE", testClassInstance.MessageHtml);
            Assert.AreEqual(5, testClassInstance.Rating);
        }
 public void SetupForValidationVal <TType>(params Validatable <TType>[] list) where TType : struct
 {
     ValueTypeValidatables = new Validatables(list);
 }
 public void SetupForValidationRef <TType>(params Validatable <TType>[] list) where TType : class
 {
     RefrenceTypeValidatables = new Validatables(list);
 }