Esempio n. 1
0
        public void ValidateTransformClaimTokenWithContext()
        {
            var contextMock = new MessageContextMock();

            contextMock
            .Setup(c => c.GetProperty(BizTalkFactoryProperties.ClaimedMessageType))
            .Returns("context-claimed-message-type");
            contextMock
            .Setup(c => c.GetProperty(BizTalkFactoryProperties.CorrelationToken))
            .Returns("context-correlation-token");
            contextMock
            .Setup(c => c.GetProperty(BizTalkFactoryProperties.EnvironmentTag))
            .Returns("context-environment-tag");

            using (var stream = ResourceManager.Load("Data.Token.1.xml"))
            {
                var setup = Given(input => input.Message(stream).Context(contextMock.Object))
                            .Transform
                            .OutputsXml(output => output.ConformingTo <CheckIn>().WithStrictConformanceLevel());
                var result = setup.Validate();
                Assert.That(result.Select("//usp:url/text()").Count, Is.EqualTo(1));
                Assert.That(result.SelectSingleNode("//usp:messageType/text()").Value, Is.EqualTo("context-claimed-message-type"));
                Assert.That(result.SelectSingleNode("//usp:correlationToken/text()").Value, Is.EqualTo("context-correlation-token"));
                Assert.That(result.SelectSingleNode("//usp:environmentTag/text()").Value, Is.EqualTo("context-environment-tag"));
            }
        }
