public void QuoteeIsCreatedWithDefaultValues() { var quote = new ItemQuote(); Assert.IsTrue(quote.IsTaxInclusive); Assert.AreEqual(DocumentAction.Print, quote.DeliveryStatus); }
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(); }
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(); }
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; }