public void DuplicateChargeSlip() { ChargeSlip chargeSlip = new ChargeSlip(); chargeSlip.Number = "123456"; workOrder.Add(chargeSlip); workOrder.Add(chargeSlip); }
public void AddChargeSlip() { ChargeSlip chargeSlip = new ChargeSlip(); chargeSlip.Number = "123456"; workOrder.Add(chargeSlip); Assert.AreEqual(workOrder.ChargeSlipCount, 1, "ChargeSlip not added."); }
public void RetrieveChargeSlip() { ChargeSlip chargeSlip = new ChargeSlip(); chargeSlip.Number = "123456"; workOrder.Add(chargeSlip); ChargeSlip cs2 = workOrder.ChargeSlips[0]; Assert.AreEqual(chargeSlip.Number, cs2.Number, "ChargeSlip numbers do not match."); }
public void Add(ChargeSlip cs) { if (cs.Number=="") { throw(new UnassignedChargeSlipException()); } if (chargeSlips.Contains(cs.Number)) { throw(new DuplicateChargeSlipException()); } chargeSlips.Add(cs.Number, cs); chargeSlipsArray.Add(cs); }
public void Add(ChargeSlip cs) { if (cs.Number == "") { throw(new UnassignedChargeSlipException()); } if (chargeSlips.Contains(cs.Number)) { throw(new DuplicateChargeSlipException()); } chargeSlips.Add(cs.Number, cs); chargeSlipsArray.Add(cs); }
public void SetUp() { chargeSlip = new ChargeSlip(); }
public void ClosePO() { po.Close(); // one charge slip should be added to both work orders Assert.AreEqual(wo1.ChargeSlipCount, 1, "First work order: ChargeSlipCount not 1."); Assert.AreEqual(wo2.ChargeSlipCount, 1, "Second work order: ChargeSlipCount not 1."); ChargeSlip cs1 = wo1.ChargeSlips[0]; ChargeSlip cs2 = wo2.ChargeSlips[0]; // three charges should exist for charge slip #1: two parts and one freight charge Assert.AreEqual(cs1.PartCount + cs1.ChargeCount, 3, "Charge slip 1: doesn't have three charges."); // the freight for CS1 should be 10.50 * (15+20)/(15+20+25) = 6.125 Assert.AreEqual(cs1.Charges[0].Amount, 6.125, "Charge slip 1: charge not the correct amount."); // two charges should exist for charge slip #2: one part and one freight charge Assert.AreEqual(cs2.PartCount + cs2.ChargeCount, 2, "Charge slip 2: doesn't have two charges."); // the freight for CS2 should be 10.50 * 25/(15+20+25) = 4.375 (also = 10.50-6.125) Assert.AreEqual(cs2.Charges[0].Amount, 4.375, "Charge slip 2: charge not the correct amount."); // while we have a unit test that verifies that parts are added to charge slips correctly, // we don't have a unit test to verify that the purchase order Close process does this // correctly. Part cs1p1 = cs1.Parts[0]; Part cs1p2 = cs1.Parts[1]; if (cs1p1.Number == "A") { Assert.AreEqual(cs1p1.VendorCost, 15, "Charge slip 1, vendor cost not correct for part A."); } else if (cs1p1.Number == "B") { Assert.AreEqual(cs1p1.VendorCost, 20, "Charge slip 1, vendor cost not correct for part B."); } else { throw(new IncorrectChargeSlipException()); } Assert.IsTrue(cs1p1.Number != cs1p2.Number, "Charge slip part numbers are not unique."); if (cs1p2.Number == "A") { Assert.AreEqual(cs1p2.VendorCost, 15, "Charge slip 1, vendor cost is not correct for part A."); } else if (cs1p2.Number == "B") { Assert.AreEqual(cs1p2.VendorCost, 20, "Charge slip 1, vendor cost is not correct for part B."); } else { throw(new IncorrectChargeSlipException()); } Assert.AreEqual(cs2.Parts[0].Number, "C", "Charge slip 2, part number is not correct."); Assert.AreEqual(cs2.Parts[0].VendorCost, 25, "Charge slip 2, vendor cost is not correct for part C."); }
public void DuplicateChargeSlip() { ChargeSlip chargeSlip=new ChargeSlip(); chargeSlip.Number="123456"; workOrder.Add(chargeSlip); workOrder.Add(chargeSlip); }
public void UnassignedChargeSlipNumber() { ChargeSlip chargeSlip = new ChargeSlip(); workOrder.Add(chargeSlip); }
public void Add(string csNumber, ChargeSlip cs) { chargeSlips.Add(csNumber, cs); }
public void Add(ChargeSlip cs) { chargeSlips.Add(cs); }
public void Close() { if (invoice == null) { throw(new InvalidInvoiceException()); } // add invoice charges to po charges foreach (Charge c in invoice.Charges) { Add(c); } // Collect all the different work orders the parts go to. // For each work order, create a charge slip Hashtable woList = new Hashtable(); int n = 1; // we always start with charge slip #000001 string nStr = "000000"; double totalPartCost = 0; foreach (DictionaryEntry item in parts) { if (!woList.Contains(item.Value)) { ChargeSlip cs = new ChargeSlip(); string s = n.ToString(); cs.Number = nStr.Substring(0, 6 - s.Length) + s; woList[item.Value] = cs; // add the new charge slip to the work order (item.Value as WorkOrder).Add(cs); } // For each charge slip, add the part to // the charge slip. ChargeSlip cs2 = woList[item.Value] as ChargeSlip; cs2.Add(item.Key as Part); totalPartCost += (item.Key as Part).VendorCost; } // For each work order, get the total parts amount on // its corresponding charge slip. foreach (DictionaryEntry item in woList) { ChargeSlip cs = item.Value as ChargeSlip; double csPartCost = 0; for (int i = 0; i < cs.PartCount; i++) { csPartCost += cs.Parts[i].VendorCost; } // The charge amount added to the charge slip = // csPartCost * chargeAmt / totalPartCost for (int i = 0; i < charges.Count; i++) { Charge charge = new Charge(); charge.Amount = csPartCost * charges[i].Amount / totalPartCost; charge.Description = charges[i].Description; cs.Add(charge); } } }
public void SetUp() { chargeSlip=new ChargeSlip(); }
public void UnassignedChargeSlipNumber() { ChargeSlip chargeSlip=new ChargeSlip(); workOrder.Add(chargeSlip); }
public void RetrieveChargeSlip() { ChargeSlip chargeSlip=new ChargeSlip(); chargeSlip.Number="123456"; workOrder.Add(chargeSlip); ChargeSlip cs2=workOrder.ChargeSlips[0]; Assert.AreEqual(chargeSlip.Number,cs2.Number, "ChargeSlip numbers do not match."); }
public void ClosePO() { WorkOrder wo1 = new WorkOrder(); WorkOrder wo2 = new WorkOrder(); wo1.Number = "000001"; wo2.Number = "000002"; Part p1 = new Part(); Part p2 = new Part(); Part p3 = new Part(); p1.Number = "A"; p1.VendorCost = 15; p2.Number = "B"; p2.VendorCost = 20; p3.Number = "C"; p3.VendorCost = 25; vendor.Add(p1); vendor.Add(p2); vendor.Add(p3); po.Add(p1, wo1); po.Add(p2, wo1); po.Add(p3, wo2); Charge charge = new Charge(); charge.Description = "Freight"; charge.Amount = 10.50; Invoice invoice = new Invoice(); invoice.Number = "1234"; invoice.Vendor = vendor; invoice.Add(charge); po.Invoice = invoice; po.Close(); // one charge slip should be added to both work orders Assert.AreEqual(wo1.ChargeSlipCount, 1, "First work order: ChargeSlipCount not 1."); Assert.AreEqual(wo2.ChargeSlipCount, 1, "Second work order: ChargeSlipCount not 1."); ChargeSlip cs1 = wo1.ChargeSlips[0]; ChargeSlip cs2 = wo2.ChargeSlips[0]; // three charges should exist for charge slip #1: two parts and one freight charge Assert.AreEqual(cs1.PartCount + cs1.ChargeCount, 3, "Charge slip 1: doesn't have three charges."); // the freight for CS1 should be 10.50 * (15+20)/(15+20+25) = 6.125 Assert.AreEqual(cs1.Charges[0].Amount, 6.125, "Charge slip 1: charge not the correct amount."); // two charges should exist for charge slip #2: one part and one freight charge Assert.AreEqual(cs2.PartCount + cs2.ChargeCount, 2, "Charge slip 2: doesn't have two charges."); // the freight for CS2 should be 10.50 * 25/(15+20+25) = 4.375 (also = 10.50-6.125) Assert.AreEqual(cs2.Charges[0].Amount, 4.375, "Charge slip 2: charge not the correct amount."); // while we have a unit test that verifies that parts are added to charge slips correctly, // we don't have a unit test to verify that the purchase order Close process does this // correctly. Part cs1p1 = cs1.Parts[0]; Part cs1p2 = cs1.Parts[1]; if (cs1p1.Number == "A") { Assert.AreEqual(cs1p1.VendorCost, 15, "Charge slip 1, vendor cost not correct for part A."); } else if (cs1p1.Number == "B") { Assert.AreEqual(cs1p1.VendorCost, 20, "Charge slip 1, vendor cost not correct for part B."); } else { throw(new IncorrectChargeSlipException()); } Assert.IsTrue(cs1p1.Number != cs1p2.Number, "Charge slip part numbers are not unique."); if (cs1p2.Number == "A") { Assert.AreEqual(cs1p2.VendorCost, 15, "Charge slip 1, vendor cost is not correct for part A."); } else if (cs1p2.Number == "B") { Assert.AreEqual(cs1p2.VendorCost, 20, "Charge slip 1, vendor cost is not correct for part B."); } else { throw(new IncorrectChargeSlipException()); } Assert.AreEqual(cs2.Parts[0].Number, "C", "Charge slip 2, part number is not correct."); Assert.AreEqual(cs2.Parts[0].VendorCost, 25, "Charge slip 2, vendor cost is not correct for part C."); }
public void AddChargeSlip() { ChargeSlip chargeSlip=new ChargeSlip(); chargeSlip.Number="123456"; workOrder.Add(chargeSlip); Assert.AreEqual(workOrder.ChargeSlipCount,1, "ChargeSlip not added."); }