コード例 #1
0
        public bool IzinVer(IzinTalepDto izin)
        {
            if (izin.IzinBaslangic > izin.IzinBitis)
            {
                throw new IzinTalepBaslangicBitistenIleriOlamazException("İzin başlangıcı, bitiş tarihinden ileride olamaz");
            }

            return(true);
        }
コード例 #2
0
        public void TestIzinResultClassWithValidObject()
        {
            var izin = new IzinTalepDto
            {
                Aciklama      = "Deneme",
                IzinBaslangic = DateTime.Now,
                IzinBitis     = DateTime.Now.AddDays(3)
            };

            Assert.IsTrue(IzinVer(izin).Success);
        }
コード例 #3
0
        public void TryCatchWithInvalidDate()
        {
            var izin = new IzinTalepDto
            {
                Aciklama      = "Deneme",
                IzinBaslangic = DateTime.Now,
                IzinBitis     = DateTime.Now.AddDays(-33)
            };

            Assert.ThrowsException <IzinTalepBaslangicBitistenIleriOlamazException>(() => IzinVer(izin));
        }
コード例 #4
0
        public void ExceptionAOPTestWithValidObject()
        {
            var izin = new IzinTalepDto
            {
                Aciklama      = "Deneme",
                IzinBaslangic = DateTime.Now,
                IzinBitis     = DateTime.Now.AddDays(5)
            };

            Assert.IsTrue(IzinVer(izin));
        }
コード例 #5
0
 public void IzinVer(IzinTalepDto izin)
 {
     if (izin.Aciklama is null)
     {
         throw new ArgumentNullException(nameof(izin.Aciklama), "Alan boş bırakılamaz");
     }
     if (izin.IzinBaslangic > izin.IzinBitis)
     {
         throw new IzinTalepBaslangicBitistenIleriOlamazException("İzin başlangıcı, bitiş tarihinden ileride olamaz");
     }
 }
コード例 #6
0
        public void ExceptionAOPTest()
        {
            var izin = new IzinTalepDto
            {
                Aciklama      = "Deneme",
                IzinBaslangic = DateTime.Now,
                IzinBitis     = DateTime.Now.AddDays(-3)
            };

            Assert.IsFalse(IzinVer(izin));

            //Assert.ThrowsException<IzinTalepBaslangicBitistenIleriOlamazException>(() => IzinVer(izin)); Bu test geçmeyecek çünkü exception yakalanıyor
        }
コード例 #7
0
        public Result <IzinTalepDto> IzinVerWithGenericResult(IzinTalepDto izin)
        {
            if (izin.Aciklama == null)
            {
                return(Result <IzinTalepDto> .Fail(izin, "Açıklama boş olamaz"));
            }
            if (izin.IzinBaslangic > izin.IzinBitis)
            {
                return(Result <IzinTalepDto> .Fail(izin, "İzin başlangıcı, bitiş tarihinden ileride olamaz"));
            }

            return(Result <IzinTalepDto> .Ok(izin));
        }
コード例 #8
0
        public void GenericResultClassTestWithInvalidAciklama()
        {
            var izin = new IzinTalepDto
            {
                IzinBaslangic = DateTime.Now,
                IzinBitis     = DateTime.Now.AddDays(3)
            };

            var izinResult = IzinVerWithGenericResult(izin);

            Assert.IsTrue(izinResult.Failure);
            Assert.AreEqual("Açıklama boş olamaz", izinResult.Error);
        }
コード例 #9
0
        public Result IzinVer(IzinTalepDto izin)
        {
            if (izin.Aciklama == null)
            {
                return(Result.Fail("Açıklama boş olamaz"));
            }
            if (izin.IzinBaslangic > izin.IzinBitis)
            {
                return(Result.Fail("İzin başlangıcı, bitiş tarihinden ileride olamaz"));
            }

            return(Result.Ok());
        }
コード例 #10
0
        public void IzinTalepDtoTestWithValidObject()
        {
            var izin = new IzinTalepDto
            {
                Aciklama      = "Deneme",
                IzinBaslangic = DateTime.Now,
                IzinBitis     = DateTime.Now.AddDays(3)
            };

            var izinValidator   = new IzinTalepDtoValidator();
            var validatorResult = izinValidator.Validate(izin);

            Assert.IsTrue(validatorResult.IsValid);
        }
