public void ShouldReturnValidationStatusFailedWhenEmpyArgumentsAreGiven()
        {
            // arrange
            string[] argumentList = new string[1];
            IMandatoryArgumentValidator validator = new MandatoryArgumentValidator(_applicationOptionsParser);

            // act
            ArgumentValidationResult argumentValidationResult = validator.Validate(argumentList);

            // assert
            Assert.That(argumentValidationResult.Status, Is.EqualTo(ArgumentValidationStatus.Failed));
        }
        public void ShouldReturnValidationFailReasonListWhenValidationFails()
        {
            // arrange
            string[] argumentList = new string[1];
            argumentList[0] = "invalidArgument: testValue";
            IMandatoryArgumentValidator validator = new MandatoryArgumentValidator(_applicationOptionsParser);

            // act
            ArgumentValidationResult argumentValidationResult = validator.Validate(argumentList);

            // assert
            Assert.That(argumentValidationResult.ValidationMessages[0], Is.EqualTo("Database script path was not given as an argument."));
        }
        public void ShouldReturnValidationFailReasonListWhenValidationFailsWithOneInvalidArgument()
        {
            // arrange
            string[] argumentList = CreateCompleteArgumentTestList();
            argumentList[3] = "invalidArgument: testvalue";
            IMandatoryArgumentValidator validator = new MandatoryArgumentValidator(_applicationOptionsParser);

            // act
            ArgumentValidationResult argumentValidationResult = validator.Validate(argumentList);

            // assert
            Assert.That(argumentValidationResult.ValidationMessages[0], Is.EqualTo("Invalid argument(s) passed."));
        }
        public void ShouldReturnStatusValidWhenValidOptionsForConfigFileAreGiven()
        {
            // Arrange
            string[] argumentList = new string[4];
            argumentList[0] = CommandLineArgumentOptions.DatabasePathArgumentOption + "d:\\mypath\\directory";
            argumentList[1] = CommandLineArgumentOptions.FromDatabaseVersion + "1.0.0.0";
            argumentList[2] = CommandLineArgumentOptions.ToDatabaseVersion + "1.1.0.1";
            argumentList[3] = CommandLineArgumentOptions.ConfigFileArgumentOption + "db.config";

            IMandatoryArgumentValidator validator = new MandatoryArgumentValidator(_applicationOptionsParser);

            // Act
            ArgumentValidationResult argumentValidationResult = validator.Validate(argumentList);

            // Assert
            Assert.That(argumentValidationResult.Status, Is.EqualTo(ArgumentValidationStatus.Valid));
        }