public void TrackingModesIsAnythingButNone() { // MockBehavior must be Strict for following test var activityTrackerComponentContext = new ActivityTracker.Context(PipelineContextMock.Object, MessageMock.Object, ActivityTrackingModes.Body); ActivityTrackerMock = new Mock <Tracking.Messaging.ActivityTracker>(MockBehavior.Strict, activityTrackerComponentContext); MessageBodyTrackerMock = new Mock <MessageBodyTracker>(MockBehavior.Strict, activityTrackerComponentContext); // method call ordering is important as only one of the first two methods, i.e. either TryCheckOutMessageBody() // or SetupCapture(), ensures a TrackingStream is setup MessageBodyTrackerMock.Setup(mbt => mbt.TryCheckOutMessageBody()) .Callback( () => MessageBodyTrackerMock.Setup(mbt => mbt.SetupTracking()) .Callback( () => ActivityTrackerMock.Setup(at => at.TrackActivity()) .Callback( () => MessageBodyTrackerMock.Setup(mbt => mbt.TryCheckInMessageBody()).Verifiable()) .Verifiable()) .Verifiable()) .Verifiable(); var sut = CreateActivityTracker(); sut.TrackingModes = ActivityTrackingModes.Step; sut.Execute(PipelineContextMock.Object, MessageMock.Object); ActivityTrackerMock.VerifyAll(); MessageBodyTrackerMock.VerifyAll(); }
public void SetUp() { MessageMock.Setup(m => m.GetProperty(BtsProperties.InboundTransportLocation)).Returns("inbound-transport-location"); var activityTrackerContext = new ActivityTracker.Context(PipelineContextMock.Object, MessageMock.Object, ActivityTrackingModes.Body); _activityTrackerFactory = Tracking.Messaging.ActivityTracker.Factory; ActivityTrackerMock = new Mock <Tracking.Messaging.ActivityTracker>(activityTrackerContext); Tracking.Messaging.ActivityTracker.Factory = context => ActivityTrackerMock.Object; _messageBodyTrackerFactory = MessageBodyTracker.Factory; MessageBodyTrackerMock = new Mock <MessageBodyTracker>(activityTrackerContext); MessageBodyTracker.Factory = context => MessageBodyTrackerMock.Object; _trackingContextCacheInstance = TrackingContextCache.Instance; CacheMock = new Mock <TrackingContextCache>(MockBehavior.Strict); TrackingContextCache.Instance = CacheMock.Object; _trackingResolverFactory = TrackingResolver.Factory; TrackingResolverMock = new Mock <TrackingResolver>(MessageMock.Object); TrackingResolver.Factory = message => TrackingResolverMock.Object; }