public void LockPurchaseOrderDetailTest() { var testUser = GetTestUser(); var testCompany = GetTestCompany(testUser, true); // Create a record var poh = GetTestPurchaseOrderHeader(testCompany, testUser, 1); // Get the first detail record var detailList = PurchasingService.FindPurchaseOrderDetailListModel(poh); var detail = detailList.Items.First(); // Get the current Lock string lockGuid = PurchasingService.LockPurchaseOrderDetail(detail); Assert.IsTrue(!string.IsNullOrEmpty(lockGuid), "Error: Lock record was not found"); // Simulate another user updating the record var otherUser = GetTestUser(); var error = PurchasingService.InsertOrUpdatePurchaseOrderDetail(detail, otherUser, lockGuid); Assert.IsTrue(!error.IsError, error.Message); // Now get the first user to update the record error = PurchasingService.InsertOrUpdatePurchaseOrderDetail(detail, testUser, lockGuid); Assert.IsTrue(error.IsError, "Error: The lock should have caused an error as it has changed"); // Try to update with the new lock lockGuid = PurchasingService.LockPurchaseOrderDetail(detail); error = PurchasingService.InsertOrUpdatePurchaseOrderDetail(detail, testUser, lockGuid); Assert.IsTrue(!error.IsError, $"Error: {error.Message}"); }
public void FindPurchaseOrderTotalTest() { var testUser = GetTestUser(); var testCompany = GetTestCompany(testUser, true); var poh = GetTestPurchaseOrderHeader(testCompany, testUser, 1); var model = PurchasingService.FindPurchaseOrderDetailListModel(poh); var pod = model.Items.First(); decimal totalValue = pod.OrderQty.Value * pod.UnitPriceExTax.Value; for (int i = 0; i < 16; i++) { pod = model.Items.First(); pod.Id = 0; pod.OrderQty = RandomInt(); totalValue += pod.OrderQty.Value * pod.UnitPriceExTax.Value; var error = PurchasingService.InsertOrUpdatePurchaseOrderDetail(pod, testUser, ""); Assert.IsTrue(!error.IsError, error.Message); } var result = PurchasingService.FindPurchaseOrderTotal(poh); Assert.IsTrue(result == totalValue, $"Error: {result} was returned when {totalValue} was expected"); }
public void FindPurchaseOrderDetailListModelTest() { var testUser = GetTestUser(); var testCompany = GetTestCompany(testUser, true); var poh = GetTestPurchaseOrderHeader(testCompany, testUser, 1); var model = PurchasingService.FindPurchaseOrderDetailListModel(poh); var dbData = db.FindPurchaseOrderDetails(testCompany.Id, poh.Id); int expected = dbData.Count(), actual = model.Items.Count(); Assert.IsTrue(actual == expected, $"Error: {actual} items were found when {expected} were expected"); // Check that all the items match foreach (var item in model.Items) { var dbItem = dbData.Where(m => m.Id == item.Id).FirstOrDefault(); Assert.IsTrue(dbItem != null, "Error: Model item not found in db item list"); var temp = PurchasingService.MapToModel(dbItem); AreEqual(item, temp); } // Add another item a make sure it is found var newItem = createPurchaseOrderDetail(model); var error = PurchasingService.InsertOrUpdatePurchaseOrderDetail(newItem, testUser, ""); Assert.IsTrue(!error.IsError, $"Error: {error.Message}"); model = PurchasingService.FindPurchaseOrderDetailListModel(poh); var testItem = model.Items.Where(i => i.Id == newItem.Id).FirstOrDefault(); Assert.IsTrue(testItem != null, "Error: A NULL value was returned when a non-NULL value was expected"); // Delete it and make sure it disappears // Detail items are removed from the temp table, not main table, hence there is // no service API to delete them from main db.DeletePurchaseOrderDetail(newItem.Id); model = PurchasingService.FindPurchaseOrderDetailListModel(poh); testItem = model.Items.Where(i => i.Id == newItem.Id).FirstOrDefault(); Assert.IsTrue(testItem == null, "Error: A non-NULL value was returned when a NULL value was expected"); }