Esempio n. 2
0
        public void Match()
        {
            var extractors = new[] {
                new XPathExtractor(BizTalkFactoryProperties.SenderName.QName, "/letter/*/from", ExtractionMode.Promote),
                new XPathExtractor(BizTalkFactoryProperties.ReceiverName.QName, "/letter/*/to", ExtractionMode.Promote),
                new XPathExtractor(TrackingProperties.ProcessName.QName, "/letter/*/subject", ExtractionMode.Write),
                new XPathExtractor(TrackingProperties.Value1.QName, "/letter/*/paragraph", ExtractionMode.Write),
                new XPathExtractor(TrackingProperties.Value2.QName, "/letter/*/salutations", ExtractionMode.Write),
                new XPathExtractor(TrackingProperties.Value3.QName, "/letter/*/signature", ExtractionMode.Write)
            };

            var stream = XPathMutatorStreamFactory.Create(
                ResourceManager.Load("Data.UnqualifiedLetter.xml"),
                extractors,
                () => MessageContextMock.Object);

            stream.Drain();

            MessageContextMock.Verify(c => c.Promote(BizTalkFactoryProperties.SenderName, "*****@*****.**"));
            MessageContextMock.Verify(c => c.Promote(BizTalkFactoryProperties.ReceiverName, "*****@*****.**"));
            MessageContextMock.Verify(c => c.SetProperty(TrackingProperties.ProcessName, "inquiry"));
            MessageContextMock.Verify(c => c.SetProperty(TrackingProperties.Value1, "paragraph-one"));
            MessageContextMock.Verify(c => c.SetProperty(TrackingProperties.Value2, "King regards,"));
            MessageContextMock.Verify(c => c.SetProperty(TrackingProperties.Value3, "John Doe"));
        }
 public FileOutboundTransportLocationBuilderFixture()
 {
     MessageContextMock = new();
     MessageContextMock
     .Setup(c => c.GetProperty(BtsProperties.OutboundTransportCLSID))
     .Returns("{9D0E4341-4CCE-4536-83FA-4A5040674AD6}");
 }
        public void ValidateTransformWithEnvironmentTagAndPartition()
        {
            var contextMock = new MessageContextMock();

            contextMock
            .Setup(c => c.GetProperty(BatchProperties.EnvelopeSpecName))
            .Returns("envelope-name");
            contextMock
            .Setup(c => c.GetProperty(BizTalkFactoryProperties.EnvironmentTag))
            .Returns("Tag");
            contextMock
            .Setup(c => c.GetProperty(BatchProperties.EnvelopePartition))
            .Returns("A");
            contextMock
            .Setup(c => c.GetProperty(TrackingProperties.MessagingStepActivityId))
            .Returns("D4D3A8E583024BAC9D35EC98C5422E82");

            using (var stream = new StringStream("<?xml version=\"1.0\" encoding=\"utf-16\" ?><root>content of a part is irrelevant here</root>"))
            {
                var setup = Given(input => input.Message(stream).Context(contextMock.Object))
                            .Transform
                            .OutputsXml(output => output.ConformingTo <AddPart>().WithStrictConformanceLevel());
                var result = setup.Validate();
                result.SelectSingleNode("//usp:envelopeSpecName") !.Value.Should().Be("envelope-name");
                result.SelectSingleNode("//usp:environmentTag") !.Value.Should().Be("Tag");
                result.SelectSingleNode("//usp:partition") !.Value.Should().Be("A");
                result.SelectSingleNode("//usp:messagingStepActivityId") !.Value.Should().Be("D4D3A8E583024BAC9D35EC98C5422E82");
            }
        }
        public void ValidateTransformClaimTokenWithEmbeddedDataAndContext()
        {
            var contextMock = new MessageContextMock();

            contextMock
            .Setup(c => c.GetProperty(BizTalkFactoryProperties.MessageType))
            .Returns("context-claimed-message-type");
            contextMock
            .Setup(c => c.GetProperty(BizTalkFactoryProperties.CorrelationId))
            .Returns("context-correlation-token");
            contextMock
            .Setup(c => c.GetProperty(BizTalkFactoryProperties.EnvironmentTag))
            .Returns("context-environment-tag");
            contextMock
            .Setup(c => c.GetProperty(BizTalkFactoryProperties.ReceiverName))
            .Returns("context-receiver-name");

            using (var stream = ResourceManager.Load(Assembly.GetExecutingAssembly(), "Be.Stateless.BizTalk.Resources.Message.ClaimToken.3.xml"))
            {
                var setup = Given(input => input.Message(stream).Context(contextMock.Object))
                            .Transform
                            .OutputsXml(output => output.ConformingTo <CheckIn>().WithStrictConformanceLevel());
                var result = setup.Validate();
                result.Select("//usp:url/text()").Should().HaveCount(1);
                result.SelectSingleNode("//usp:correlationId/text()").Value.Should().Be("embedded-correlation-token");
                result.SelectSingleNode("//usp:environmentTag/text()").Value.Should().Be("embedded-environment-tag");
                result.SelectSingleNode("//usp:messageType/text()").Value.Should().Be("embedded-claimed-message-type");
                result.SelectSingleNode("//usp:receiverName/text()").Value.Should().Be("context-receiver-name");
                result.SelectSingleNode("//usp:senderName/text()").Value.Should().Be("embedded-sender-name");
                result.SelectSingleNode("//usp:any/text()").Value
                .Should().Be("<parent><child>one</child><child>two</child></parent><parent><child>six</child><child>ten</child></parent>");
            }
        }
Esempio n. 6
0
 public void ReadInteger()
 {
     MessageContextMock.Setup(c => c.Read(BtsProperties.RetryCount.Name, BtsProperties.RetryCount.Namespace)).Returns(null);
     Assert.That(MessageContextMock.Object.GetProperty(BtsProperties.RetryCount), Is.Null);
     MessageContextMock.Setup(c => c.Read(BtsProperties.RetryCount.Name, BtsProperties.RetryCount.Namespace)).Returns("2");
     Assert.That(MessageContextMock.Object.GetProperty(BtsProperties.RetryCount), Is.EqualTo(2));
 }
Esempio n. 7
0
 public void ReadDateTime()
 {
     MessageContextMock.Setup(c => c.Read(FileProperties.FileCreationTime.Name, FileProperties.FileCreationTime.Namespace)).Returns(null);
     Assert.That(MessageContextMock.Object.GetProperty(FileProperties.FileCreationTime), Is.Null);
     MessageContextMock.Setup(c => c.Read(FileProperties.FileCreationTime.Name, FileProperties.FileCreationTime.Namespace)).Returns("2012-12-01");
     Assert.That(MessageContextMock.Object.GetProperty(FileProperties.FileCreationTime), Is.EqualTo(new DateTime(2012, 12, 1)));
     MessageContextMock.Setup(c => c.Read(FileProperties.FileCreationTime.Name, FileProperties.FileCreationTime.Namespace)).Returns("2017-09-15T10:19:06");
     Assert.That(MessageContextMock.Object.GetProperty(FileProperties.FileCreationTime), Is.EqualTo(new DateTime(2017, 9, 15, 10, 19, 6)));
 }
Esempio n. 8
0
 public void ReadBoolean()
 {
     MessageContextMock.Setup(c => c.Read(BtsProperties.AckRequired.Name, BtsProperties.AckRequired.Namespace)).Returns(null);
     Assert.That(MessageContextMock.Object.GetProperty(BtsProperties.AckRequired), Is.Null);
     MessageContextMock.Setup(c => c.Read(BtsProperties.AckRequired.Name, BtsProperties.AckRequired.Namespace)).Returns("true");
     Assert.That(MessageContextMock.Object.GetProperty(BtsProperties.AckRequired), Is.True);
     MessageContextMock.Setup(c => c.Read(BtsProperties.AckRequired.Name, BtsProperties.AckRequired.Namespace)).Returns("True");
     Assert.That(MessageContextMock.Object.GetProperty(BtsProperties.AckRequired), Is.True);
 }
        public void ThrowsWhenNotUsedWithFileAdapter()
        {
            MessageContextMock
            .Setup(c => c.GetProperty(BtsProperties.OutboundTransportCLSID))
            .Returns("{C166A7E5-4F4C-4B02-A6F2-8BE07E1FA786}");

            Invoking(() => new FileOutboundTransportLocationBuilder().Execute(MessageContextMock.Object))
            .Should().Throw <InvalidOperationException>()
            .WithMessage("Outbound file transport is required on this leg of the message exchange pattern.");
        }
        public void ThrowsWhenNoOutboundTransportLocation()
        {
            MessageContextMock
            .Setup(c => c.GetProperty(BtsProperties.OutboundTransportLocation))
            .Returns(@"C:\Files\Drops\Party\%MessageID%.xml");

            Invoking(() => new FileOutboundTransportLocationBuilder().Execute(MessageContextMock.Object))
            .Should().Throw <InvalidOperationException>()
            .WithMessage("Target sub path and file name were expected to be found in BizTalkFactoryProperties.OutboundTransportLocation context property.");
        }
        public void ThrowsWhenNotUsedWithMicrosoftSftpAdapter()
        {
            MessageContextMock
            .Setup(c => c.GetProperty(BtsProperties.OutboundTransportCLSID))
            .Returns("{9D0E4341-4CCE-4536-83FA-4A5040674AD6}");

            Action(() => new SftpOutboundTransportLocationBuilder().Execute(MessageContextMock.Object))
            .Should().Throw <InvalidOperationException>()
            .WithMessage("Outbound SFTP transport is required on this leg of the message exchange pattern.");
        }
        public void OutboundTransportLocationHasRootedFolderAndFile()
        {
            MessageContextMock
            .Setup(c => c.GetProperty(BizTalkFactoryProperties.OutboundTransportLocation))
            .Returns(@"\Folder\File.txt");

            new SftpOutboundTransportLocationBuilder().Execute(MessageContextMock.Object);

            MessageContextMock.Verify(c => c.SetProperty(BtsProperties.IsDynamicSend, true));
            MessageContextMock.Verify(c => c.SetProperty(SftpProperties.FolderPath, "/Folder"));
            MessageContextMock.Verify(c => c.SetProperty(SftpProperties.TargetFileName, @"File.txt"));
        }
Esempio n. 13
0
        public void ExecutePromotesOrWritesLocalNameValueInContext()
        {
            var messageContextMock = new MessageContextMock();
            var newValue           = string.Empty;

            var sut = new QNameValueExtractor(BizTalkFactoryProperties.OutboundTransportLocation.QName, "/letter/*/to", ExtractionMode.Promote, QNameValueExtractionMode.LocalName);

            sut.Execute(messageContextMock.Object, "ns:value", ref newValue);

            messageContextMock.Verify(c => c.Promote(BizTalkFactoryProperties.OutboundTransportLocation, "value"));
            newValue.Should().BeEmpty();
        }
Esempio n. 14
0
        public void ExecutePromotesOrWritesLocalNameValueInContext()
        {
            var messageContextMock = new MessageContextMock();
            var newValue           = string.Empty;

            var sut = new QNameValueExtractor(BizTalkFactoryProperties.ReceiverName.QName, "/letter/*/to", ExtractionMode.Promote, QNameValueExtractionMode.LocalName);

            sut.Execute(messageContextMock.Object, "ns:value", ref newValue);

            messageContextMock.Verify(c => c.Promote(BizTalkFactoryProperties.ReceiverName, "value"));
            Assert.That(newValue, Is.Empty);
        }
Esempio n. 15
0
        public void OutboundTransportLocationHasRootedFolderAndFile()
        {
            MessageContextMock
            .Setup(c => c.GetProperty(BizTalkFactoryProperties.OutboundTransportLocation))
            .Returns(@"\folder\file.txt");

            new SftpOutboundTransportLocationBuilder().Execute(MessageContextMock.Object);

            MessageContextMock.Verify(
                c => c.SetProperty(
                    BtsProperties.OutboundTransportLocation,
                    "sftp://sftp.world.com:22/folder/file.txt"));
        }
        public void OutboundTransportLocationIsUncPath()
        {
            MessageContextMock
            .Setup(c => c.GetProperty(BtsProperties.OutboundTransportLocation))
            .Returns(@"\\server\%MessageID%.xml");
            MessageContextMock
            .Setup(c => c.GetProperty(BizTalkFactoryProperties.OutboundTransportLocation))
            .Returns(@"File.txt");

            new FileOutboundTransportLocationBuilder().Execute(MessageContextMock.Object);

            MessageContextMock.Verify(c => c.SetProperty(BtsProperties.OutboundTransportLocation, @"\\server\File.txt"));
        }
Esempio n. 17
0
 public SftpOutboundTransportLocationBuilderFixture()
 {
     MessageContextMock = new();
     MessageContextMock
     .Setup(c => c.GetProperty(BtsProperties.OutboundTransportLocation))
     .Returns("sftp://sftp.world.com:22/files/drops/party/%MessageID%.xml");
     MessageContextMock
     .Setup(c => c.GetProperty(BtsProperties.OutboundTransportCLSID))
     .Returns("{C166A7E5-4F4C-4B02-A6F2-8BE07E1FA786}");
     MessageContextMock
     .Setup(c => c.GetProperty(SftpProperties.FolderPath))
     .Returns("/files/drops/party");
 }
 public SftpOutboundTransportLocationBuilderFixture()
 {
     MessageContextMock = new MessageContextMock();
     MessageContextMock
     .Setup(c => c.GetProperty(BtsProperties.OutboundTransportCLSID))
     .Returns("{C166A7E5-4F4C-4B02-A6F2-8BE07E1FA786}");
     MessageContextMock
     .Setup(c => c.GetProperty(SftpProperties.FolderPath))
     .Returns("/Files/Drops/Party");
     MessageContextMock
     .Setup(c => c.GetProperty(SftpProperties.TargetFileName))
     .Returns(@"%MessageID%.xml");
 }
Esempio n. 19
0
        public void ExecuteDemotesLocalNameValueInContextAndKeepOriginalPrefix()
        {
            var messageContextMock = new MessageContextMock();

            messageContextMock.Setup(c => c.GetProperty(BizTalkFactoryProperties.OutboundTransportLocation)).Returns("new-value");
            var newValue = string.Empty;

            var sut = new QNameValueExtractor(BizTalkFactoryProperties.OutboundTransportLocation.QName, "/letter/*/to", ExtractionMode.Demote, QNameValueExtractionMode.LocalName);

            sut.Execute(messageContextMock.Object, "ns:value", ref newValue);

            messageContextMock.Verify(c => c.Promote(BizTalkFactoryProperties.OutboundTransportLocation, It.IsAny <string>()), Times.Never);
            newValue.Should().Be("ns:new-value");
        }
