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);
 }
Пример #12
0
 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;
 }
Пример #13
0
 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);
        }
Пример #15
0
 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);
 }
Пример #18
0
        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);
        }