Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save PlatinumItguru/98926cf1aac8b4c84233 to your computer and use it in GitHub Desktop.
Save PlatinumItguru/98926cf1aac8b4c84233 to your computer and use it in GitHub Desktop.
@isTest
private class TestDeleteRestrictInvoice {
// Invoice generator, with or without a Line Item
static Invoice__c createNewInvoice(Boolean withLineItem) {
// Create test Invoice and insert it into the database
Invoice__c invoice = new Invoice__c();
insert invoice;
// Create test Line Item and insert it into the database, if withLineItem == true
if (withLineItem) {
Line_Item__c item = new Line_Item__c(
name = '1',
Quantity__c = 1,
Invoice__c = invoice.Id
);
insert item;
}
return invoice;
}
// Single row Invoice with no Line Items => delete
static testMethod void verifyInvoiceNoLineItemsDelete(){
// Create test Invoice and insert it
Invoice__c invoice = createNewInvoice(false);
// Delete the Invoice, capture the result
Database.DeleteResult result = Database.delete(invoice, false);
// Assert success, because target Invoice doesn't have Line Items
System.assert(result.isSuccess());
}
// Single row Invoice with Line Items => delete restrict
static testMethod void verifyInvoiceLineItemsRestrict(){
// Create test Invoice and Line Item and insert them
Invoice__c invoice = createNewInvoice(true);
// Delete the Invoice, capture the result
Database.DeleteResult result = Database.delete(invoice, false);
// Assert failure-not success, because target Invoice has tracks
System.assert(!result.isSuccess());
}
// Bulk delete of Invoice, one without Line Items, another with
static testMethod void verifyBulkInvoiceDeleteRestrict(){
// Create two test Invoices, one with and without a Line Item
Invoice__c[] invoices = new List<Invoice__c>();
invoices.add(createNewInvoice(false));
invoices.add(createNewInvoice(true));
// Delete the Invoices, opt_allOrNone = false, capture the results.
Database.DeleteResult[] results = Database.delete(invoices, false);
// Assert success for first Invoice
System.assert(results[0].isSuccess());
// Assert not success for second Invoice
System.assert(!results[1].isSuccess());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment