public void TestAllEmail()
        {
            foreach (string fpath in Directory.GetFiles("OrderRequests", "*.txt"))
            {
                MailMessage msg = new MailMessage
                {
                    Subject = "Order Request",
                    Body    = File.ReadAllText(fpath)
                };
                Console.WriteLine(fpath);
                OrderRequest notice = OrderRequest.FromEmail(msg);
                Assert.IsFalse(string.IsNullOrEmpty(notice.Company));
                Assert.IsFalse(string.IsNullOrEmpty(notice.PlacedBy));
                Assert.IsFalse(string.IsNullOrEmpty(notice.Shipper));
                Assert.IsTrue(notice.Freight > 0);
                Assert.IsNotNull(notice.OrderDetails);
                Assert.IsTrue(notice.OrderDetails.Count >= 1);

                OrderRequestDetails details = notice.OrderDetails.Last();
                Assert.IsTrue(details.Quantity > 0);
                Assert.IsFalse(string.IsNullOrEmpty(details.Product));
                Assert.IsFalse(string.IsNullOrEmpty(details.ProductID));
                Assert.IsTrue(details.Discount >= 0);

                //Can't be null: Company, PlacedBy, Shipper, Product, ProductID
                //Is true: Shipping = Default
                //Greater than "0" = Freight, Quantity
                //Greater than or Equal to "0" = Discount
                //OrderDetails: Product, ProductID, Quantity, Discount
            }
        }
        public void FromEmail()
        {
            string      emailBody = File.ReadAllText("OrderRequests\\Order Request-Princesa Isabel Vinhos.txt");
            MailMessage email     = new MailMessage
            {
                Subject = "Order Request",
                Body    = emailBody
            };
            //Company, PlacedBy, OrderDate, RequiredDate, Shipper, Freight, Shipping
            OrderRequest notice = OrderRequest.FromEmail(email);

            Assert.AreEqual("Princesa Isabel Vinhos (PRINI)", notice.Company);
            Assert.AreEqual("Andrew Fuller (2)", notice.PlacedBy);
            Assert.AreEqual(12 - 04 - 2018, notice.OrderDate);
            Assert.AreEqual(12 - 11 - 2018, notice.RequiredDate);
            Assert.AreEqual("United Package (2)", notice.Shipper);
            Assert.AreEqual(179.72M, notice.Freight);
            Assert.AreEqual("default", notice.Shipping);


            //Prdouct, ProductID, Quantity, Discount
            OrderRequestDetails detail = notice.OrderDetails.Last();

            Assert.AreEqual("Teatime Chocolate Biscuits", detail.Product);
            Assert.AreEqual("(19)", detail.ProductID);
            Assert.AreEqual(5M, detail.Quantity);
            Assert.AreEqual(0M, detail.Discount);
        }