public void QuoteeIsCreatedWithDefaultValues()
        {
            var quote = new ItemQuote();

            Assert.IsTrue(quote.IsTaxInclusive);
            Assert.AreEqual(DocumentAction.Print, quote.DeliveryStatus);
        }
Ejemplo n.º 2
0
    static void Main(string[] args)
    {
        if (args.Length != 2) // Test for correct # of args
          throw new ArgumentException("Parameters: <Destination> <Port>");

        String server = args[0];             // Destination address
        int servPort = Int32.Parse(args[1]); // Destination port

        // Create socket that is connected to server on specified port
        TcpClient client = new TcpClient(server, servPort);
        NetworkStream netStream = client.GetStream();

        ItemQuote quote = new ItemQuote(1234567890987654L, "5mm Super Widgets",
                                    1000, 12999, true, false);

        // Send text-encoded quote
        ItemQuoteEncoderText coder = new ItemQuoteEncoderText();
        byte[] codedQuote = coder.encode(quote);
        Console.WriteLine("Sending Text-Encoded Quote (" +
                      codedQuote.Length + " bytes): ");
        Console.WriteLine(quote);

        netStream.Write(codedQuote, 0, codedQuote.Length);

        // Receive binary-encoded quote
        ItemQuoteDecoder decoder = new ItemQuoteDecoderBin();
        ItemQuote receivedQuote = decoder.decode(client.GetStream());
        Console.WriteLine("Received Binary-Encode Quote:");
        Console.WriteLine(receivedQuote);

        netStream.Close();
        client.Close();
    }
Ejemplo n.º 3
0
    public byte[] encode(ItemQuote item)
    {
        MemoryStream mem = new MemoryStream();
        BinaryWriter output = new BinaryWriter(new BufferedStream(mem));

        output.Write(IPAddress.HostToNetworkOrder(item.itemNumber));
        output.Write(IPAddress.HostToNetworkOrder(item.quantity));
        output.Write(IPAddress.HostToNetworkOrder(item.unitPrice));

        byte flags = 0;
        if (item.discounted)
          flags |= ItemQuoteBinConst.DISCOUNT_FLAG;
        if (item.inStock)
          flags |= ItemQuoteBinConst.IN_STOCK_FLAG;
        output.Write(flags);

        byte[] encodedDesc = encoding.GetBytes(item.itemDescription);
        if (encodedDesc.Length > ItemQuoteBinConst.MAX_DESC_LEN)
          throw new IOException("Item Description exceeds encoded length limit");
        output.Write((byte)encodedDesc.Length);
        output.Write(encodedDesc);

        output.Flush();

        return mem.ToArray();
    }
Ejemplo n.º 4
0
    public byte[] encode(ItemQuote item)
    {
        String EncodedString = item.itemNumber + " ";
        if (item.itemDescription.IndexOf('\n') != -1)
          throw new IOException("Invalid description (contains newline)");
        EncodedString = EncodedString + item.itemDescription + "\n";
        EncodedString = EncodedString + item.quantity + " ";
        EncodedString = EncodedString + item.unitPrice + " ";

        if (item.discounted)
          EncodedString = EncodedString + "d"; // Only include 'd' if discounted
        if (item.inStock)
          EncodedString = EncodedString + "s"; // Only include 's' if in stock
        EncodedString = EncodedString + "\n";

        if (EncodedString.Length > ItemQuoteTextConst.MAX_WIRE_LENGTH)
          throw new IOException("Encoded length too long");

        byte[] buf = encoding.GetBytes(EncodedString);

        return buf;
    }