コード例 #1
0
        [TestMethod] public void DecomposeWithMultipleSteps()
        {
            // Arrange
            var v             = 100;
            var value0        = DBValue.Create(v);
            var value1        = DBValue.Create(v * 10);
            var mockExtractor = new Mock <IFieldExtractor>();

            mockExtractor.Setup(e => e.ExpectedSource).Returns(typeof(string));
            mockExtractor.Setup(e => e.FieldType).Returns(typeof(Exception));
            mockExtractor.Setup(e => e.Execute(It.IsAny <string>())).Returns(v);
            var mockDecomp0 = new Mock <IExtractionStep>();

            mockDecomp0.Setup(d => d.ExpectedSource).Returns(typeof(Exception));
            mockDecomp0.Setup(d => d.Execute(It.IsAny <int>())).Returns(new DBValue[] { value0 });
            var mockDecomp1 = new Mock <IExtractionStep>();

            mockDecomp1.Setup(d => d.ExpectedSource).Returns(typeof(Exception));
            mockDecomp1.Setup(d => d.Execute(It.IsAny <int>())).Returns(new DBValue[] { value1, value0 });
            var decomps = new IExtractionStep[] { mockDecomp0.Object, mockDecomp1.Object };
            var step    = new DecomposingExtractionStep(mockExtractor.Object, decomps);
            var source  = "Albany";

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

            // Assert
            mockExtractor.Verify(e => e.Execute(source), Times.Once);
            mockDecomp0.Verify(d => d.Execute(v), Times.Once);
            mockDecomp1.Verify(d => d.Execute(v), Times.Once);
            values.Should().BeEquivalentTo(new DBValue[] { value0, value1, value0 });
        }
コード例 #2
0
        [TestMethod] public void ExtractFromNull()
        {
            // Arrange
            var v             = 100;
            var value         = DBValue.Create(v);
            var mockExtractor = new Mock <IFieldExtractor>();

            mockExtractor.Setup(e => e.ExpectedSource).Returns(typeof(string));
            mockExtractor.Setup(e => e.FieldType).Returns(typeof(Exception));
            mockExtractor.Setup(e => e.Execute(null)).Returns(null);
            var mockDecomp = new Mock <IExtractionStep>();

            mockDecomp.Setup(d => d.ExpectedSource).Returns(typeof(Exception));
            mockDecomp.Setup(d => d.Execute(It.IsAny <int>())).Returns(new DBValue[] { value, value });
            mockDecomp.Setup(d => d.Execute(null)).Returns(new DBValue[] { DBValue.NULL, DBValue.NULL });
            var    decomps = new IExtractionStep[] { mockDecomp.Object };
            var    step    = new DecomposingExtractionStep(mockExtractor.Object, decomps);
            string?source  = null;

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

            // Assert
            values.Should().BeEquivalentTo(new DBValue[] { DBValue.NULL, DBValue.NULL });
        }
コード例 #3
0
        [TestMethod] public void Construct()
        {
            // Arrange
            var mockExtractor = new Mock <IFieldExtractor>();

            mockExtractor.Setup(e => e.ExpectedSource).Returns(typeof(string));
            mockExtractor.Setup(e => e.FieldType).Returns(typeof(Exception));
            var mockDecomp = new Mock <IExtractionStep>();

            mockDecomp.Setup(d => d.ExpectedSource).Returns(typeof(Exception));
            var decomps = new IExtractionStep[] { mockDecomp.Object };

            // Act
            var step = new DecomposingExtractionStep(mockExtractor.Object, decomps);

            // Assert
            step.ExpectedSource.Should().Be(typeof(string));
        }