Ejemplo n.º 1
0
        public void Validate_GivenNoValidators_ShouldReturnTrue()
        {
            // Arrange.
            var testObject = new ValidatorChain();

            // Act.
            var input = string.Empty;

            testObject.Validate(input);

            // Assert.
            Assert.IsTrue(testObject.IsValid);
        }
Ejemplo n.º 2
0
        public void Validate_GivenOneValidatorWhichPasses_ShouldReturnTrue()
        {
            // Arrange.
            var testObject = new ValidatorChain();
            var validator  = Substitute.For <IValidator>();

            validator
            .IsValid
            .Returns(true);

            testObject.AddValidator(validator);

            // Act.
            var input = string.Empty;

            testObject.Validate(input);

            // Assert.
            Assert.IsTrue(testObject.IsValid);
        }
Ejemplo n.º 3
0
        public void Validate_GivenSeveralValidators_ShouldErrorMessageForFirstFailed()
        {
            // Arrange.
            var testObject = new ValidatorChain();
            var validator1 = Substitute.For <IValidator>();
            var validator2 = Substitute.For <IValidator>();
            var validator3 = Substitute.For <IValidator>();

            validator1
            .IsValid
            .Returns(true);

            validator2
            .IsValid
            .Returns(false);

            validator3
            .IsValid
            .Returns(false);

            validator2
            .ErrorMessage
            .Returns("222");

            validator3
            .ErrorMessage
            .Returns("333");

            testObject.AddValidator(validator1);
            testObject.AddValidator(validator2);
            testObject.AddValidator(validator3);

            // Act.
            var input = string.Empty;

            testObject.Validate(input);

            // Assert.
            Assert.IsFalse(testObject.IsValid);
            Assert.AreEqual("222", testObject.ErrorMessage);
        }
        public void Process_GivenGoogleSheet_ShouldOutputMeetDetails()
        {
            // Arrange.
            var sheet          = Substitute.For <IMeetsGoogleSheet>();
            var validatorChain = new ValidatorChain();
            var formatter      = NullFormatter.Instance();
            var field          = new MeetField(false, false, string.Empty, string.Empty, 0, false, formatter);

            sheet
            .Fields
            .Returns(new[]
            {
                new MeetField(false, false, string.Empty, "Column 1", 0, false, formatter),
                new MeetField(false, false, string.Empty, "Column 2", 0, false, formatter),
                new MeetField(false, false, string.Empty, "Column 3", 0, true, formatter),
                new MeetField(true, false, string.Empty, "Column 4", 0, false, formatter),
                new MeetField(false, true, string.Empty, "Column 5", 0, false, formatter),
            });

            sheet
            .ValuesByRow
            .Returns(new[]
            {
                new[]
                {
                    new MeetFieldValue(field, "R1C1", validatorChain),
                    new MeetFieldValue(field, "R1C2", validatorChain),
                    new MeetFieldValue(field, "R1C3", validatorChain),
                    new MeetFieldValue(field, "R1C4", validatorChain),
                    new MeetFieldValue(field, "R1C5", validatorChain)
                },
                new[]
                {
                    new MeetFieldValue(field, "R2C1", validatorChain),
                    new MeetFieldValue(field, "R2C2", validatorChain),
                    new MeetFieldValue(field, "R2C3", validatorChain),
                    new MeetFieldValue(field, "R2C4", validatorChain),
                    new MeetFieldValue(field, "R2C5", validatorChain)
                },
            });

            sheet
            .FindHeaderIndex("Column 3", Arg.Any <bool>())
            .Returns(2);

            sheet
            .FindHeaderIndex("Column 5", Arg.Any <bool>())
            .Returns(4);

            // Act.
            GoogleSheetToMeetDetailsTransformer.Process(
                sheet,
                out IEnumerable <MeetDetailsModel> models);

            // Assert.
            Assert.IsNotNull(models);

            Assert.AreEqual(2, models.Count());

            Assert.AreEqual("R1C1", models.ElementAt(0).FieldValues.ElementAt(0).Value);
            Assert.AreEqual("R2C5", models.ElementAt(1).FieldValues.ElementAt(4).Value);

            Assert.AreEqual(5, models.ElementAt(0).AllFields.Count());

            Assert.AreEqual("Column 1", models.ElementAt(0).AllFields.ElementAt(0).FriendlyText);
            Assert.AreEqual("Column 5", models.ElementAt(0).AllFields.ElementAt(4).FriendlyText);

            Assert.IsTrue(models.ElementAt(0).AllFields.ElementAt(3).DisplayInHeader);
            Assert.IsTrue(models.ElementAt(0).AllFields.ElementAt(4).IsRequired);
            Assert.IsTrue(models.ElementAt(0).AllFields.ElementAt(2).IsMeetTitle);
        }