Esempio n. 20
0
        public void ExecuteDemotesLocalNameValueInContextAndKeepOriginalPrefix()
        {
            var messageContextMock = new MessageContextMock();

            messageContextMock.Setup(c => c.GetProperty(BizTalkFactoryProperties.ReceiverName)).Returns("new-value");
            var newValue = string.Empty;

            var sut = new QNameValueExtractor(BizTalkFactoryProperties.ReceiverName.QName, "/letter/*/to", ExtractionMode.Demote, QNameValueExtractionMode.LocalName);

            sut.Execute(messageContextMock.Object, "ns:value", ref newValue);

            messageContextMock.Verify(c => c.Promote(BizTalkFactoryProperties.ReceiverName, It.IsAny <string>()), Times.Never);
            Assert.That(newValue, Is.EqualTo("ns:new-value"));
        }
        public void OutboundTransportLocationHasRootedFolderAndFile()
        {
            MessageContextMock
            .Setup(c => c.GetProperty(BtsProperties.OutboundTransportLocation))
            .Returns(@"C:\Files\Drops\Party\%MessageID%.xml");

            MessageContextMock
            .Setup(c => c.GetProperty(BizTalkFactoryProperties.OutboundTransportLocation))
            .Returns(@"\Folder\File.txt");

            new FileOutboundTransportLocationBuilder().Execute(MessageContextMock.Object);

            MessageContextMock.Verify(c => c.SetProperty(BtsProperties.OutboundTransportLocation, @"\Folder\File.txt"));
        }
Esempio n. 22
0
        public void MatchQualified()
        {
            var extractors = new[] {
                new XPathExtractor(BizTalkFactoryProperties.ContextBuilderTypeName.QName, "/*[local-name()='letter']/*/*[local-name()='subject']", ExtractionMode.Write),
                new XPathExtractor(BizTalkFactoryProperties.OutboundTransportLocation.QName, "/*[local-name()='letter']/*/*[local-name()='paragraph']", ExtractionMode.Write),
                new XPathExtractor(BizTalkFactoryProperties.MapTypeName.QName, "/*[local-name()='letter']/*/*[local-name()='signature']", ExtractionMode.Write)
            };

            using (var stream = XPathMutatorStreamFactory.Create(new StringStream(QUALIFIED_LETTER), extractors, () => MessageContextMock.Object))
            {
                stream.Drain();
            }

            MessageContextMock.Verify(c => c.SetProperty(BizTalkFactoryProperties.ContextBuilderTypeName, "inquiry"));
            MessageContextMock.Verify(c => c.SetProperty(BizTalkFactoryProperties.OutboundTransportLocation, "paragraph-one"));
            MessageContextMock.Verify(c => c.SetProperty(BizTalkFactoryProperties.MapTypeName, "John Doe"));
        }
Esempio n. 23
0
        public void MatchWithPositionWhenQualified()
        {
            var extractors = new[] {
                new XPathExtractor(BizTalkFactoryProperties.ContextBuilderTypeName.QName, "/*[local-name()='letter']/*/*[local-name()='paragraph'][1]", ExtractionMode.Write),
                new XPathExtractor(BizTalkFactoryProperties.OutboundTransportLocation.QName, "/*[local-name()='letter']/*/*[local-name()='paragraph'][2]", ExtractionMode.Write),
                new XPathExtractor(BizTalkFactoryProperties.MapTypeName.QName, "/*[local-name()='letter']/*/*[local-name()='paragraph'][3]", ExtractionMode.Write)
            };

            using (var stream = XPathMutatorStreamFactory.Create(new StringStream(QUALIFIED_LETTER), extractors, () => MessageContextMock.Object))
            {
                stream.Drain();
            }

            // !!IMPORTANT!! XPathMutatorStream does not support such expressions and henceforth does not perform any succeeding match
            MessageContextMock.Verify(c => c.Promote(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <object>()), Times.Never());
            MessageContextMock.Verify(c => c.Write(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <object>()), Times.Never());
        }