コード例 #11
0
        public void IsValidInObjectTest()
        {
            var izin = new IzinTalepDto
            {
                IzinBaslangic = DateTime.Now,
                IzinBitis     = DateTime.Now.AddDays(-5)
            };

            var errors = izin.IsValid();

            Assert.IsTrue(errors.Any());

            Assert.IsTrue(errors.Contains("İzin başlangıç tarihi bitiş tarihinden büyük olamaz"));
        }
コード例 #12
0
        public void FluentValidationWithToString()
        {
            var izin = new IzinTalepDto
            {
                IzinBaslangic = DateTime.Now,
                IzinBitis     = DateTime.Now.AddDays(-22)
            };

            var izinValidator   = new IzinTalepDtoValidator();
            var validatorResult = izinValidator.Validate(izin);

            var hataMesaji = validatorResult.ToString(", ");

            Assert.AreEqual("İzin başlangıcı, bitişten ileri bir tarihte olamaz, Açıklama girmek zorundasınız", hataMesaji);
        }
コード例 #13
0
        public void GenericResultClassTestWithValidObject()
        {
            var izin = new IzinTalepDto
            {
                Aciklama      = "Deneme",
                IzinBaslangic = DateTime.Now,
                IzinBitis     = DateTime.Now.AddDays(3)
            };

            var izinResult = IzinVerWithGenericResult(izin);

            Assert.IsTrue(izinResult.Success);
            Assert.AreEqual(izin.Aciklama, izinResult.Value.Aciklama);
            Assert.AreEqual(null, izinResult.Error);
        }
コード例 #14
0
        public void TryCatchWithInvalidAciklama()
        {
            var izin = new IzinTalepDto
            {
                IzinBaslangic = DateTime.Now,
                IzinBitis     = DateTime.Now.AddDays(4)
            };

            try
            {
                IzinVer(izin);
            }
            catch (ArgumentNullException exp)
            {
                Assert.AreEqual("Alan boş bırakılamaz\r\nParametre adı: Aciklama", exp.Message);
            }
        }
コード例 #15
0
        public void WithInvalidObject()
        {
            var izin = new IzinTalepDto
            {
                Aciklama      = "deneme",
                IzinBaslangic = DateTime.Now,
                IzinBitis     = DateTime.Now.AddDays(-5)
            };

            ValidationContext vcx = new ValidationContext(izin);
            var results           = new List <ValidationResult>();

            bool isValid = Validator.TryValidateObject(izin, vcx, results, true);

            Assert.IsFalse(isValid);

            Assert.IsTrue(results.Select(x => x.ErrorMessage).Contains("İzin başlangıç tarihi bitiş tarihinden büyük olamaz"));
        }
コード例 #16
0
        public void IzinTalepDtoTestWithInvalidObject()
        {
            var izin = new IzinTalepDto
            {
                IzinBaslangic = DateTime.Now,
                IzinBitis     = DateTime.Now.AddDays(-5)
            };

            var izinValidator   = new IzinTalepDtoValidator();
            var validatorResult = izinValidator.Validate(izin);

            Assert.IsFalse(validatorResult.IsValid);

            var errorMessages = validatorResult.Errors.Select(x => x.ErrorMessage);

            Assert.IsFalse(errorMessages.Contains("En fazla bir yıllık izin planlanabilir"));

            Assert.IsTrue(errorMessages.Contains("Açıklama girmek zorundasınız"));
            Assert.IsTrue(errorMessages.Contains("İzin başlangıcı, bitişten ileri bir tarihte olamaz"));
        }
コード例 #17
0
        public void WithNullAciklama()
        {
            // Aciklama alanı null olduğu için diğer hatalar ignore ediliyor,
            // Priority = [Required] -> Other attributes -> IValidatableObject Implementation

            var izin = new IzinTalepDto
            {
                IzinBaslangic = DateTime.Now,
                IzinBitis     = DateTime.Now.AddDays(-5)
            };

            ValidationContext vcx = new ValidationContext(izin);
            var results           = new List <ValidationResult>();

            bool isValid = Validator.TryValidateObject(izin, vcx, results, true);

            Assert.IsFalse(isValid);

            Assert.IsTrue(results.Count == 1);

            Assert.IsFalse(results.Select(x => x.ErrorMessage).Contains("İzin başlangıç tarihi bitiş tarihinden büyük olamaz"));
            Assert.IsTrue(results.Select(x => x.ErrorMessage).Contains("Aciklama alanı gereklidir."));
        }