public void can_extract_item_ids() { var segmentList = new List<Segment> { new Segment {Contents = "ST*850*0001", Label = SegmentLabel.DocumentLabel}, new Segment {Contents = "BEG*00*SA*4110076497**20071031*CUR*BY*USD", Label = "BEG".GetSegmentLabel()}, new Segment { Contents = "PO1*1*500*EA*6.75**IN*CAD33*VN*FINCAD33*PD*BIG BOX*TP*S", Label = "PO1".GetSegmentLabel() }, new Segment { Contents = "REF~CO~249040291943406", Label = "REF".GetSegmentLabel() }, new Segment { Contents = "REF~BF~249040", Label = "REF".GetSegmentLabel() }, new Segment{Contents = "CTT~4", Label = SegmentLabel.SummaryLabel }, new Segment {Contents = "SE*7*0001", Label = SegmentLabel.DocumentClose} }; var order = new OrderRequestReceivedMessage(); _sut.ProcessLines(segmentList, order); }
public void can_extract_addresses() { ObjectFactory.Initialize(x => { x.For<IAddressParser>().Use<AddressParser>(); }); _aparse = ObjectFactory.GetInstance<IAddressParser>(); var order = new OrderRequestReceivedMessage { Customer = new Customer { CustomerIDs = new CustomerAliases() { LegacyCustomerID = "Fedex" }, CustomerName = "Fedex" } }; var lst = new List<Segment> { new Segment {Contents = "N1*ST*EPS LOADING DOCK*92*SUSA", Label = "N1".GetSegmentLabel()}, new Segment {Contents = "N3*12825 FLUSHING MEADOWS DR FL 2*STE 280", Label = "N3".GetSegmentLabel()}, new Segment {Contents = "N3*Third Floor*", Label = "N3".GetSegmentLabel()}, new Segment {Contents = "N3*Next to the bank*", Label = "N3".GetSegmentLabel()}, new Segment {Contents = "N4*SAINT LOUIS*MO*638592*US", Label = "N4".GetSegmentLabel()}, new Segment {Contents = "N1*BT*EPS SETTLEMENTS GROUP*92*SUSA", Label = "N1".GetSegmentLabel()}, new Segment {Contents = "N3*12825 FLUSHING MEADOWS DR FL 2*STE 280", Label = "N3".GetSegmentLabel()}, new Segment {Contents = "N3*Third Floor*", Label = "N3".GetSegmentLabel()}, new Segment {Contents = "N3*Next to the bank*", Label = "N3".GetSegmentLabel()}, new Segment {Contents = "N4*SAINT LOUIS*MO*638592*US", Label = "N4".GetSegmentLabel()}, new Segment {Contents = "SE*16*0001~", Label = SegmentLabel.DocumentClose} }; _aparse.ProcessAddresses(lst, order); Assert.That(order.ShipToAddress.AddressName == "EPS LOADING DOCK"); Assert.That(order.Customer.BillToAddress.AddressName == "EPS SETTLEMENTS GROUP"); }
public void can_add_address() { _sut = new OrderRequestReceivedMessage { Customer = new Customer { CustomerIDs = new CustomerAliases() { LegacyCustomerID = "BLORG" } } }; _sut.AddAddress(new Address { AddressType = AddressTypeConstants.ShipTo, AddressName = "Yop" }); Address shipTo = _sut.ShipToAddress; Assert.That(shipTo.AddressName == "Yop"); }
public void can_get_customer_id() { _sut = new OrderRequestReceivedMessage(); string custid = _sut.CustomerIDs.LegacyCustomerID; Assert.That(custid == null); _sut.Customer = new Customer { CustomerIDs = new CustomerAliases() { LegacyCustomerID = "WALL01" }, CustomerName = "WALL-E" }; Assert.That(_sut.CustomerIDs.LegacyCustomerID == "WALL01"); }
public void can_notify_failure_of_CreateOrderMessage() { var message = new OrderRequestReceivedMessage {BusinessPartnerCode = "WWT"}; var exception = new Exception("Test Exception"); var fault = new Fault<OrderRequestReceivedMessage>(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_add_line() { _sut = new OrderRequestReceivedMessage(); _sut.Add(new CustomerOrderLine { CustomerPartNumber = "A0897-A00", Notes = "Hello", RequestedQuantity = 15, RequestedPrice = 5.66m, LineNumber = 1 }); _sut.Add(new CustomerOrderLine { CustomerPartNumber = "B0897-A00", Notes = "Hello", RequestedQuantity = 15, RequestedPrice = 5.96m, LineNumber = 2 }); Assert.That(_sut.LineCount == 2); Assert.That(_sut.LineCount == _sut.LineItems.Count); }
private int process_summary(IEnumerable<Segment> segList, OrderRequestReceivedMessage orderRequestReceived) { Segment tempSeg = segList.FindSegmentByLabel(SegmentLabel.SummaryLabel); Console.WriteLine("Number of lines: " + orderRequestReceived.LineCount); if (tempSeg == null) return 0; if (orderRequestReceived.LineCount != tempSeg.GetElements(_genericParser.ElementDelimiter)[1].CastToInt()) throw new Invalid850Exception("Line item count does not match number of lines"); return 1; }
private int process_admin_contact(ICollection<Segment> segList, OrderRequestReceivedMessage msg) { Segment tempSeg = segList.FindSegmentByLabel(SegmentLabel.ContactLabel); if (tempSeg == null) return 0; var els = tempSeg.GetElements(ElementDelimiter); if(els.Count() > 4) msg.PhoneNumber = els[4]; _contactName = els[2]; segList.Remove(tempSeg); return 1; }
// private void process_inner_ref(Segment rf, CustomerOrderLine line) // { // var arr = rf.GetElements(ElementDelimiter); // } private void load_beginning_segment(Segment segment, OrderRequestReceivedMessage orderRequestReceived) { var arr = segment.GetElements(ElementDelimiter); if (arr[0] != SegmentLabel.POBegin.Text) throw new Invalid850Exception("BEG Segment is missing!"); orderRequestReceived.CustomerPO = arr[3]; orderRequestReceived.RequestDate = DateTime.Now.ToString(); }
public void can_process_lines() { var segmentList = new List<Segment> { new Segment {Contents = "ST*850*0001", Label = SegmentLabel.DocumentLabel}, new Segment {Contents = "BEG*00*SA*4110076497**20071031*CUR*BY*USD", Label = "BEG".GetSegmentLabel()}, new Segment { Contents = "PO1*1*500*EA*6.75**IN*CAD33*VN*FINCAD33*PD*BIG BOX*TP*S", Label = "PO1".GetSegmentLabel() }, new Segment { Contents = "PO1*2*110*EA*4.75**IN*CAD34-A*VN*FINCAD34-A*PD*LITTLE BOX*TP*S", Label = "PO1".GetSegmentLabel() }, new Segment { Contents = "REF~CO~249040291943406", Label = "REF".GetSegmentLabel() }, new Segment { Contents = "REF~BF~249040", Label = "REF".GetSegmentLabel() }, new Segment { Contents = "REF~P4~9002087", Label = "REF".GetSegmentLabel() }, new Segment { Contents = "PO1*3*15*EA*1.75**IN*SCAD33*VN*FINSCAD33*PD*FOAM THINGY*TP*S", Label = "PO1".GetSegmentLabel() }, new Segment{Contents = "CTT~4", Label = SegmentLabel.SummaryLabel }, new Segment {Contents = "SE*5*0001", Label = SegmentLabel.DocumentClose} }; var order = new OrderRequestReceivedMessage(); var docLines = _sut.ProcessLines(segmentList, order); Assert.That(order.LineCount == 3); Assert.That(docLines.Count == 3); }
public void can_process_footer() { var doc = new OrderRequestReceivedMessage {ControlNumber = "553230001"}; var segs = new List<Segment> {new Segment {Contents = "SE*1*553230001", Label = "SE".GetSegmentLabel()}}; EDIUtilities.ProcessFooter(segs, doc, "*", 1); }
private OrderRequestReceivedMessage GetOrder() { var order = new OrderRequestReceivedMessage { ControlNumber = "0005456", CustomerPO = "C04134707", RequestDate = "20090318", BusinessPartnerCode = BusinessPartner.Initech.Code, BusinessPartnerNumber = BusinessPartner.Initech.Number, BusinessProcessName = "Initech Purchase Order Processing", Customer = new Customer { CustomerIDs = new CustomerAliases() { LegacyCustomerID = BusinessPartner.Initech.Code }, CustomerName = "Initech" } }; order.AddAddress(new Address { Address1 = "1900 Mockingbird Ln", AddressType = AddressTypeConstants.ShipTo, AddressCode = new AddressCode { CustomerCode = "AEGW" } , AddressName = "Billy Bob", City = "Hackensack", State = "New Jersey", Zip = "01234" }); order.Add(new CustomerOrderLine { CustomerPartNumber = "146525", ItemId = "FIN23430I0", LineNumber = 1, RequestedQuantity = 4, RequestedPrice = 1, ItemDescription = "" }); order.Add(new CustomerOrderLine { CustomerPartNumber = "CAD33", ItemId = "FIN23430I044", LineNumber = 2, RequestedQuantity = 4, RequestedPrice = 1, ItemDescription = "" }); return order; }
public void will_throw_exception_if_no_lines() { var order = new OrderRequestReceivedMessage(); _sut.BuildFromMessage(order); }
public void publish_CreateOrderMessage() { var messaage = new OrderRequestReceivedMessage { BusinessPartnerCode = BusinessPartner.Initech.Code, BusinessPartnerNumber = BusinessPartner.Initech.Number, ControlNumber = "1", CustomerPO = "PO-100", Customer = new Customer {CustomerIDs = new CustomerAliases(){LegacyCustomerID = "100"}, CustomerName = "test co."}, BusinessProcessName = "business process name", RequestDate = SystemTime.Now().ToString() }; messaage.AddAddress(new Address { Address1 = "test addr1", Address2 = "addr2", AddressCode = new AddressCode(){CustomerCode = "TEST" }, AddressName = "office", AddressType = AddressTypeConstants.ShipTo, City = "austin", State = "TX", Zip = "88888" }); messaage.Add(new CustomerOrderLine { CustomerIDs = new CustomerAliases() { LegacyCustomerID = "100" }, CustomerPartNumber = "222", CustomerPO = "333", ItemDescription = "desc", ItemId = "444", LineNumber = 1, Notes = "note", OrderMultiple = 1, OrderNumber = "555", RequestedPrice = 6.0m, RequestedQuantity = 2, RequestNumber = "1", TestMode = true }); messaage.LineItems.Add(new CustomerOrderLine { CustomerIDs = new CustomerAliases() { LegacyCustomerID = "100" }, CustomerPartNumber = "222b", CustomerPO = "333b", ItemDescription = "descb", ItemId = "444b", LineNumber = 2, Notes = "noteb", OrderMultiple = 2, OrderNumber = "555b", RequestedPrice = 7.0m, RequestedQuantity = 3, RequestNumber = "1b", TestMode = true }); Thread.Sleep(4000); Bus.Instance().Publish(messaage); }
public void will_throw_exception_if_no_lines() { var order = new OrderRequestReceivedMessage(){BusinessPartnerCode = BusinessPartner.Initech.Code,BusinessPartnerNumber = BusinessPartner .Initech .Number}; _sut = _resolver.ResolveFrom(order); _sut.BuildFromMessage(order); }
public void SetUp() { _sut = CreateSUT(); }
private void publish(OrderRequestReceivedMessage message) { Bus.Instance().Publish(message); }
private static OrderRequestReceivedMessage GetOrder() { var order = new OrderRequestReceivedMessage { CustomerPO = "SRC009680", BusinessPartnerCode = BusinessPartner.Initech.Code, BusinessPartnerNumber = BusinessPartner.Initech.Number, ControlNumber = "110001", DocumentId = EdiDocumentTypes.PurchaseOrder.DocumentNumber, GeographicLocation = "Tennessee", SpecificLocationNumber = "4", PhoneNumber = "901-263-6584", RequestDate = "7/14/2009 12:00:00 AM", CustomerBankDescription = "Initech", Customer = new Customer { CustomerIDs = new CustomerAliases() { LegacyCustomerID = "FEDE021" }, CustomerName = "Initech", Terms = new TermsOfSale { DiscountDays = 0, DiscountPercent = 0, NetDays = 30 } } }; order.AddAddress(new Address { AddressType = AddressTypeConstants.ShipTo, AddressName = "Initech SUSIE CARNEY", Address1 = "90 Initech PARKWAY", City = "Collierville", State = "TN", Zip = "38017", Country = "US" }); order.Add(new CustomerOrderLine { CustomerPartNumber = "900104", ItemDescription = "That thing", RequestedPrice = 1.55m, RequestedQuantity = 260, LineNumber = 1 }); order.Add(new CustomerOrderLine { CustomerPartNumber = "AAGES7", ItemDescription = "BOX, MONITOR FLAT PANEL 17\"", OrderMultiple = 0, RequestedPrice = 1, RequestedQuantity = 1, LineNumber = 1, TestMode = false, }); return order; }
public void TEST_NAME() { var messaage = new OrderRequestReceivedMessage { BusinessPartnerCode = BusinessPartner.Initech.Code, BusinessPartnerNumber = BusinessPartner.Initech.Number, ControlNumber = "1", CustomerPO = "PO-100", Customer = new Customer { CustomerIDs = new CustomerAliases() { LegacyCustomerID = "100" }, CustomerName = "test co." }, BusinessProcessName = "business process name", RequestDate = SystemTime.Now().ToString(), }; messaage.Add(new CustomerOrderLine { CustomerIDs = new CustomerAliases() { LegacyCustomerID = "100" }, CustomerPartNumber = "200", CustomerPO = "90909", ItemDescription = "description", TestMode = true }); messaage.Add(new CustomerOrderLine { CustomerIDs = new CustomerAliases() { LegacyCustomerID = "200" }, CustomerPartNumber = "300", CustomerPO = "40909", ItemDescription = "description2", TestMode = true }); messaage.ShipToAddress = new Address { Address1 = "addr1", Address2 = "addr2", AddressCode = new AddressCode{CustomerCode = "ship to"}, AddressName = "Ship To", AddressType = "ST", City = "city", Country = "USA", State = "State", Zip = "ddd" } ; Console.WriteLine(messaage); }