Esempio n. 24
0
        public void MatchForGroup()
        {
            var extractors = new[] {
                new XPathExtractor(BizTalkFactoryProperties.ContextBuilderTypeName.QName, "/letter/*/paragraph", ExtractionMode.Write),
                new XPathExtractor(BizTalkFactoryProperties.OutboundTransportLocation.QName, "/letter/*/paragraph", ExtractionMode.Write),
                new XPathExtractor(BizTalkFactoryProperties.MapTypeName.QName, "/letter/*/paragraph", ExtractionMode.Write)
            };

            using (var stream = XPathMutatorStreamFactory.Create(new StringStream(UNQUALIFIED_LETTER), extractors, () => MessageContextMock.Object))
            {
                stream.Drain();
            }

            MessageContextMock.Verify(c => c.SetProperty(BizTalkFactoryProperties.ContextBuilderTypeName, "paragraph-one"));
            MessageContextMock.Verify(c => c.SetProperty(BizTalkFactoryProperties.OutboundTransportLocation, "paragraph-one"));
            MessageContextMock.Verify(c => c.SetProperty(BizTalkFactoryProperties.MapTypeName, "paragraph-one"));
        }
        public void ValidateTransform()
        {
            var contextMock = new MessageContextMock();

            contextMock
            .Setup(c => c.GetProperty(BatchProperties.EnvelopeSpecName))
            .Returns("envelope-name");

            using (var stream = new StringStream("<?xml version=\"1.0\" encoding=\"utf-16\" ?><root>content of a part is irrelevant here</root>"))
            {
                var setup = Given(input => input.Message(stream).Context(contextMock.Object))
                            .Transform
                            .OutputsXml(output => output.ConformingTo <AddPart>().WithStrictConformanceLevel());
                var result = setup.Validate();
                result.SelectSingleNode("//usp:envelopeSpecName") !.Value.Should().Be("envelope-name");
                result.Select("//usp:partition").Should().BeEmpty();
                result.Select("//usp:messagingStepActivityId").Should().BeEmpty();
            }
        }
Esempio n. 26
0
        public void MatchWithPositions()
        {
            var extractors = new[] {
                new XPathExtractor(TrackingProperties.Value1.QName, "/letter/*/paragraph[1]", ExtractionMode.Write),
                new XPathExtractor(TrackingProperties.Value2.QName, "/letter/*/paragraph[2]", ExtractionMode.Write),
                new XPathExtractor(TrackingProperties.Value3.QName, "/letter/*/paragraph[3]", ExtractionMode.Write)
            };

            var stream = XPathMutatorStreamFactory.Create(
                ResourceManager.Load("Data.UnqualifiedLetter.xml"),
                extractors,
                () => MessageContextMock.Object);

            stream.Drain();

            MessageContextMock.Verify(c => c.SetProperty(TrackingProperties.Value1, "paragraph-one"));
            MessageContextMock.Verify(c => c.SetProperty(TrackingProperties.Value2, "paragraph-two"));
            MessageContextMock.Verify(c => c.SetProperty(TrackingProperties.Value3, "paragraph-six"));
        }
Esempio n. 27
0
        public void MatchQualifiedWithPosition()
        {
            var extractors = new[] {
                new XPathExtractor(TrackingProperties.Value1.QName, "/*[local-name()='letter']/*/*[local-name()='paragraph'][1]", ExtractionMode.Write),
                new XPathExtractor(TrackingProperties.Value2.QName, "/*[local-name()='letter']/*/*[local-name()='paragraph'][2]", ExtractionMode.Write),
                new XPathExtractor(TrackingProperties.Value3.QName, "/*[local-name()='letter']/*/*[local-name()='paragraph'][3]", ExtractionMode.Write)
            };

            var stream = XPathMutatorStreamFactory.Create(
                ResourceManager.Load("Data.QualifiedLetter.xml"),
                extractors,
                () => MessageContextMock.Object);

            stream.Drain();

            // !!IMPORTANT!! XPathMutatorStream does not support such expressions and henceforth does not perform any succeeding match
            MessageContextMock.Verify(c => c.Promote(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <object>()), Times.Never());
            MessageContextMock.Verify(c => c.Write(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <object>()), Times.Never());
        }
