public void FindProcessAndCreateMessagingStepBeforeStreamFirstReadEvent() { var trackingContext = new TrackingContext { ProcessActivityId = ActivityId.NewActivityId(), }; using (var stream = new TrackingStream(new StringStream("some-content"))) { MessageMock.Object.BodyPart.Data = stream; MessageMock.Setup(m => m.GetProperty(BtsProperties.OutboundTransportLocation)).Returns("outbound-transport-location"); MessageMock.Setup(m => m.GetProperty(TrackingProperties.ProcessActivityId)).Returns(trackingContext.ProcessActivityId); MessageMock.Setup(m => m.GetProperty(TrackingProperties.MessagingStepActivityId)).Returns(trackingContext.MessagingStepActivityId); var sut = ActivityTracker.Create(new MicroComponent.ActivityTracker.Context(PipelineContextMock.Object, MessageMock.Object, ActivityTrackingModes.Step)); sut.TrackActivity(); ActivityFactory.Verify( af => af.CreateProcess(It.IsAny <IBaseMessage>(), It.IsAny <string>()), Times.Never()); ActivityFactory.Verify( af => af.FindProcess(It.Is <TrackingContext>(c => c.ProcessActivityId == trackingContext.ProcessActivityId)), Times.Once()); ActivityFactory.Verify( af => af.CreateMessagingStep(It.IsAny <IBaseMessage>()), Times.Once()); ActivityFactory.Verify( af => af.FindMessagingStep(It.IsAny <TrackingContext>()), Times.Never()); } }
public void BuildPropertyExtractorCollectionGivesPrecedenceToSchemaExtractorsOverPipelineExtractors() { using (var inputStream = new MemoryStream(Encoding.UTF8.GetBytes("<root xmlns='urn:ns'></root>"))) { var annotationsMock = new Mock <ISchemaAnnotations>(); annotationsMock.Setup(am => am.Extractors).Returns( new PropertyExtractorCollection( new XPathExtractor(BizTalkFactoryProperties.SenderName.QName, "/letter/*/to", ExtractionMode.Demote), new XPathExtractor(TrackingProperties.Value2.QName, "/letter/*/salutations"))); SchemaMetadataMock = new Mock <ISchemaMetadata>(); SchemaMetadataMock.Setup(sm => sm.Annotations).Returns(annotationsMock.Object); SchemaBaseExtensions.SchemaMetadataFactory = type => SchemaMetadataMock.Object; MessageMock.Object.BodyPart.Data = inputStream; MessageMock.Setup(m => m.GetProperty(BtsProperties.MessageType)).Returns("urn:ns#root"); var sut = new ContextPropertyExtractor { Extractors = new[] { new XPathExtractor(BizTalkFactoryProperties.SenderName.QName, "/letter/*/from", ExtractionMode.Promote), new XPathExtractor(TrackingProperties.Value1.QName, "/letter/*/paragraph") } }; var extractors = sut.BuildPropertyExtractorCollection(PipelineContextMock.Object, MessageMock.Object); Assert.That( extractors, Is.EqualTo( new[] { new XPathExtractor(BizTalkFactoryProperties.SenderName.QName, "/letter/*/to", ExtractionMode.Demote), new XPathExtractor(TrackingProperties.Value2.QName, "/letter/*/salutations"), new XPathExtractor(TrackingProperties.Value1.QName, "/letter/*/paragraph") })); } }
public void XsltFromContextHasPrecedenceOverConfiguredOne() { PipelineContextMock .Setup(m => m.GetDocumentSpecByType("http://schemas.microsoft.com/Edi/EdifactServiceSchema#UNB")) .Returns(SchemaMetadata.For <EdifactServiceSchema.UNB>().DocumentSpec); var sut = new XsltRunner { Encoding = Encoding.UTF8, MapType = typeof(TransformBase) }; using (var dataStream = new MemoryStream(Encoding.UTF8.GetBytes("<UNB xmlns='http://schemas.microsoft.com/Edi/EdifactServiceSchema'></UNB>"))) using (var transformedStream = dataStream.Transform().Apply(typeof(IdentityTransform))) using (var transformStreamMockInjectionScope = new TransformStreamMockInjectionScope()) { MessageMock.Object.BodyPart.Data = dataStream; MessageMock .Setup(m => m.GetProperty(BizTalkFactoryProperties.MapTypeName)) .Returns(typeof(IdentityTransform).AssemblyQualifiedName); var transformStreamMock = transformStreamMockInjectionScope.Mock; transformStreamMock .Setup(ts => ts.ExtendWith(MessageMock.Object.Context)) .Returns(transformStreamMock.Object); transformStreamMock .Setup(ts => ts.Apply(typeof(IdentityTransform), sut.Encoding)) .Returns(transformedStream) .Verifiable(); sut.Execute(PipelineContextMock.Object, MessageMock.Object); transformStreamMock.Verify(ts => ts.Apply(sut.MapType, sut.Encoding), Times.Never()); transformStreamMock.VerifyAll(); } }
public void TrackingContextIsRestoredForSolicitResponseInboundMessageUnlessNegativeCacheDuration() { var transmitWorkId = Guid.NewGuid().ToString(); var trackingContext = new TrackingContext { ProcessActivityId = ActivityId.NewActivityId(), ProcessingStepActivityId = ActivityId.NewActivityId(), MessagingStepActivityId = ActivityId.NewActivityId() }; MessageMock.Setup(m => m.GetProperty(BtsProperties.IsSolicitResponse)).Returns(true); MessageMock.Setup(m => m.GetProperty(BtsProperties.InboundTransportLocation)).Returns("inbound-transport-location"); MessageMock.Setup(m => m.GetProperty(BtsProperties.TransmitWorkId)).Returns(transmitWorkId); var sut = CreateActivityTracker(); sut.TrackingContextCacheDuration = TimeSpan.FromSeconds(-1); sut.Execute(PipelineContextMock.Object, MessageMock.Object); CacheMock.VerifyAll(); // verifies that TrackingContext fields have been restored in message.Context MessageMock.Verify(m => m.SetProperty(TrackingProperties.ProcessActivityId, trackingContext.ProcessActivityId), Times.Never()); MessageMock.Verify(m => m.SetProperty(TrackingProperties.ProcessingStepActivityId, trackingContext.ProcessingStepActivityId), Times.Never()); MessageMock.Verify(m => m.SetProperty(TrackingProperties.MessagingStepActivityId, trackingContext.MessagingStepActivityId), Times.Never()); }
public void CreateProcessReturnsRegularBatchReleaseProcess() { var messageMock = new MessageMock(); var factory = (IBatchReleaseProcessActivityFactory) new BatchReleaseProcessActivityFactory(PipelineContextMock.Object); factory.CreateProcess(messageMock.Object, "name").Should().BeOfType <BatchReleaseProcess>(); }
public void TrackingContextIsCachedForSolicitResponseOutboundMessage() { var transmitWorkId = Guid.NewGuid().ToString(); var trackingContext = new TrackingContext { ProcessActivityId = ActivityId.NewActivityId(), ProcessingStepActivityId = ActivityId.NewActivityId(), MessagingStepActivityId = ActivityId.NewActivityId() }; MessageMock.Setup(m => m.GetProperty(BtsProperties.IsSolicitResponse)).Returns(true); MessageMock.Setup(m => m.GetProperty(BtsProperties.OutboundTransportLocation)).Returns("outbound-transport-location"); MessageMock.Setup(m => m.GetProperty(BtsProperties.TransmitWorkId)).Returns(transmitWorkId); MessageMock.Setup(m => m.GetProperty(TrackingProperties.ProcessActivityId)).Returns(trackingContext.ProcessActivityId); MessageMock.Setup(m => m.GetProperty(TrackingProperties.ProcessingStepActivityId)).Returns(trackingContext.ProcessingStepActivityId); MessageMock.Setup(m => m.GetProperty(TrackingProperties.MessagingStepActivityId)).Returns(trackingContext.MessagingStepActivityId); CacheMock.Setup(c => c.Set(transmitWorkId, trackingContext, 60 + 1)); var sut = CreateActivityTracker(); sut.Execute(PipelineContextMock.Object, MessageMock.Object); CacheMock.VerifyAll(); }
public void MessageContextManipulationsAreDelegatedToPropertyExtractors() { const string content = "<s1:letter xmlns:s1=\"urn-one\">" + "<s1:headers><s1:subject>inquiry</s1:subject></s1:headers>" + "<s1:body>" + "<s1:paragraph>paragraph-one</s1:paragraph>" + "<s1:footer>trail</s1:footer>" + "</s1:body>" + "</s1:letter>"; using (var inputStream = new MemoryStream(Encoding.UTF8.GetBytes(content))) { var propertyExtractorMock = new Mock <PropertyExtractor>(BizTalkFactoryProperties.SenderName.QName, ExtractionMode.Clear) { CallBase = true }; var constantExtractorMock = new Mock <ConstantExtractor>(TrackingProperties.Value2.QName, "value2", ExtractionMode.Write) { CallBase = true }; var xpathExtractorMock = new Mock <XPathExtractor>(TrackingProperties.Value1.QName, "/*[local-name()='letter']/*/*[local-name()='paragraph']", ExtractionMode.Write) { CallBase = true }; var annotationsMock = new Mock <ISchemaAnnotations>(); annotationsMock.Setup(am => am.Extractors).Returns( new PropertyExtractorCollection( propertyExtractorMock.Object, constantExtractorMock.Object )); SchemaMetadataMock = new Mock <ISchemaMetadata>(); SchemaMetadataMock.Setup(sm => sm.Annotations).Returns(annotationsMock.Object); SchemaBaseExtensions.SchemaMetadataFactory = type => SchemaMetadataMock.Object; MessageMock.Object.BodyPart.Data = inputStream; MessageMock.Setup(m => m.GetProperty(BtsProperties.MessageType)).Returns("urn-one#letter"); var sut = new ContextPropertyExtractor { Extractors = new[] { new XPathExtractor(TrackingProperties.ProcessName.QName, "/*[local-name()='letter']/*/*[local-name()='subject']", ExtractionMode.Promote), xpathExtractorMock.Object, new XPathExtractor(TrackingProperties.Value3.QName, "/*[local-name()='letter']/*/*[local-name()='footer']") } }; sut.Execute(PipelineContextMock.Object, MessageMock.Object); MessageMock.Object.BodyPart.Data.Drain(); propertyExtractorMock.Verify(pe => pe.Execute(MessageMock.Object.Context)); constantExtractorMock.Verify(pe => pe.Execute(MessageMock.Object.Context)); //var newValue = "paragraph-one"; // TODO not supported by moq xpathExtractorMock.Verify(pe => pe.Execute(MessageMock.Object.Context, "paragraph-one", ref newValue)); MessageMock.Verify(m => m.SetProperty(BizTalkFactoryProperties.SenderName, null)); MessageMock.Verify(m => m.SetProperty(TrackingProperties.Value1, "paragraph-one")); MessageMock.Verify(m => m.SetProperty(TrackingProperties.Value2, "value2")); MessageMock.Verify(m => m.SetProperty(TrackingProperties.Value3, "trail")); MessageMock.Verify(m => m.Promote(TrackingProperties.ProcessName, "inquiry")); } }
public void CompleteTrackingOfOutboundMessageWithProcessAffiliationAfterStreamLastReadEvent() { using (var stream = new TrackingStream(new StringStream("some-content"))) { MessageMock.Object.BodyPart.Data = stream; MessageMock.Setup(m => m.GetProperty(BtsProperties.OutboundTransportLocation)).Returns("outbound-transport-location"); MessageMock.Setup(m => m.GetProperty(TrackingProperties.ProcessActivityId)).Returns(ActivityId.NewActivityId()); var sut = ActivityTracker.Create(new MicroComponent.ActivityTracker.Context(PipelineContextMock.Object, MessageMock.Object, ActivityTrackingModes.Step)); sut.TrackActivity(); MessageMock.Object.BodyPart.Data.Drain(); ProcessMock.Verify( p => p.TrackActivity(), Times.Never()); InitiatingMessagingStepMock.Verify( ms => ms.TrackActivity(It.IsAny <ActivityTrackingModes>(), It.IsAny <TrackingStream>()), Times.Never()); ProcessMock.Verify( p => p.AddStep(InitiatingMessagingStepMock.Object), Times.Never()); MessagingStepMock.Verify( ms => ms.TrackActivity(It.IsAny <ActivityTrackingModes>(), It.IsAny <TrackingStream>()), Times.Once()); ProcessMock.Verify( p => p.AddStep(MessagingStepMock.Object), Times.Once()); } }
public void BuildPropertyExtractorCollectionGivesPrecedenceToSchemaExtractorsOverPipelineExtractors() { // has to be called before ContextPropertyAnnotationMockInjectionScope overrides SchemaMetadata.For<>() factory method var schemaMetadata = SchemaMetadata.For <Any>(); using (var inputStream = new MemoryStream(Encoding.UTF8.GetBytes("<root xmlns='urn:ns'></root>"))) using (var contextPropertyAnnotationMockInjectionScope = new PropertyExtractorAnnotationMockInjectionScope()) { contextPropertyAnnotationMockInjectionScope.Extractors = new( new XPathExtractor(BizTalkFactoryProperties.OutboundTransportLocation.QName, "/letter/*/to", ExtractionMode.Demote), new XPathExtractor(BtsProperties.Operation.QName, "/letter/*/salutations")); PipelineContextMock.Setup(pc => pc.GetDocumentSpecByType("urn:ns#root")).Returns(schemaMetadata.DocumentSpec); MessageMock.Object.BodyPart.Data = inputStream; MessageMock.Setup(m => m.GetProperty(BtsProperties.MessageType)).Returns("urn:ns#root"); var sut = new ContextPropertyExtractor { Extractors = new[] { new XPathExtractor(BizTalkFactoryProperties.OutboundTransportLocation.QName, "/letter/*/from", ExtractionMode.Promote), new XPathExtractor(BtsProperties.OutboundTransportLocation.QName, "/letter/*/paragraph") } }; var extractors = sut.BuildPropertyExtractorCollection(PipelineContextMock.Object, MessageMock.Object); extractors.Should().BeEquivalentTo( new[] { new XPathExtractor(BizTalkFactoryProperties.OutboundTransportLocation.QName, "/letter/*/to", ExtractionMode.Demote), new XPathExtractor(BtsProperties.Operation.QName, "/letter/*/salutations"), new XPathExtractor(BtsProperties.OutboundTransportLocation.QName, "/letter/*/paragraph") }); } }
public void BuildXmlTranslationSetWithTranslationInContext() { MessageMock.Setup(c => c.GetProperty(BizTalkFactoryProperties.XmlTranslations)) .Returns( XmlTranslationSetConverter.Serialize( new() { Override = true, Items = new[] { new XmlNamespaceTranslation("sourceUrn5", "urn05") } })); var sut = new XmlTranslator { Translations = new() { Override = false, Items = new[] { new XmlNamespaceTranslation("sourceUrn1", "urn:test1"), new XmlNamespaceTranslation("sourceUrn2", "urn:test2") } } }; sut.BuildXmlTranslationSet(MessageMock.Object).Should().Be( new XmlTranslationSet { Override = true, Items = new[] { new XmlNamespaceTranslation("sourceUrn5", "urn05") } }); }
public void CaptureOfOutboundMessageDoesNotPiggyBackKernelTransaction() { MessageMock.Setup(m => m.GetProperty(BtsProperties.OutboundTransportLocation)).Returns("outbound-transport-location"); using (new TransactionScope()) using (var stream = new MemoryStream()) { MessageMock.Object.BodyPart.Data = stream; var transaction = TransactionInterop.GetDtcTransaction(Transaction.Current); PipelineContextMock.As <IPipelineContextEx>() .Setup(pc => pc.GetTransaction()) .Returns((IKernelTransaction)transaction); var sut = MessageBodyTracker.Create(new MicroComponent.ActivityTracker.Context(PipelineContextMock.Object, MessageMock.Object, ActivityTrackingModes.Body)); sut.SetupTracking(); ClaimStoreMock.Verify( cs => cs.SetupMessageBodyCapture( It.IsAny <TrackingStream>(), It.IsAny <ActivityTrackingModes>(), It.Is <Func <IKernelTransaction> >(ktf => ktf == null)), Times.Once()); } }
public void DoesNotDisableRetryIfPropertyDoesNotExistInContext() { var sut = new TransportRetriesDisabler(); sut.Execute(PipelineContextMock.Object, MessageMock.Object); MessageMock.Verify(m => m.SetProperty(BtsProperties.RetryCount, It.IsAny <int>()), Times.Never); }
public void DemoteDoesNotThrowIfNewValueIsNullOrEmpty() { var messageMock = new MessageMock(); var sut = new XPathExtractor(BizTalkFactoryProperties.MapTypeName.QName, "//value1", ExtractionMode.Demote); string newValue = null; Invoking(() => sut.Execute(messageMock.Object.Context, "old", ref newValue)).Should().NotThrow(); newValue.Should().BeNull(); }
public void ResolveProcessNameToUnidentified() { var sut = ProcessNameResolver.Create(MessageMock.Object); var processName = sut.ResolveProcessName(); processName.Should().Be(Default.Processes.Unidentified); MessageMock.Verify(m => m.SetProperty(TrackingProperties.ProcessName, Default.Processes.Unidentified), Times.Never()); }
public void DemoteDoesNotThrowIfNewValueIsNullOrEmpty() { var messageMock = new MessageMock(); var sut = new XPathExtractor(TrackingProperties.Value1.QName, "//value1", ExtractionMode.Demote); string newValue = null; Assert.That(() => sut.Execute(messageMock.Object.Context, "old", ref newValue), Throws.Nothing); Assert.That(newValue, Is.Null); }
public void ResolveProcessNameToUnidentified() { var sut = TrackingResolver.Create(MessageMock.Object); var processName = sut.ResolveProcessName(); Assert.That(processName, Is.EqualTo(Default.Processes.Unidentified)); MessageMock.Verify(m => m.SetProperty(TrackingProperties.ProcessName, Default.Processes.Unidentified), Times.Never()); }
public void DoesNotDisableRetryIfPropertyExistsInContextAndIsFalse() { MessageMock.Setup(m => m.GetProperty(BizTalkFactoryProperties.DisableTransportRetries)).Returns(false); var sut = new TransportRetriesDisabler(); sut.Execute(PipelineContextMock.Object, MessageMock.Object); MessageMock.Verify(m => m.SetProperty(BtsProperties.RetryCount, It.IsAny <int>()), Times.Never); }
public void DisableRetryIfPropertyExistsInContextAndIsTrue() { MessageMock.Setup(m => m.GetProperty(BizTalkFactoryProperties.DisableTransportRetries)).Returns(true); var sut = new TransportRetriesDisabler(); sut.Execute(PipelineContextMock.Object, MessageMock.Object); MessageMock.Verify(m => m.SetProperty(BtsProperties.RetryCount, 0), Times.Once); }
public void TrackingContextIsNotPropagatedForRequestResponsePort() { MessageMock.Setup(m => m.GetProperty(BtsProperties.IsRequestResponse)).Returns(true); var sut = CreateActivityTracker(); sut.Execute(PipelineContextMock.Object, MessageMock.Object); CacheMock.VerifyAll(); }
public void OutboundMessageBodyIsNotCheckedOut() { MessageMock.Setup(m => m.GetProperty(BtsProperties.OutboundTransportLocation)).Returns("outbound-transport-location"); var sut = MessageBodyTracker.Create(new MicroComponent.ActivityTracker.Context(PipelineContextMock.Object, MessageMock.Object, ActivityTrackingModes.Body)); sut.TryCheckOutMessageBody(); ClaimStoreMock.Verify(cs => cs.Redeem(MessageMock.Object, It.IsAny <IResourceTracker>()), Times.Never()); }
public void MessageContextManipulationsAreDelegatedToPropertyExtractors() { const string content = "<s1:letter xmlns:s1=\"urn-one\">" + "<s1:headers><s1:subject>inquiry</s1:subject></s1:headers>" + "<s1:body>" + "<s1:paragraph>paragraph-one</s1:paragraph>" + "<s1:footer>trail</s1:footer>" + "</s1:body>" + "</s1:letter>"; using (var inputStream = new MemoryStream(Encoding.UTF8.GetBytes(content))) using (var contextPropertyAnnotationMockInjectionScope = new PropertyExtractorAnnotationMockInjectionScope()) { var propertyExtractorMock = new Mock <PropertyExtractor>(BizTalkFactoryProperties.OutboundTransportLocation.QName, ExtractionMode.Clear) { CallBase = true }; var constantExtractorMock = new Mock <ConstantExtractor>(BtsProperties.OutboundTransportLocation.QName, "OutboundTransportLocation", ExtractionMode.Write) { CallBase = true }; var xpathExtractorMock = new Mock <XPathExtractor>(BtsProperties.Operation.QName, "/*[local-name()='letter']/*/*[local-name()='paragraph']", ExtractionMode.Write) { CallBase = true }; contextPropertyAnnotationMockInjectionScope.Extractors = new( propertyExtractorMock.Object, constantExtractorMock.Object ); MessageMock.Object.BodyPart.Data = inputStream; MessageMock.Setup(m => m.GetProperty(BtsProperties.MessageType)).Returns("urn-one#letter"); var sut = new ContextPropertyExtractor { Extractors = new[] { new XPathExtractor(SBMessagingProperties.Label.QName, "/*[local-name()='letter']/*/*[local-name()='subject']", ExtractionMode.Promote), xpathExtractorMock.Object, new XPathExtractor(BizTalkFactoryProperties.MapTypeName.QName, "/*[local-name()='letter']/*/*[local-name()='footer']") } }; sut.Execute(PipelineContextMock.Object, MessageMock.Object); MessageMock.Object.BodyPart.Data.Drain(); propertyExtractorMock.Verify(pe => pe.Execute(MessageMock.Object.Context)); constantExtractorMock.Verify(pe => pe.Execute(MessageMock.Object.Context)); xpathExtractorMock.Verify(pe => pe.Execute(MessageMock.Object.Context, "paragraph-one", ref It.Ref <string> .IsAny)); MessageMock.Verify(m => m.SetProperty(BizTalkFactoryProperties.OutboundTransportLocation, null)); MessageMock.Verify(m => m.SetProperty(BtsProperties.Operation, "paragraph-one")); MessageMock.Verify(m => m.SetProperty(BtsProperties.OutboundTransportLocation, "OutboundTransportLocation")); MessageMock.Verify(m => m.SetProperty(BizTalkFactoryProperties.MapTypeName, "trail")); MessageMock.Verify(m => m.Promote(SBMessagingProperties.Label, "inquiry")); } }
public void CorrelationIdIsNotPromotedInwardWhenEmpty() { MessageMock.Setup(m => m.GetProperty(BtsProperties.InboundTransportLocation)).Returns("inbound-transport-location"); var sut = new SBMessagingContextPropagator(); sut.Execute(PipelineContextMock.Object, MessageMock.Object); MessageMock.Verify(m => m.Promote(BizTalkFactoryProperties.CorrelationId, It.IsAny <string>()), Times.Never); MessageMock.Verify(m => m.SetProperty(BizTalkFactoryProperties.CorrelationId, It.IsAny <string>()), Times.Never); }
public void DoesNotWriteMessageTypeInContextForUnknownSchema() { using (var inputStream = new MemoryStream(Encoding.UTF8.GetBytes("<root xmlns='urn:ns'></root>"))) { MessageMock.Object.BodyPart.Data = inputStream; var sut = new MessageTypeExtractor(); sut.Execute(PipelineContextMock.Object, MessageMock.Object); MessageMock.Verify(m => m.SetProperty(BizTalkFactoryProperties.MessageType, It.IsAny <string>()), Times.Never); } }
public void OutboundTransportLocationWithOnlyFilename() { MessageMock .Setup(m => m.GetProperty(BizTalkFactoryProperties.OutboundTransportLocation)) .Returns(@"file.txt"); var sut = new ZipEncoder(); sut.Execute(PipelineContextMock.Object, MessageMock.Object); MessageMock.Verify(m => m.SetProperty(BizTalkFactoryProperties.OutboundTransportLocation, "file.zip")); }
public void OutboundTransportLocationAbsolutePathIsKeptUnchanged() { MessageMock .Setup(m => m.GetProperty(BizTalkFactoryProperties.OutboundTransportLocation)) .Returns(@"\file.txt"); var sut = new ZipEncoder(); sut.Execute(PipelineContextMock.Object, MessageMock.Object); MessageMock.Verify(m => m.SetProperty(BizTalkFactoryProperties.OutboundTransportLocation, @"\file.zip")); }
public void UnsupportedOutboundTransportType() { MessageMock .Setup(m => m.GetProperty(BtsProperties.OutboundTransportCLSID)) .Returns("ee0e71a6-8945-4dd3-8770-f9e5495ddc7b"); var sut = new DirectoryCreator(); Invoking(() => sut.Execute(PipelineContextMock.Object, MessageMock.Object)) .Should().Throw <InvalidOperationException>() .WithMessage("Outbound file transport is required on this leg of the message exchange pattern."); }
public void CorrelationIdIsNotPropagatedOutwardWhenEmpty() { using (var inputStream = new MemoryStream(Encoding.UTF8.GetBytes("<root xmlns='urn:ns'></root>"))) { MessageMock.Object.BodyPart.Data = inputStream; MessageMock.Setup(m => m.GetProperty(BtsProperties.OutboundTransportLocation)).Returns("outbound-transport-location"); var sut = new SBMessagingContextPropagator(); sut.Execute(PipelineContextMock.Object, MessageMock.Object); MessageMock.Verify(m => m.SetProperty(SBMessagingProperties.CorrelationId, It.IsAny <string>()), Times.Never); } }
public void ResolveProcessNameBeforeStreamFirstReadEvent() { using (var stream = new TrackingStream(new StringStream("some-content"))) { MessageMock.Object.BodyPart.Data = stream; MessageMock.Setup(m => m.GetProperty(BtsProperties.OutboundTransportLocation)).Returns("outbound-transport-location"); var sut = ActivityTracker.Create(new MicroComponent.ActivityTracker.Context(PipelineContextMock.Object, MessageMock.Object, ActivityTrackingModes.Step)); sut.TrackActivity(); TrackingResolverMock.Verify(tr => tr.ResolveProcessName(), Times.Once()); } }
public void ResolveProcessNameViaContext() { const string name = "context-process-name"; MessageMock.Setup(m => m.GetProperty(TrackingProperties.ProcessName)).Returns(name); var sut = ProcessNameResolver.Create(MessageMock.Object); var processName = sut.ResolveProcessName(); processName.Should().Be(name); MessageMock.Verify(m => m.SetProperty(TrackingProperties.ProcessName, name), Times.Never()); }
public void FailedMessageRoutingIsEnabledByDefault() { var sut = new FailedMessageRoutingEnabler(); sut.Execute(PipelineContextMock.Object, MessageMock.Object); MessageMock.Verify( m => m.SetProperty(BtsProperties.RouteMessageOnFailure, true), Times.Once()); MessageMock.Verify( m => m.SetProperty(BtsProperties.SuppressRoutingFailureDiagnosticInfo, true), Times.Once()); }