public void ValidateTest()
        {
            var options = new DbContextOptionsBuilder <ApplicationContextForTest>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString())
                          .Options;

            ApplicationContextForTest context = new ApplicationContextForTest(options);
            ValidateItemInContext <ObjectMappingForTest> validateItemInContext = new ValidateItemInContext <ObjectMappingForTest>(context);

            ObjectMappingForTest item = new ObjectMappingForTest();

            //Объекта нет в контексте.
            ValidateContextResult validateContextResult = validateItemInContext.Validate(item);

            Assert.AreEqual(ResultStatus.Fail, validateContextResult.Status);
            Assert.AreEqual("Не пройдена проверка записи \"ObjectMappingForTest\":" + Environment.NewLine +
                            "Не заполнено значение \"IntValue\"." + Environment.NewLine +
                            "Не заполнено значение \"Строка\".", validateContextResult.Message);

            //Добавили в контекст, но с незаполненными обязательными полями

            validateContextResult = validateItemInContext.Validate(item);
            Assert.AreEqual(ResultStatus.Fail, validateContextResult.Status);
            Assert.AreEqual(1, validateContextResult.Count);
            Assert.AreEqual(2, validateContextResult[0].Fields.Count);
            Assert.AreEqual("IntValue", validateContextResult[0].Fields[0].Name);
            Assert.AreEqual("Строка", validateContextResult[0].Fields[1].Name);

            //Заполнили обязательные поля, чтобы прошла валидация
            item.IntValue         = 1;
            item.IntValue2        = 2;
            validateContextResult = validateItemInContext.Validate(item);
            Assert.AreEqual(ResultStatus.Success, validateContextResult.Status);
            Assert.AreEqual(0, validateContextResult.Count);
        }
Exemplo n.º 2
0
        private void ValidateByContext(TEntity item)
        {
            ValidateContextResult validate = ValidateItem(item);

            if (validate.Status == ResultStatus.Fail)
            {
                throw new ArgumentException(validate.Message);
            }
        }
Exemplo n.º 3
0
        public void AddEntityTest()
        {
            ValidateContextResult validateContextResult = new ValidateContextResult();

            validateContextResult.Status = ResultStatus.Success;
            Assert.IsTrue(String.IsNullOrWhiteSpace(validateContextResult.Message), "По умолчанию сообщение пусто.");

            //Добавим одну невалидную сущность
            ValidateContextResultItem validateContextResultItem = new ValidateContextResultItem();

            validateContextResultItem.Name = "Объект1";
            validateContextResultItem.Fields.Add(new ValidateContextResultItem()
            {
                Name = "Поле1"
            });
            validateContextResultItem.Fields.Add(new ValidateContextResultItem()
            {
                Name = "Поле2"
            });
            validateContextResult.AddEntity(validateContextResultItem);

            string messageError = "Не пройдена проверка записи \"Объект1\":" + Environment.NewLine +
                                  "Не заполнено значение \"Поле1\"." + Environment.NewLine +
                                  "Не заполнено значение \"Поле2\".";

            Assert.AreEqual(ResultStatus.Fail, validateContextResult.Status);
            Assert.AreEqual(messageError, validateContextResult.Message);

            ValidateContextResultItem validateContextResultItem2 = new ValidateContextResultItem();

            validateContextResultItem2.Name = "Объект2";
            validateContextResultItem2.Fields.Add(new ValidateContextResultItem()
            {
                Name = "Поле3"
            });
            validateContextResultItem2.Fields.Add(new ValidateContextResultItem()
            {
                Name = "Поле4"
            });
            validateContextResult.AddEntity(validateContextResultItem2);

            messageError = "Не пройдена проверка записи \"Объект1\":" + Environment.NewLine +
                           "Не заполнено значение \"Поле1\"." + Environment.NewLine +
                           "Не заполнено значение \"Поле2\"." + Environment.NewLine +
                           Environment.NewLine +
                           "Не пройдена проверка записи \"Объект2\":" + Environment.NewLine +
                           "Не заполнено значение \"Поле3\"." + Environment.NewLine +
                           "Не заполнено значение \"Поле4\".";
            Assert.AreEqual(ResultStatus.Fail, validateContextResult.Status);
            Assert.AreEqual(messageError, validateContextResult.Message);
        }