Esempio n. 28
0
        public void MatchQualified()
        {
            var extractors = new[] {
                new XPathExtractor(TrackingProperties.ProcessName.QName, "/*[local-name()='letter']/*/*[local-name()='subject']", ExtractionMode.Write),
                new XPathExtractor(TrackingProperties.Value1.QName, "/*[local-name()='letter']/*/*[local-name()='paragraph']", ExtractionMode.Write),
                new XPathExtractor(TrackingProperties.Value3.QName, "/*[local-name()='letter']/*/*[local-name()='signature']", ExtractionMode.Write)
            };

            var stream = XPathMutatorStreamFactory.Create(
                ResourceManager.Load("Data.QualifiedLetter.xml"),
                extractors,
                () => MessageContextMock.Object);

            stream.Drain();

            MessageContextMock.Verify(c => c.SetProperty(TrackingProperties.ProcessName, "inquiry"));
            MessageContextMock.Verify(c => c.SetProperty(TrackingProperties.Value1, "paragraph-one"));
            MessageContextMock.Verify(c => c.SetProperty(TrackingProperties.Value3, "John Doe"));
        }
Esempio n. 29
0
        public void MatchAndDemote()
        {
            var extractors = new[] {
                new XPathExtractor(BizTalkFactoryProperties.ContextBuilderTypeName.QName, "/letter/*/paragraph[1]", ExtractionMode.Demote),
                new XPathExtractor(BizTalkFactoryProperties.ContextBuilderTypeName.QName, "/letter/*/paragraph[2]", ExtractionMode.Demote),
                new XPathExtractor(BizTalkFactoryProperties.ContextBuilderTypeName.QName, "/letter/*/paragraph[3]", ExtractionMode.Demote)
            };

            using (var stream = XPathMutatorStreamFactory.Create(new StringStream(UNQUALIFIED_LETTER), extractors, () => MessageContextMock.Object))
                using (var reader = new StreamReader(stream))
                {
                    MessageContextMock.Setup(c => c.GetProperty(BizTalkFactoryProperties.ContextBuilderTypeName)).Returns("same-paragraph");
                    reader.ReadToEnd()
                    .Should().Be(
                        UNQUALIFIED_LETTER
                        .Replace("paragraph-one", "same-paragraph")
                        .Replace("paragraph-two", "same-paragraph")
                        .Replace("paragraph-six", "same-paragraph")
                        );
                }
        }
Esempio n. 30
0
        public void Match()
        {
            var extractors = new[] {
                new XPathExtractor(BizTalkFactoryProperties.ContextBuilderTypeName.QName, "/letter/*/from", ExtractionMode.Promote),
                new XPathExtractor(BizTalkFactoryProperties.OutboundTransportLocation.QName, "/letter/*/to", ExtractionMode.Promote),
                new XPathExtractor(SBMessagingProperties.ContentType.QName, "/letter/*/subject", ExtractionMode.Write),
                new XPathExtractor(SBMessagingProperties.CorrelationId.QName, "/letter/*/paragraph", ExtractionMode.Write),
                new XPathExtractor(SBMessagingProperties.Label.QName, "/letter/*/salutations", ExtractionMode.Write),
                new XPathExtractor(BtsProperties.Operation.QName, "/letter/*/signature", ExtractionMode.Write)
            };

            using (var stream = XPathMutatorStreamFactory.Create(new StringStream(UNQUALIFIED_LETTER), extractors, () => MessageContextMock.Object))
            {
                stream.Drain();
            }

            MessageContextMock.Verify(c => c.Promote(BizTalkFactoryProperties.ContextBuilderTypeName, "*****@*****.**"));
            MessageContextMock.Verify(c => c.Promote(BizTalkFactoryProperties.OutboundTransportLocation, "*****@*****.**"));
            MessageContextMock.Verify(c => c.SetProperty(SBMessagingProperties.ContentType, "inquiry"));
            MessageContextMock.Verify(c => c.SetProperty(SBMessagingProperties.CorrelationId, "paragraph-one"));
            MessageContextMock.Verify(c => c.SetProperty(SBMessagingProperties.Label, "King regards,"));
            MessageContextMock.Verify(c => c.SetProperty(BtsProperties.Operation, "John Doe"));
        }