public void Setup() { ObjectFactory.Configure(x => { x.For <IServiceBus>().Singleton().Use <MockedServiceBus>(); x.For <IPostActionSpecification>().Use <PublishEdiAsnSentSpecification>(); x.For <IExecutePostConsumeAction>().Use <ExecutePostConsumeAction>(); }); ServiceLocator.SetLocatorProvider(() => new StructureMapServiceLocator(ObjectFactory.Container)); Lines = new List <ShippedLine>(); Lines.Add(new ShippedLine() { LineNumber = "line1" }); Lines.Add(new ShippedLine() { LineNumber = "line2" }); Lines.Add(new ShippedLine() { LineNumber = "line3" }); DefaultOrderHasBeenShippedMessage = new OrderHasBeenShippedMessage() { BOL = BOL, ControlNumber = ControlNumber, Lines = Lines }; _sut = ServiceLocator.Current.GetInstance <IExecutePostConsumeAction>(); }
public void can_create_interchange_control_with_856() { OrderHasBeenShippedMessage order = GetOrder(); var subscr = ServiceLocator.Current.GetInstance <Subscriber <OrderHasBeenShippedMessage> >(); subscr.Consume(order); }
public void can_consume_shipped_order_message() { //ARRANGE var message = new OrderHasBeenShippedMessage(); message.Add(new ShippedLine()); var ediContentCreator = new Mock<ICreateEdiContentFrom<OrderHasBeenShippedMessage>>(); var buildValues = new EdiXmlBuildValues {ElementDelimiter = "~", SegmentDelimiter = "\n"}; // ediContentCreator.Setup(c => c.ReceiverId).Returns("xxxi"); // ediContentCreator.Setup(c => c.ControlNumber).Returns(62); // ediContentCreator.Setup(c => c.EdiXmlBuildValues).Returns(buildValues); // ediContentCreator.Setup(c => c.FunctionalId).Returns("PO"); _resolver.Setup(r => r.GetBuildValueFactoryFor(BusinessPartner.FedEx)).Returns(new FedExBuildValueFactory()); _businessPartnerResolver.Setup(x => x.ResolveFrom(message)).Returns(ediContentCreator.Object); var document = new EDIXmlInterchangeControl(_seg); _ediDocumentCreator.Setup(x => x.CreateDocumentWith(ediContentCreator.Object, message)) .Returns(new EDITransmissionPackage(document, BusinessPartner.FedEx)); _ediDocumentSaver.Setup(x => x.Save(It.IsAny<EDITransmissionPackage>())); _acceptMessages.Setup(x => x.Accept(message)).Returns(true); //ACT _sut.Consume(message); //ASSERT _ediDocumentSaver.VerifyAll(); _ediDocumentCreator.VerifyAll(); _businessPartnerResolver.VerifyAll(); }
public void Setup() { Lines = new List <ShippedLine>(); Lines.Add(new ShippedLine() { LineNumber = "line1" }); Lines.Add(new ShippedLine() { LineNumber = "line2" }); Lines.Add(new ShippedLine() { LineNumber = "line3" }); DefaultOrderHasBeenShippedMessage = new OrderHasBeenShippedMessage() { BOL = BOL, ControlNumber = ControlNumber, Lines = Lines }; var mock = new Mock <IMessagePublisher>(); mock.Setup(bus => bus.Publish(It.Is <EdiAsnSentMessage>(msg => AssertEdiAsnSentMessageValues(msg)))); _sut = new PublishEdiAsnSentSpecification(mock.Object); }
public void can_consume_shipped_order_message() { //ARRANGE var message = new OrderHasBeenShippedMessage(); message.Add(new ShippedLine()); var ediContentCreator = new Mock <ICreateEdiContentFrom <OrderHasBeenShippedMessage> >(); _businessPartnerResolver.Setup(x => x.ResolveFrom(message)).Returns(ediContentCreator.Object); var document = new EDIXmlInterchangeControl(_seg); var package = new EDITransmissionPackage(document, BusinessPartner.FedEx); _ediDocumentCreator.Setup(x => x.CreateDocumentWith(ediContentCreator.Object, message)) .Returns(package); _ediDocumentSaver.Setup(x => x.Save(It.IsAny <EDITransmissionPackage>())); _acceptMessages.Setup(x => x.Accept(message)).Returns(true); //ACT _sut.Consume(message); //ASSERT _executePostConsumeAction.Verify(x => x.Execute(message)); _ediDocumentSaver.VerifyAll(); _ediDocumentCreator.VerifyAll(); _businessPartnerResolver.VerifyAll(); }
public void can_consume_shipped_order_message() { //ARRANGE var message = new OrderHasBeenShippedMessage(); message.Add(new ShippedLine()); var ediContentCreator = new Mock <ICreateEdiContentFrom <OrderHasBeenShippedMessage> >(); var buildValues = new EdiXmlBuildValues { ElementDelimiter = "~", SegmentDelimiter = "\n" }; // ediContentCreator.Setup(c => c.ReceiverId).Returns("xxxi"); // ediContentCreator.Setup(c => c.ControlNumber).Returns(62); // ediContentCreator.Setup(c => c.EdiXmlBuildValues).Returns(buildValues); // ediContentCreator.Setup(c => c.FunctionalId).Returns("PO"); _resolver.Setup(r => r.GetBuildValueFactoryFor(BusinessPartner.Initech)).Returns(new InitechBuildValueFactory()); _businessPartnerResolver.Setup(x => x.ResolveFrom(message)).Returns(ediContentCreator.Object); var document = new EDIXmlInterchangeControl(_seg); _ediDocumentCreator.Setup(x => x.CreateDocumentWith(ediContentCreator.Object, message)) .Returns(new EDITransmissionPackage(document, BusinessPartner.Initech)); _ediDocumentSaver.Setup(x => x.Save(It.IsAny <EDITransmissionPackage>())); _acceptMessages.Setup(x => x.Accept(message)).Returns(true); //ACT _sut.Consume(message); //ASSERT _ediDocumentSaver.VerifyAll(); _ediDocumentCreator.VerifyAll(); _businessPartnerResolver.VerifyAll(); }
public void can_resolve_correct_business_partner_document_creator() { var msg = new OrderHasBeenShippedMessage { BusinessPartnerCode = BusinessPartner.Initech.Code, BusinessPartnerNumber = BusinessPartner.Initech.Number }; ICreateEdiContentFrom<OrderHasBeenShippedMessage> creator = _sut.ResolveFrom(msg); Assert.That(creator, Is.TypeOf(typeof (Initech856Creator)), "Type is actually " + creator.GetType()); }
private static OrderHasBeenShippedMessage CreateInitechOrderHasBeenShippedMessageWithThreeLines() { var order = new OrderHasBeenShippedMessage { BOL = "00999998", CustomerPO = "AFC000001", BusinessPartnerCode = BusinessPartner.Initech.Code, BusinessPartnerNumber = BusinessPartner.Initech.Number, ControlNumber = "50001" }; order.Add(new ShippedLine { CustomerPartNo = "910021", DateShipped = SystemTime.Now(), ItemID = "910021", LineNumber = "1", QtyOrdered = 1, QtyShipped = 1, UOM = "EA" }); order.Add(new ShippedLine { CustomerPartNo = "910022", DateShipped = SystemTime.Now(), ItemID = "910022", LineNumber = "2", QtyOrdered = 2, QtyShipped = 2, UOM = "EA" }); order.AddAddress(new Address { AddressType = AddressTypeConstants.ShipFrom, Address1 = "2343 Grimes", City = "Austin", State = "TX", Zip = "78987", AddressName = "Austin Foam Plastics" }); order.AddAddress(new Address { AddressType = AddressTypeConstants.ShipTo, Address1 = " 590 BROADWAY", City = "MENANDS", State = "NY", Zip = "12204", AddressName = "FEDERAL EXPRESS" }); order.Lines.Where(l => l.LineNumber == "1").First().TrackingNumbers.Add("99999994"); order.Lines.Where(l => l.LineNumber == "2").First().TrackingNumbers.Add("99999995"); order.Lines.Where(l => l.LineNumber == "2").First().TrackingNumbers.Add("99999996"); return(order); }
public void can_create_856() { OrderHasBeenShippedMessage order = GetOrder(); EDIXmlTransactionSet ediStr = _sut.BuildFromMessage(order); Assert.That(ediStr.Value, Text.Contains("~")); Assert.That(ediStr.Value, Text.Contains("\n")); Console.WriteLine(ediStr.Value); }
private static OrderHasBeenShippedMessage CreateInitechOrderHasBeenShippedMessageWithThreeLines() { var order = new OrderHasBeenShippedMessage { BOL = "00999998", CustomerPO = "AFC000001", BusinessPartnerCode = BusinessPartner.Initech.Code, BusinessPartnerNumber = BusinessPartner.Initech.Number, ControlNumber = "50001" }; order.Add(new ShippedLine { CustomerPartNo = "910021", DateShipped = SystemTime.Now(), ItemID = "910021", LineNumber = "1", QtyOrdered = 1, QtyShipped = 1, UOM = "EA" }); order.Add(new ShippedLine { CustomerPartNo = "910022", DateShipped = SystemTime.Now(), ItemID = "910022", LineNumber = "2", QtyOrdered = 2, QtyShipped = 2, UOM = "EA" }); order.AddAddress(new Address { AddressType = AddressTypeConstants.ShipFrom, Address1 = "2343 Grimes", City = "Austin", State = "TX", Zip = "78987", AddressName = "Austin Foam Plastics" }); order.AddAddress(new Address { AddressType = AddressTypeConstants.ShipTo, Address1 = " 590 BROADWAY", City = "MENANDS", State = "NY", Zip = "12204", AddressName = "FEDERAL EXPRESS" }); order.Lines.Where(l => l.LineNumber == "1").First().TrackingNumbers.Add("99999994"); order.Lines.Where(l => l.LineNumber == "2").First().TrackingNumbers.Add("99999995"); order.Lines.Where(l => l.LineNumber == "2").First().TrackingNumbers.Add("99999996"); return order; }
public void can_resolve_correct_business_partner_document_creator() { var msg = new OrderHasBeenShippedMessage { BusinessPartnerCode = BusinessPartner.Initech.Code, BusinessPartnerNumber = BusinessPartner.Initech.Number }; ICreateEdiContentFrom <OrderHasBeenShippedMessage> creator = _sut.ResolveFrom(msg); Assert.That(creator, Is.TypeOf(typeof(Initech856Creator)), "Type is actually " + creator.GetType()); }
private OrderHasBeenShippedMessage GetOrder() { var order = new OrderHasBeenShippedMessage { BOL = "0005456", CustomerPO = "SRC009670", BusinessPartnerCode = BusinessPartner.MicroCenter.Code, BusinessPartnerNumber = BusinessPartner.MicroCenter.Number, ControlNumber = "60001" }; order.Add(new ShippedLine { CustomerPartNo = "900104", DateShipped = SystemTime.Now(), ItemID = "FIN23430I044", LineNumber = "1", QtyOrdered = 3, QtyShipped = 3, UOM = "EA" }); order.AddAddress(new Address { AddressType = AddressTypeConstants.ShipFrom, Address1 = "2343 Grimes", City = "Austin", State = "TX", Zip = "78987", AddressName = "Austin Foam Plastics" }); order.AddAddress(new Address { AddressType = AddressTypeConstants.ShipTo, Address1 = "90 FEDEX PARKWAY", City = "COLLIERVILLE", State = "TN", Zip = "38017", AddressName = "FEDEX SUSIE CARNEY" }); order.Lines.First().TrackingNumbers.Add("33532343"); order.Lines.First().TrackingNumbers.Add("33577773"); order.Lines.First().TrackingNumbers.Add("33577776"); return(order); }
public void Setup() { Lines = new List<ShippedLine>(); Lines.Add(new ShippedLine(){LineNumber = "line1"}); Lines.Add(new ShippedLine(){LineNumber = "line2"}); Lines.Add(new ShippedLine(){LineNumber = "line3"}); DefaultOrderHasBeenShippedMessage = new OrderHasBeenShippedMessage() { BOL = BOL, ControlNumber = ControlNumber, Lines = Lines }; var mock = new Mock<IMessagePublisher>(); mock.Setup(bus => bus.Publish(It.Is<EdiAsnSentMessage>(msg => AssertEdiAsnSentMessageValues(msg)))); _sut = new PublishEdiAsnSentSpecification(mock.Object); }
public void can_notify_failure_of_CreateOrderMessage() { var message = new OrderHasBeenShippedMessage {BusinessPartnerCode = "WWT"}; message.Add(new ShippedLine()); var exception = new Exception("Test Exception"); var fault = new Fault<OrderHasBeenShippedMessage>(message, exception); _sut.NotifyFailureOf(fault); _notificationSender.Verify(x => x.SendNotification( It.IsAny<string>(), It.Is<IList<EmailAddress>>( a => a[0].Address == EmailAddressConstants.InformationtechnologygroupEmailAddress && a[1].Address == EmailAddressConstants.LogisticsEmailAddress), It.Is<string>(body => body.Contains(message.ToString()) && body.Contains(exception.ToString())))); }
public void can_create_856() { //Arrange OrderHasBeenShippedMessage order = GetOrder(); //Act _sut = _resolver.ResolveFrom(order); EDIXmlTransactionSet ediStr = _sut.BuildFromMessage(order); var arr = ediStr.Value.Split("\n".ToCharArray()); //Assert arr[1].Substring(0, 17).ShouldEqual("BSN~00~0005456~20"); Assert.That(ediStr.Value, Text.Contains("~")); Assert.That(ediStr.Value, Text.Contains("\n")); Console.WriteLine(ediStr.Value); }
public void can_notify_failure_of_CreateOrderMessage() { var message = new OrderHasBeenShippedMessage { BusinessPartnerCode = "WWT" }; message.Add(new ShippedLine()); var exception = new Exception("Test Exception"); var fault = new Fault <OrderHasBeenShippedMessage>(message, exception); _sut.NotifyFailureOf(fault); _notificationSender.Verify(x => x.SendNotification( It.IsAny <string>(), It.Is <IList <EmailAddress> >( a => a[0].Address == EmailAddressConstants.InformationtechnologygroupEmailAddress && a[1].Address == EmailAddressConstants.LogisticsEmailAddress), It.Is <string>(body => body.Contains(message.ToString()) && body.Contains(exception.ToString())))); }
public void can_consume_shipped_order_message() { //ARRANGE var message = new OrderHasBeenShippedMessage(); message.Add(new ShippedLine()); var ediContentCreator = new Mock<ICreateEdiContentFrom<OrderHasBeenShippedMessage>>(); _businessPartnerResolver.Setup(x => x.ResolveFrom(message)).Returns(ediContentCreator.Object); var document = new EDIXmlInterchangeControl(_seg); var package = new EDITransmissionPackage(document, BusinessPartner.Initech); _ediDocumentCreator.Setup(x => x.CreateDocumentWith(ediContentCreator.Object, message)) .Returns(package); _ediDocumentSaver.Setup(x => x.Save(It.IsAny<EDITransmissionPackage>())); _acceptMessages.Setup(x => x.Accept(message)).Returns(true); //ACT _sut.Consume(message); //ASSERT _executePostConsumeAction.Verify(x => x.Execute(message)); _ediDocumentSaver.VerifyAll(); _ediDocumentCreator.VerifyAll(); _businessPartnerResolver.VerifyAll(); }
private void publish(OrderHasBeenShippedMessage message) { Bus.Instance().Publish(message); }
private static OrderHasBeenShippedMessage CreateInitechOrderHasBeenShippedMessageWithTwoLines() { var order = new OrderHasBeenShippedMessage { BOL = "0005456", CustomerPO = "SRC009670", BusinessPartnerCode = BusinessPartner.Initech.Code, BusinessPartnerNumber = BusinessPartner.Initech.Number, ControlNumber = "60001" }; order.Add(new ShippedLine { CustomerPartNo = "900104", DateShipped = SystemTime.Now(), ItemID = "FIN23430I044", LineNumber = "1", QtyOrdered = 3, QtyShipped = 3, UOM = "EA" }); order.AddAddress(new Address { AddressType = AddressTypeConstants.ShipFrom, Address1 = "2343 Grimes", City = "Austin", State = "TX", Zip = "78987", AddressName = "Austin Foam Plastics" }); order.AddAddress(new Address { AddressType = AddressTypeConstants.ShipTo, Address1 = "90 Initech PARKWAY", City = "COLLIERVILLE", State = "TN", Zip = "38017", AddressName = "Initech SUSIE CARNEY" }); order.Lines.First().TrackingNumbers.Add("33532343"); order.Lines.First().TrackingNumbers.Add("33577773"); return order; }
private void publish(OrderHasBeenShippedMessage message) { Bus.Instance().Publish(message); }
public void will_throw_exception_if_no_lines() { var order = new OrderHasBeenShippedMessage(); _sut.BuildFromMessage(order); }
public void will_throw_exception_if_no_lines() { var order = new OrderHasBeenShippedMessage(); _sut.BuildFromMessage(order); }