public void Validate_AllIncorrectValuesModel_Fail()
        {
            // Arrange
            var validator = new MarsRoversValidator();
            var model     = new MarsRoversModel()
            {
                PlateauX = -2,
                PlateauY = -5,
                Rovers   = new List <RoverProgramModel>()
            };

            // Act
            var validationResult = validator.ValidateModelIfNotNull(model);

            // Assert
            Assert.IsFalse(validationResult.IsValid);
            Assert.AreEqual(2, validationResult.Errors.Count);

            Assert.AreEqual("1", validationResult.Errors[0].ErrorCode);
            Assert.AreEqual("Field value has to be greater than or equal to 0", validationResult.Errors[0].ErrorMessage);
            Assert.AreEqual("PlateauY", validationResult.Errors[0].PropertyName);

            Assert.AreEqual("1", validationResult.Errors[1].ErrorCode);
            Assert.AreEqual("Field value has to be greater than or equal to 0", validationResult.Errors[1].ErrorMessage);
            Assert.AreEqual("PlateauX", validationResult.Errors[1].PropertyName);
        }
        public void Validate_AllCorrectValuesModel_Success()
        {
            // Arrange
            var validator = new MarsRoversValidator();
            var model     = new MarsRoversModel()
            {
                PlateauX = 3,
                PlateauY = 6,
                Rovers   = new List <RoverProgramModel>()
            };

            // Act
            var validationResult = validator.ValidateModelIfNotNull(model);

            // Assert
            Assert.IsTrue(validationResult.IsValid);
        }