public void ComputeReceiveLocationNameDoesNotRequireAggregateToMatchItsReceivePortOneIfItHasNone() { Skip.IfNot(BizTalkServerGroup.IsConfigured); var applicationBindingMock = new Mock <IApplicationBinding <NamingConventionSpy> >(); applicationBindingMock.Setup(snc => snc.ResolveName()).Returns("SomeApplication"); var receivePortMock = new Mock <IReceivePort <NamingConventionSpy> >(); receivePortMock.Setup(rp => rp.GetType()).Returns(typeof(StandaloneReceivePort)); receivePortMock.Setup(rp => rp.ApplicationBinding).Returns(applicationBindingMock.Object); receivePortMock.Setup(rp => rp.Name).Returns(new NamingConventionSpy { Party = "ReceivePortParty" }); var receiveLocationMock = new Mock <IReceiveLocation <NamingConventionSpy> >(); receiveLocationMock.Setup(rl => rl.GetType()).Returns(typeof(BankReceiveLocation)); receiveLocationMock.Setup(rl => rl.ReceivePort).Returns(receivePortMock.Object); receiveLocationMock.Setup(rl => rl.Transport) .Returns(new ReceiveLocationTransport <NamingConventionSpy>(receiveLocationMock.Object) { Adapter = new FileAdapter.Inbound(_ => { }) }); var sut = new NamingConventionSpy { Subject = "SomeMessage", MessageFormat = "SomeFormat" }; Invoking(() => sut.ComputeReceiveLocationNameSpy(receiveLocationMock.Object)).Should().NotThrow(); }
public void ComputeReceiveLocationNameRequiresAggregateToMatchItsReceivePortOneIfItHasOne() { Skip.IfNot(BizTalkServerGroup.IsConfigured); var applicationBindingMock = new Mock <IApplicationBinding <NamingConventionSpy> >(); applicationBindingMock.Setup(snc => snc.ResolveName()).Returns("SomeApplication"); var receivePortMock = new Mock <IReceivePort <NamingConventionSpy> >(); receivePortMock.Setup(rp => rp.GetType()).Returns(typeof(TaxAgencyReceivePort)); receivePortMock.Setup(rp => rp.ApplicationBinding).Returns(applicationBindingMock.Object); receivePortMock.Setup(rp => rp.Name).Returns(new NamingConventionSpy { Party = "ReceivePortParty" }); var receiveLocationMock = new Mock <IReceiveLocation <NamingConventionSpy> >(); receiveLocationMock.Setup(rl => rl.GetType()).Returns(typeof(BankReceiveLocation)); receiveLocationMock.Setup(rl => rl.ReceivePort).Returns(receivePortMock.Object); receiveLocationMock.Setup(rl => rl.Transport) .Returns(new ReceiveLocationTransport <NamingConventionSpy>(receiveLocationMock.Object) { Adapter = new FileAdapter.Inbound(_ => { }) }); var sut = new NamingConventionSpy { Subject = "SomeMessage", MessageFormat = "SomeFormat" }; Invoking(() => sut.ComputeReceiveLocationNameSpy(receiveLocationMock.Object)) .Should().Throw <NamingConventionException>() .WithMessage($"'{nameof(BankReceiveLocation)}' ReceiveLocation's Aggregate, 'Income', does not match its ReceivePort's one, 'Invoice'."); }
public void ComputeReceiveLocationNameTwoWay() { Skip.IfNot(BizTalkServerGroup.IsConfigured); var applicationBindingMock = new Mock <IApplicationBinding <NamingConventionSpy> >(); applicationBindingMock.Setup(snc => snc.ResolveName()).Returns("SomeApplication"); var receivePortMock = new Mock <IReceivePort <NamingConventionSpy> >(); receivePortMock.Setup(rp => rp.GetType()).Returns(typeof(StandaloneReceivePort)); receivePortMock.Setup(rp => rp.ApplicationBinding).Returns(applicationBindingMock.Object); receivePortMock.Setup(rp => rp.Name).Returns(new NamingConventionSpy { Party = "SomeParty" }); receivePortMock.Setup(rp => rp.IsTwoWay).Returns(true); var receiveLocationMock = new Mock <IReceiveLocation <NamingConventionSpy> >(); receiveLocationMock.Setup(rl => rl.GetType()).Returns(typeof(StandaloneReceiveLocation)); receiveLocationMock.Setup(rl => rl.ReceivePort).Returns(receivePortMock.Object); receiveLocationMock.Setup(rl => rl.Transport) .Returns(new ReceiveLocationTransport <NamingConventionSpy>(receiveLocationMock.Object) { Adapter = new FileAdapter.Inbound(_ => { }) }); var sut = new NamingConventionSpy { Subject = "SomeMessage", MessageFormat = "SomeFormat" }; sut.ComputeReceiveLocationNameSpy(receiveLocationMock.Object).Should().Be("SomeApplication.RL2.SomeParty.SomeMessage.FILE.SomeFormat"); }
public void ComputeAggregateNameReturnsNullWhenTypeQualifiedNameIsNotMadeOfExactlyFiveTokens() { var sut = new NamingConventionSpy(); sut.ComputeAggregateNameSpy(typeof(SampleApplication)).Should().BeNull(); sut.ComputeAggregateNameSpy(typeof(FinanceSampleApplication)).Should().BeNull(); sut.ComputeAggregateNameSpy(typeof(StandaloneReceivePort)).Should().BeNull(); }
public void ComputeAdapterNameForOffice365EmailAdapter() { Skip.IfNot(BizTalkServerGroup.IsConfigured); var sut = new NamingConventionSpy(); IAdapter adapter = new Office365EmailAdapter.Inbound(); sut.ComputeAdapterNameSpy(adapter).Should().Be("Office365Email"); }
public void ComputeApplicationNameReturnsTypeNameIfNotGiven() { var applicationBindingMock = new Mock <IApplicationBinding <NamingConventionSpy> >(); applicationBindingMock.Setup(ab => ab.GetType()).Returns(typeof(UnnamedApplication)); var sut = new NamingConventionSpy(); sut.ComputeApplicationNameSpy(applicationBindingMock.Object).Should().Be(nameof(UnnamedApplication)); }
public void ComputeApplicationNameReturnsGivenName() { var applicationBindingMock = new Mock <IApplicationBinding <NamingConventionSpy> >(); var sut = new NamingConventionSpy { ApplicationName = "SampleApplicationName" }; sut.ComputeApplicationNameSpy(applicationBindingMock.Object).Should().Be("SampleApplicationName"); }
public void ComputeSendPortNameRequiresApplicationBinding() { var sendPortMock = new Mock <ISendPort <NamingConventionSpy> >(); sendPortMock.Setup(sp => sp.GetType()).Returns(typeof(StandaloneSendPort)); var sut = new NamingConventionSpy(); Invoking(() => sut.ComputeSendPortNameSpy(sendPortMock.Object)) .Should().Throw <NamingConventionException>() .WithMessage($"'{nameof(StandaloneSendPort)}' SendPort is not bound to application's send port collection."); }
public void ComputeSendPortNameRequiresParty() { var applicationBindingMock = new Mock <IApplicationBinding <NamingConventionSpy> >(); var sendPortMock = new Mock <ISendPort <NamingConventionSpy> >(); sendPortMock.Setup(sp => sp.GetType()).Returns(typeof(StandaloneSendPort)); sendPortMock.Setup(sp => sp.ApplicationBinding).Returns(applicationBindingMock.Object); var sut = new NamingConventionSpy(); Invoking(() => sut.ComputeSendPortNameSpy(sendPortMock.Object)) .Should().Throw <NamingConventionException>() .WithMessage($"'{nameof(StandaloneSendPort)}' SendPort's Party is required."); }
public void ComputeAdapterNameResolvesActualProtocolTypeNameForWcfCustomIsolatedAdapter() { Skip.IfNot(BizTalkServerGroup.IsConfigured); var sut = new NamingConventionSpy(); IAdapter adapter = new CustomIsolatedAdapterDummy <NetTcpBindingElement, CustomRLConfig>(); sut.ComputeAdapterNameSpy(adapter).Should().Be("WCF-CustomIsolatedNetTcp"); adapter = new CustomIsolatedAdapterDummy <WSHttpBindingElement, CustomRLConfig>(); sut.ComputeAdapterNameSpy(adapter).Should().Be("WCF-CustomIsolatedWsHttp"); adapter = new CustomIsolatedAdapterDummy <BasicHttpBindingElement, CustomRLConfig>(); sut.ComputeAdapterNameSpy(adapter).Should().Be("WCF-CustomIsolatedBasicHttp"); }
public void ComputeReceivePortNameEmbedsApplicationNameAndParty() { var applicationBindingMock = new Mock <IApplicationBinding <NamingConventionSpy> >(); applicationBindingMock.Setup(snc => snc.ResolveName()).Returns("SomeApplication"); var receivePortMock = new Mock <IReceivePort <NamingConventionSpy> >(); receivePortMock.Setup(rp => rp.GetType()).Returns(typeof(StandaloneReceivePort)); receivePortMock.Setup(rp => rp.ApplicationBinding).Returns(applicationBindingMock.Object); var sut = new NamingConventionSpy { Party = "SomeParty" }; sut.ComputeReceivePortNameSpy(receivePortMock.Object).Should().Be("SomeApplication.RP1.SomeParty"); }
public void ComputeReceiveLocationNameRequiresParty() { var receivePortMock = new Mock <IReceivePort <NamingConventionSpy> >(); receivePortMock.Setup(rp => rp.Name).Returns(new NamingConventionSpy()); var receiveLocationMock = new Mock <IReceiveLocation <NamingConventionSpy> >(); receiveLocationMock.Setup(rp => rp.GetType()).Returns(typeof(BankReceiveLocation)); receiveLocationMock.Setup(rl => rl.ReceivePort).Returns(receivePortMock.Object); var sut = new NamingConventionSpy(); Invoking(() => sut.ComputeReceiveLocationNameSpy(receiveLocationMock.Object)) .Should().Throw <NamingConventionException>() .WithMessage($"'{nameof(BankReceiveLocation)}' ReceiveLocation's Party is required."); }
public void ComputeSendPortNameRequiresNonNullMessageFormat() { var applicationBindingMock = new Mock <IApplicationBinding <NamingConventionSpy> >(); applicationBindingMock.Setup(snc => snc.ResolveName()).Returns("SomeApplication"); var sendPortMock = new Mock <ISendPort <NamingConventionSpy> >(); sendPortMock.Setup(sp => sp.GetType()).Returns(typeof(StandaloneSendPort)); sendPortMock.Setup(sp => sp.ApplicationBinding).Returns(applicationBindingMock.Object); var sut = new NamingConventionSpy { Party = "SomeParty", Subject = "SomeMessage" }; Invoking(() => sut.ComputeSendPortNameSpy(sendPortMock.Object)) .Should().Throw <NamingConventionException>() .WithMessage("A non null MessageFormat is required."); }
public void ComputeAdapterNameResolvesActualProtocolTypeNameForWcfCustomAdapter() { Skip.IfNot(BizTalkServerGroup.IsConfigured); var sut = new NamingConventionSpy(); IAdapter adapter = new CustomAdapterDummy <NetTcpBindingElement, CustomRLConfig>(); sut.ComputeAdapterNameSpy(adapter).Should().Be("WCF-CustomNetTcp"); adapter = new CustomAdapterDummy <NetMsmqBindingElement, CustomRLConfig>(); sut.ComputeAdapterNameSpy(adapter).Should().Be("WCF-CustomNetMsmq"); adapter = new CustomAdapterDummy <Be.Stateless.BizTalk.Dsl.Binding.ServiceModel.Configuration.NetMsmqBindingElement, CustomRLConfig>(); sut.ComputeAdapterNameSpy(adapter).Should().Be("WCF-CustomNetMsmq"); adapter = new CustomAdapterDummy <OracleDBBindingConfigurationElement, CustomRLConfig>(); sut.ComputeAdapterNameSpy(adapter).Should().Be("WCF-CustomOracleDB"); adapter = new CustomAdapterDummy <SqlAdapterBindingConfigurationElement, CustomRLConfig>(); sut.ComputeAdapterNameSpy(adapter).Should().Be("WCF-CustomSql"); adapter = new WcfCustomAdapter.Outbound <CustomBindingElement>(a => a.Binding.Add(new MtomMessageEncodingElement(), new HttpsTransportElement())); sut.ComputeAdapterNameSpy(adapter).Should().Be("WCF-CustomHttps"); adapter = new WcfCustomAdapter.Outbound <CustomBindingElement>(a => a.Binding.Add(new TcpTransportElement())); sut.ComputeAdapterNameSpy(adapter).Should().Be("WCF-CustomTcp"); adapter = new WcfCustomAdapter.Outbound <CustomBindingElement>(a => a.Binding.Add(new SAPAdapterExtensionElement())); sut.ComputeAdapterNameSpy(adapter).Should().Be("WCF-CustomSap"); adapter = new WcfCustomAdapter.Outbound <CustomBindingElement>(a => a.Binding.Add(new SqlAdapterBindingElementExtensionElement())); sut.ComputeAdapterNameSpy(adapter).Should().Be("WCF-CustomSql"); // notice that OracleDBAdapterExtensionElement is internal :( //adapter = new WcfCustomAdapter.Outbound<CustomBindingElement>(a => a.Binding.Add(new OracleDBAdapterExtensionElement())); var type = typeof(Microsoft.Adapters.OracleDB.InboundOperation).Assembly.GetType("Microsoft.Adapters.OracleDB.OracleDBAdapterExtensionElement", true); var bindingElement = (BindingElementExtensionElement)Activator.CreateInstance(type); adapter = new WcfCustomAdapter.Outbound <CustomBindingElement>(a => a.Binding.Add(bindingElement)); sut.ComputeAdapterNameSpy(adapter).Should().Be("WCF-CustomOracleDB"); }
public void ComputeReceiveLocationNameRequiresNonNullMessageFormat() { var receivePortMock = new Mock <IReceivePort <NamingConventionSpy> >(); receivePortMock.Setup(rp => rp.Name).Returns(new NamingConventionSpy { Party = "ReceivePortParty" }); var receiveLocationMock = new Mock <IReceiveLocation <NamingConventionSpy> >(); receiveLocationMock.Setup(rl => rl.ReceivePort).Returns(receivePortMock.Object); var sut = new NamingConventionSpy { Subject = "SomeMessage" }; Invoking(() => sut.ComputeReceiveLocationNameSpy(receiveLocationMock.Object)) .Should().Throw <NamingConventionException>() .WithMessage("A non null MessageFormat is required."); }
public void ComputeReceivePortNameTwoWay() { Skip.IfNot(BizTalkServerGroup.IsConfigured); var applicationBindingMock = new Mock <IApplicationBinding <NamingConventionSpy> >(); applicationBindingMock.Setup(snc => snc.ResolveName()).Returns("SomeApplication"); var receivePortMock = new Mock <IReceivePort <NamingConventionSpy> >(); receivePortMock.Setup(rp => rp.GetType()).Returns(typeof(StandaloneReceivePort)); receivePortMock.Setup(rp => rp.ApplicationBinding).Returns(applicationBindingMock.Object); receivePortMock.Setup(rp => rp.IsTwoWay).Returns(true); var sut = new NamingConventionSpy { Party = "SomeParty" }; sut.ComputeReceivePortNameSpy(receivePortMock.Object).Should().Be("SomeApplication.RP2.SomeParty"); }
public void ComputeReceiveLocationNameRequiresPartyToMatchItsReceivePortOne() { var receivePortMock = new Mock <IReceivePort <NamingConventionSpy> >(); receivePortMock.Setup(rp => rp.Name).Returns(new NamingConventionSpy { Party = "ReceivePortParty" }); var receiveLocationMock = new Mock <IReceiveLocation <NamingConventionSpy> >(); receiveLocationMock.Setup(rp => rp.GetType()).Returns(typeof(BankReceiveLocation)); receiveLocationMock.Setup(rl => rl.ReceivePort).Returns(receivePortMock.Object); var sut = new NamingConventionSpy { Party = "ReceiveLocationParty", Subject = "SomeMessage", MessageFormat = "SomeFormat" }; Invoking(() => sut.ComputeReceiveLocationNameSpy(receiveLocationMock.Object)) .Should().Throw <NamingConventionException>() .WithMessage($"'{nameof(BankReceiveLocation)}' ReceiveLocation's Party, 'ReceiveLocationParty', does not match its ReceivePort's one, 'ReceivePortParty'."); }
public void ComputeSendPortNameEmbedsEmptyMessageFormat() { Skip.IfNot(BizTalkServerGroup.IsConfigured); var applicationBindingMock = new Mock <IApplicationBinding <NamingConventionSpy> >(); applicationBindingMock.Setup(snc => snc.ResolveName()).Returns("SomeApplication"); var sendPortMock = new Mock <ISendPort <NamingConventionSpy> >(); sendPortMock.Setup(sp => sp.GetType()).Returns(typeof(StandaloneSendPort)); sendPortMock.Setup(sp => sp.ApplicationBinding).Returns(applicationBindingMock.Object); sendPortMock.Setup(sp => sp.Transport).Returns(new SendPortTransport <NamingConventionSpy>(sendPortMock.Object) { Adapter = new FileAdapter.Outbound(_ => { }) }); var sut = new NamingConventionSpy { Party = "SomeParty", Subject = "SomeMessage", MessageFormat = string.Empty }; sut.ComputeSendPortNameSpy(sendPortMock.Object).Should().Be("SomeApplication.SP1.SomeParty.SomeMessage.FILE"); }
public void ComputeAggregateNameReturnsFourthTokenOfTypeQualifiedNameMadeOfExactlyFiveTokens() { var sut = new NamingConventionSpy(); sut.ComputeAggregateNameSpy(typeof(TaxAgencyReceivePort)).Should().Be("Invoice"); }