コード例 #1
0
        public void VisitReceivePipeline()
        {
            var sut = new ReceivePipelineImpl();

            // workaround Moq's inability to verify that calls have proceeded in a prescribed order. following recursive
            // setups simply ensure the calls are made in a specific order; as first call is matched we setup the second
            // call in the first call's callback, then when second call is matched we setup the third call in the second
            // call's callback, and so on and on... until we have setup all the expected calls. notice that for this
            // workaround to work the Mock's behavior must be *MockBehavior.Strict* or else any call missed would be
            // unnoticed (and all its consecutive calls as well since they would not have been setup via its callback).
            var visitor = new Mock <IPipelineVisitor>(MockBehavior.Strict);

            // ReSharper disable ImplicitlyCapturedClosure
            visitor.Setup(v => v.VisitPipeline(sut))
            // ReSharper restore ImplicitlyCapturedClosure
            .Callback(
                () => visitor.Setup(v => v.VisitStage(sut.Stages.Decode))
                .Callback(
                    () => visitor.Setup(v => v.VisitStage(sut.Stages.Disassemble))
                    .Callback(
                        () => visitor.Setup(v => v.VisitStage(sut.Stages.Validate))
                        .Callback(
                            () => visitor.Setup(v => v.VisitStage(sut.Stages.ResolveParty))
                            )
                        )
                    )
                );

            ((IVisitable <IPipelineVisitor>)sut).Accept(visitor.Object);

            visitor.Verify();
        }
コード例 #2
0
        public void CreatePipelineDocument()
        {
            var pipeline = new ReceivePipelineImpl();

            var visitor          = new VisitorSpy();
            var pipelineDocument = visitor.CreatePipelineDocument(pipeline);

            pipelineDocument.PolicyFilePath.Should().Be(pipeline.GetPolicyFileName());
            pipelineDocument.Description.Should().Be("A receive pipeline.");
            pipelineDocument.MajorVersion.Should().Be(5);
            pipelineDocument.MinorVersion.Should().Be(6);
        }
        public void CreatePipelineDocument()
        {
            var pipeline = new ReceivePipelineImpl();

            var visitor          = new Visitor();
            var pipelineDocument = visitor.CreatePipelineDocument(pipeline);

            Assert.That(pipelineDocument.PolicyFilePath, Is.EqualTo("BTSReceivePolicy.xml"));
            Assert.That(pipelineDocument.Description, Is.EqualTo("A receive pipeline."));
            Assert.That(pipelineDocument.MajorVersion, Is.EqualTo(5));
            Assert.That(pipelineDocument.MinorVersion, Is.EqualTo(6));
        }
コード例 #4
0
        public void CreatePipelineDocument()
        {
            var pipeline = new ReceivePipelineImpl();

            var visitor          = new VisitorSpy();
            var pipelineDocument = visitor.CreatePipelineDocument(pipeline);

            pipelineDocument.PolicyFilePath.Should().Be(pipeline.GetPolicyFileName());
            pipelineDocument.Description.Should().Be("A receive pipeline.");
            pipelineDocument.MajorVersion.Should().Be(5);
            pipelineDocument.MinorVersion.Should().Be(6);
            pipelineDocument.FriendlyName.Should().Be(PolicyFile.BTSReceivePolicy.Value.FriendlyName);
            pipelineDocument.CategoryId.Should().Be(PolicyFile.BTSReceivePolicy.Value.CategoryId.ToString());
        }
        public void WalkVisitorAccordingToPrescribedPathForReceivePipeline()
        {
            var sut = new ReceivePipelineImpl();

            var visitor  = new Mock <IPipelineVisitor>(MockBehavior.Strict);
            var sequence = new MockSequence();

            visitor.InSequence(sequence).Setup(v => v.VisitPipeline(sut));
            visitor.InSequence(sequence).Setup(v => v.VisitStage(sut.Stages.Decode));
            visitor.InSequence(sequence).Setup(v => v.VisitStage(sut.Stages.Disassemble));
            visitor.InSequence(sequence).Setup(v => v.VisitStage(sut.Stages.Validate));
            visitor.InSequence(sequence).Setup(v => v.VisitStage(sut.Stages.ResolveParty));

            ((IVisitable <IPipelineVisitor>)sut).Accept(visitor.Object);

            visitor.Verify();
        }