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(); }
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)); }
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(); }