/// <summary>
        /// Creates a concrete Receipt based upon requested type
        /// </summary>
        /// <param name="type">The type of the Receipt to create</param>
        /// <returns>The concrete Receipt</returns>
        public static IReceipt CreateReceipt(Receipt type)
        {
            IReceipt receipt;
            switch (type)
            {
                case Receipt.Text:
                    receipt = new TextReceipt();
                    break;

                case Receipt.Html:
                    receipt = new HtmlReceipt();
                    break;

                default:
                    receipt = null;
                    break;
            }
            return receipt;
        }
        /// <summary>
        /// Creates a concrete Receipt based upon requested type
        /// </summary>
        /// <param name="type">The type of the Receipt to create</param>
        /// <returns>The concrete Receipt</returns>
        public static IReceipt CreateReceipt(Receipt type)
        {
            IReceipt receipt;

            switch (type)
            {
            case Receipt.Text:
                receipt = new TextReceipt();
                break;

            case Receipt.Html:
                receipt = new HtmlReceipt();
                break;

            default:
                receipt = null;
                break;
            }
            return(receipt);
        }
        public void ReceiptOneElite()
        {
            var company = "Anywhere Bike Shop";
            var order = new Order(company);
            var quantity = 1;
            var testLine = new Line(Elite, quantity);
            order.AddLine(testLine);

            var checkReceiptAgainst =
                new TextReceipt(new ReceiptData(company,
                                                    "$2,000.00",
                                                    new TupleList<Line, string> {
                                                        {
                                                            testLine,
                                                            "$2,000.00"
                                                        }
                                                    },
                                                    "$145.00",
                                                    "$2,145.00")).TransformText();

            Assert.AreEqual(checkReceiptAgainst, order.Receipt(Order.Format.Text));
        }