Exemple #1
0
        [TestMethod] public void Construct()
        {
            // Arrange
            var mockExtractor = new Mock <IExtractionStep>();

            mockExtractor.Setup(e => e.ExpectedSource).Returns(typeof(string));
            mockExtractor.Setup(e => e.Execute(It.IsAny <string>())).Returns(Array.Empty <DBValue>());
            var converter = DataConverter.Identity <int>();

            // Act
            var extractors = new IExtractionStep[] { mockExtractor.Object };
            var converters = new DataConverter[] { converter };
            var plan       = new EntityExtractionPlan(extractors, converters);

            // Assert
            plan.ExpectedSource.Should().Be(typeof(string));
        }
Exemple #2
0
        [TestMethod] public void Execute()
        {
            // Arrange
            var year  = DBValue.Create(2012);
            var month = DBValue.Create(12);
            var day   = DBValue.Create(31);
            var ymd   = new Mock <IExtractionStep>();

            ymd.Setup(e => e.ExpectedSource).Returns(typeof(DateTime));
            ymd.Setup(e => e.Execute(It.IsAny <DateTime>())).Returns(new DBValue[] { year, month, day });

            var hour   = DBValue.Create(23);
            var minute = DBValue.Create(59);
            var second = DBValue.Create(59);
            var hms    = new Mock <IExtractionStep>();

            hms.Setup(e => e.ExpectedSource).Returns(typeof(DateTime));
            hms.Setup(e => e.Execute(It.IsAny <DateTime>())).Returns(new DBValue[] { hour, minute, second });

            var offsetCnv   = DataConverter.Create <int, int>(i => i - 1);
            var identityCnv = DataConverter.Identity <int>();

            var extractors = new IExtractionStep[] { ymd.Object, hms.Object };
            var converters = Enumerable.Repeat(offsetCnv, 3).Concat(Enumerable.Repeat(identityCnv, 3));
            var plan       = new EntityExtractionPlan(extractors, converters);
            var source     = DateTime.Now;

            // Act
            var values = plan.Execute(source);

            // Assert
            values.Should().HaveCount(6);
            values[0].Should().Be(DBValue.Create((int)year.Datum - 1));
            values[1].Should().Be(DBValue.Create((int)month.Datum - 1));
            values[2].Should().Be(DBValue.Create((int)day.Datum - 1));
            values[3].Should().Be(hour);
            values[4].Should().Be(minute);
            values[5].Should().Be(second);
            ymd.Verify(e => e.Execute(source));
            hms.Verify(e => e.Execute(source));
        }