diff --git a/.github/AL-Go-Settings.json b/.github/AL-Go-Settings.json index 5b6b1b2721c..e805b45f586 100644 --- a/.github/AL-Go-Settings.json +++ b/.github/AL-Go-Settings.json @@ -15,6 +15,7 @@ "repoVersion": "30.0", "memoryLimit": "16G", "numberOfTenantsForTesting": 4, + "enableCleanTestCodeunitExecution": true, "maxTestAppReruns": 2, "failOn": "newWarning", "workspaceCompilation": { diff --git a/src/Apps/US/IRSForms/test/src/IRS1099APITests.Codeunit.al b/src/Apps/US/IRSForms/test/src/IRS1099APITests.Codeunit.al index 75ff57dd5ec..7799942c3e6 100644 --- a/src/Apps/US/IRSForms/test/src/IRS1099APITests.Codeunit.al +++ b/src/Apps/US/IRSForms/test/src/IRS1099APITests.Codeunit.al @@ -53,6 +53,7 @@ codeunit 148018 "IRS 1099 API Tests" IRS1099FormDocHeader: Record "IRS 1099 Form Doc. Header"; IRSReportingPeriod: Record "IRS Reporting Period"; begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); IRS1099FormDocHeader.DeleteAll(true); IRSReportingPeriod.DeleteAll(true); LibraryTestInitialize.OnTestInitialize(Codeunit::"IRS 1099 API Tests"); diff --git a/src/Apps/W1/APIV1/test/src/APIV1AccountsE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1AccountsE2E.Codeunit.al index 2a00e1204bd..55c176d13ee 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1AccountsE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1AccountsE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139701 "APIV1 - Accounts E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestPermissions = Disabled; trigger OnRun() @@ -20,6 +21,7 @@ codeunit 139701 "APIV1 - Accounts E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); IF IsInitialized THEN EXIT; diff --git a/src/Apps/W1/APIV1/test/src/APIV1AgedAPE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1AgedAPE2E.Codeunit.al index 6c34d146b1a..0a2b1f20380 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1AgedAPE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1AgedAPE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139719 "APIV1 - Aged AP E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestPermissions = Disabled; trigger OnRun() @@ -61,6 +62,7 @@ codeunit 139719 "APIV1 - Aged AP E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); IF IsInitialized THEN EXIT; diff --git a/src/Apps/W1/APIV1/test/src/APIV1AgedARE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1AgedARE2E.Codeunit.al index c2120c813d9..4f6a5a1a18f 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1AgedARE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1AgedARE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139720 "APIV1 - Aged AR E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestPermissions = Disabled; trigger OnRun() @@ -61,6 +62,7 @@ codeunit 139720 "APIV1 - Aged AR E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); IF IsInitialized THEN EXIT; diff --git a/src/Apps/W1/APIV1/test/src/APIV1AttachmentsE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1AttachmentsE2E.Codeunit.al index 5580d18b4a5..6cab1da7e76 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1AttachmentsE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1AttachmentsE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139733 "APIV1 - Attachments E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -44,6 +45,8 @@ codeunit 139733 "APIV1 - Attachments E2E" TargetURL: Text; begin // [SCENARIO] User can retrieve all records from the Attachments API. + Initialize(); + // [GIVEN] 2 Attachments in the Incoming Document Attachment table CreateGenJournalLine(DocumentRecordRef); CreateAttachments(DocumentRecordRef, AttachmentId); @@ -66,6 +69,8 @@ codeunit 139733 "APIV1 - Attachments E2E" TargetURL: Text; begin // [SCENARIO] User can retrieve all records from the Attachments API. + Initialize(); + // [GIVEN] 2 Attachments in the Incoming Document Attachment table CreateGLEntry(DocumentRecordRef); CreateAttachments(DocumentRecordRef, AttachmentId); @@ -89,6 +94,8 @@ codeunit 139733 "APIV1 - Attachments E2E" TargetURL: Text; begin // [SCENARIO] User can retrieve all records from the Attachments API. + Initialize(); + // [GIVEN] 2 Attachments in the Incoming Document Attachment table CreatePostedSalesInvoice(DocumentRecordRef, DocumentId); CreateAttachments(DocumentRecordRef, AttachmentId); @@ -111,6 +118,8 @@ codeunit 139733 "APIV1 - Attachments E2E" TargetURL: Text; begin // [SCENARIO] User can retrieve all records from the Attachments API. + Initialize(); + // [GIVEN] 2 Attachments in the Incoming Document Attachment table CreateDraftSalesInvoice(DocumentRecordRef); CreateAttachments(DocumentRecordRef, AttachmentId); @@ -134,6 +143,8 @@ codeunit 139733 "APIV1 - Attachments E2E" TargetURL: Text; begin // [SCENARIO] User can retrieve all records from the Attachments API. + Initialize(); + // [GIVEN] 2 Attachments in the Incoming Document Attachment table CreatePostedPurchaseInvoice(DocumentRecordRef, DocumentId); CreateAttachments(DocumentRecordRef, AttachmentId); @@ -156,6 +167,8 @@ codeunit 139733 "APIV1 - Attachments E2E" TargetURL: Text; begin // [SCENARIO] User can retrieve all records from the Attachments API. + Initialize(); + // [GIVEN] 2 Attachments in the Incoming Document Attachment table CreateDraftPurchaseInvoice(DocumentRecordRef); CreateAttachments(DocumentRecordRef, AttachmentId); @@ -178,6 +191,8 @@ codeunit 139733 "APIV1 - Attachments E2E" TargetURL: Text; begin // [SCENARIO] User can retrieve all records from the Attachments API. + Initialize(); + // [GIVEN] 2 Attachments in the Incoming Document Attachment table CreateSalesQuote(DocumentRecordRef); CreateAttachments(DocumentRecordRef, AttachmentId); @@ -200,6 +215,8 @@ codeunit 139733 "APIV1 - Attachments E2E" TargetURL: Text; begin // [SCENARIO] User can retrieve the Attachment record from the Attachment API. + Initialize(); + // [GIVEN] Attachment exists in the Incoming Document Attachment table CreateGenJournalLine(DocumentRecordRef); AttachmentId := CreateAttachment(DocumentRecordRef); @@ -225,6 +242,8 @@ codeunit 139733 "APIV1 - Attachments E2E" TargetURL: Text; begin // [SCENARIO] User can retrieve the Attachment record from the Attachment API. + Initialize(); + // [GIVEN] Attachment exists in the Incoming Document Attachment table JournalName := LibraryUtility.GenerateRandomCode(GenJournalBatch.FieldNo(Name), Database::"Gen. Journal Batch"); LibraryAPIGeneralJournal.EnsureGenJnlBatchExists(GraphMgtJournal.GetDefaultJournalLinesTemplateName(), JournalName); @@ -250,6 +269,8 @@ codeunit 139733 "APIV1 - Attachments E2E" TargetURL: Text; begin // [SCENARIO] User can retrieve the Attachment record from the Attachment API. + Initialize(); + // [GIVEN] Attachment exists in the Incoming Document Attachment table CreateGLEntry(DocumentRecordRef); AttachmentId := CreateAttachment(DocumentRecordRef); @@ -274,6 +295,8 @@ codeunit 139733 "APIV1 - Attachments E2E" TargetURL: Text; begin // [SCENARIO] User can retrieve the Attachment record from the Attachment API. + Initialize(); + // [GIVEN] Attachment exists in the Incoming Document Attachment table CreatePostedSalesInvoice(DocumentRecordRef, DocumentId); AttachmentId := CreateAttachment(DocumentRecordRef); @@ -297,6 +320,8 @@ codeunit 139733 "APIV1 - Attachments E2E" TargetURL: Text; begin // [SCENARIO] User can retrieve the Attachment record from the Attachment API. + Initialize(); + // [GIVEN] Attachment exists in the Incoming Document Attachment table CreateDraftSalesInvoice(DocumentRecordRef); AttachmentId := CreateAttachment(DocumentRecordRef); @@ -320,6 +345,8 @@ codeunit 139733 "APIV1 - Attachments E2E" TargetURL: Text; begin // [SCENARIO] User can retrieve the Attachment record from the Attachment API. + Initialize(); + // [GIVEN] Attachment exists in the Incoming Document Attachment table CreateSalesQuote(DocumentRecordRef); AttachmentId := CreateAttachment(DocumentRecordRef); @@ -347,6 +374,8 @@ codeunit 139733 "APIV1 - Attachments E2E" ActualBase64Content: Text; begin // [SCENARIO] User can update linked attachment binary content through the Attachment API. + Initialize(); + // [GIVEN] A linked attachment exists CreateGenJournalLine(DocumentRecordRef); AttachmentId := CreateAttachment(DocumentRecordRef); @@ -381,6 +410,8 @@ codeunit 139733 "APIV1 - Attachments E2E" ActualBase64Content: Text; begin // [SCENARIO] User can update linked attachment binary content through the Attachment API. + Initialize(); + // [GIVEN] A linked attachment exists CreateGLEntry(DocumentRecordRef); AttachmentId := CreateAttachment(DocumentRecordRef); @@ -408,6 +439,8 @@ codeunit 139733 "APIV1 - Attachments E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateGenJournalLine(DocumentRecordRef); TestCreateAttachment(DocumentRecordRef); end; @@ -417,6 +450,8 @@ codeunit 139733 "APIV1 - Attachments E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateGLEntry(DocumentRecordRef); TestCreateGLEAttachment(DocumentRecordRef); end; @@ -427,6 +462,8 @@ codeunit 139733 "APIV1 - Attachments E2E" DocumentRecordRef: RecordRef; DocumentId: Guid; begin + Initialize(); + CreatePostedSalesInvoice(DocumentRecordRef, DocumentId); TestCreateAttachment(DocumentRecordRef, DocumentId); end; @@ -436,6 +473,8 @@ codeunit 139733 "APIV1 - Attachments E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateDraftSalesInvoice(DocumentRecordRef); TestCreateAttachment(DocumentRecordRef); end; @@ -446,6 +485,8 @@ codeunit 139733 "APIV1 - Attachments E2E" DocumentRecordRef: RecordRef; DocumentId: Guid; begin + Initialize(); + CreatePostedPurchaseInvoice(DocumentRecordRef, DocumentId); TestCreateAttachment(DocumentRecordRef, DocumentId); end; @@ -455,10 +496,17 @@ codeunit 139733 "APIV1 - Attachments E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateDraftPurchaseInvoice(DocumentRecordRef); TestCreateAttachment(DocumentRecordRef); end; + local procedure Initialize() + begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + end; + local procedure TestCreateAttachment(var DocumentRecordRef: RecordRef) var DocumentId: Guid; @@ -556,6 +604,8 @@ codeunit 139733 "APIV1 - Attachments E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateSalesQuote(DocumentRecordRef); TestCreateAttachment(DocumentRecordRef); end; @@ -565,6 +615,8 @@ codeunit 139733 "APIV1 - Attachments E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateGenJournalLine(DocumentRecordRef); TestDeleteAttachment(DocumentRecordRef); end; @@ -574,6 +626,8 @@ codeunit 139733 "APIV1 - Attachments E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateGLEntry(DocumentRecordRef); TestDeleteGLEAttachment(DocumentRecordRef); end; @@ -584,6 +638,8 @@ codeunit 139733 "APIV1 - Attachments E2E" DocumentRecordRef: RecordRef; DocumentId: Guid; begin + Initialize(); + CreatePostedSalesInvoice(DocumentRecordRef, DocumentId); TestDeleteAttachment(DocumentRecordRef, DocumentId); end; @@ -593,6 +649,8 @@ codeunit 139733 "APIV1 - Attachments E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateDraftSalesInvoice(DocumentRecordRef); TestDeleteAttachment(DocumentRecordRef); end; @@ -603,6 +661,8 @@ codeunit 139733 "APIV1 - Attachments E2E" DocumentRecordRef: RecordRef; DocumentId: Guid; begin + Initialize(); + CreatePostedPurchaseInvoice(DocumentRecordRef, DocumentId); TestDeleteAttachment(DocumentRecordRef, DocumentId); end; @@ -612,6 +672,8 @@ codeunit 139733 "APIV1 - Attachments E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateDraftPurchaseInvoice(DocumentRecordRef); TestDeleteAttachment(DocumentRecordRef); end; @@ -621,6 +683,8 @@ codeunit 139733 "APIV1 - Attachments E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateSalesQuote(DocumentRecordRef); TestDeleteAttachment(DocumentRecordRef); end; @@ -698,6 +762,8 @@ codeunit 139733 "APIV1 - Attachments E2E" TargetURL: Text; begin // [SCENARIO] The Attachment is transferred from a Draft Invoice the to Posted Invoice after posting. + Initialize(); + // [GIVEN] A draft sales invoice exists. CreateDraftSalesInvoice(DocumentRecordRef); DocumentId := GetDocumentId(DocumentRecordRef); @@ -738,6 +804,8 @@ codeunit 139733 "APIV1 - Attachments E2E" TargetURL: Text; begin // [SCENARIO] The Attachment is transferred from a Draft Invoice the to Posted Invoice after posting. + Initialize(); + // [GIVEN] A draft sales invoice exists. CreateDraftPurchaseInvoice(DocumentRecordRef); DocumentId := GetDocumentId(DocumentRecordRef); @@ -780,6 +848,8 @@ codeunit 139733 "APIV1 - Attachments E2E" NewBase64Content: Text; begin // [SCENARIO] Changing an attachment file name keeps other fields unchanged + Initialize(); + // [GIVEN] A sales quote exists. CreateSalesQuote(DocumentRecordRef); DocumentId := GetDocumentId(DocumentRecordRef); @@ -825,6 +895,8 @@ codeunit 139733 "APIV1 - Attachments E2E" NewFileName: Text; begin // [SCENARIO] Changing an attachment content keeps other fields unchanged + Initialize(); + // [GIVEN] A draft sales invoice exists. CreateDraftSalesInvoice(DocumentRecordRef); DocumentId := GetDocumentId(DocumentRecordRef); @@ -863,6 +935,8 @@ codeunit 139733 "APIV1 - Attachments E2E" JSONBody: Text; begin // [SCENARIO] User cannot change the linked attachment ID by making a PATCH request to the Attachments API + Initialize(); + // [GIVEN] A sales quote exists. CreateSalesQuote(DocumentRecordRef); @@ -892,6 +966,8 @@ codeunit 139733 "APIV1 - Attachments E2E" JSONBody: Text; begin // [SCENARIO] User cannot change the attachment ID by making a PATCH request to the Attachments API + Initialize(); + // [GIVEN] Two documents exist. CreateSalesQuote(DocumentRecordRef[1]); CreateDraftSalesInvoice(DocumentRecordRef[2]); diff --git a/src/Apps/W1/APIV1/test/src/APIV1AutomationRSPackage.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1AutomationRSPackage.Codeunit.al index 0858a09b780..5f296037efe 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1AutomationRSPackage.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1AutomationRSPackage.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139731 "APIV1 - Automation RS Package" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -30,6 +31,7 @@ codeunit 139731 "APIV1 - Automation RS Package" var TenantConfigPackageFile: Record "Tenant Config. Package File"; begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); TenantConfigPackageFile.DELETEALL(TRUE); IF IsInitialized THEN diff --git a/src/Apps/W1/APIV1/test/src/APIV1BalanceSheetE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1BalanceSheetE2E.Codeunit.al index 6a2a3be1e9b..fbd6b61dea3 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1BalanceSheetE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1BalanceSheetE2E.Codeunit.al @@ -63,6 +63,7 @@ codeunit 139715 "APIV1 - Balance Sheet E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); IF IsInitialized THEN EXIT; diff --git a/src/Apps/W1/APIV1/test/src/APIV1CashFlowStatementE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1CashFlowStatementE2E.Codeunit.al index d6ae8c95e20..a28bcc49f86 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1CashFlowStatementE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1CashFlowStatementE2E.Codeunit.al @@ -63,6 +63,7 @@ codeunit 139717 "APIV1 - CashFlow Statement E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); IF IsInitialized THEN EXIT; diff --git a/src/Apps/W1/APIV1/test/src/APIV1CompanyInfoE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1CompanyInfoE2E.Codeunit.al index 4f51dfaaa78..d67ef99c491 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1CompanyInfoE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1CompanyInfoE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139706 "APIV1 - Company Info. E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = IntegrationTest; TestPermissions = Disabled; @@ -23,6 +24,7 @@ codeunit 139706 "APIV1 - Company Info. E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); IF IsInitialized THEN EXIT; diff --git a/src/Apps/W1/APIV1/test/src/APIV1CurrenciesE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1CurrenciesE2E.Codeunit.al index a6eb3ecda09..d0046dc6427 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1CurrenciesE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1CurrenciesE2E.Codeunit.al @@ -156,6 +156,7 @@ codeunit 139713 "APIV1 - Currencies E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); IF IsInitialized THEN EXIT; diff --git a/src/Apps/W1/APIV1/test/src/APIV1CustomerPaymentsE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1CustomerPaymentsE2E.Codeunit.al index b51914a8924..7489fc9ea56 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1CustomerPaymentsE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1CustomerPaymentsE2E.Codeunit.al @@ -2,6 +2,7 @@ codeunit 139743 "APIV1 - Customer Payments E2E" { Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -770,6 +771,7 @@ codeunit 139743 "APIV1 - Customer Payments E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); LibraryTestInitialize.OnTestInitialize(Codeunit::"APIV1 - Customer Payments E2E"); if not isInitialized then diff --git a/src/Apps/W1/APIV1/test/src/APIV1CustomersE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1CustomersE2E.Codeunit.al index 9b7a549459f..a6e9c12b2f3 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1CustomersE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1CustomersE2E.Codeunit.al @@ -35,6 +35,7 @@ codeunit 139702 "APIV1 - Customers E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); IF IsInitialized THEN EXIT; diff --git a/src/Apps/W1/APIV1/test/src/APIV1DefaultDimensionsE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1DefaultDimensionsE2E.Codeunit.al index 2ac7d59c5fa..7b3769e357a 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1DefaultDimensionsE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1DefaultDimensionsE2E.Codeunit.al @@ -38,6 +38,8 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" Customer: Record "Customer"; begin // [FEATURE] [Customer] + Initialize(); + // [GIVEN] a customer, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension on the customer // [THEN] The default dimension has been added to the customer @@ -51,6 +53,8 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" Vendor: Record "Vendor"; begin // [FEATURE] [Vendor] + Initialize(); + // [GIVEN] a vendor, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension on the vendor // [THEN] The default dimension has been added to the vendor @@ -64,6 +68,8 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" Item: Record "Item"; begin // [FEATURE] [Item] + Initialize(); + // [GIVEN] a Item, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension on the Item // [THEN] The default dimension has been added to the Item @@ -90,6 +96,8 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" Customer: Record "Customer"; begin // [FEATURE] [Customer] + Initialize(); + // [GIVEN] a customer, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension on the customer // [THEN] The default dimension has been added to the customer @@ -103,6 +111,8 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" Vendor: Record "Vendor"; begin // [FEATURE] [Vendor] + Initialize(); + // [GIVEN] a Vendor, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension on the Vendor // [THEN] The default dimension has been added to the Vendor @@ -116,6 +126,8 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" Item: Record "Item"; begin // [FEATURE] [Item] + Initialize(); + // [GIVEN] a Item, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension on the Item // [THEN] The default dimension has been added to the Item @@ -142,6 +154,8 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" Customer: Record "Customer"; begin // [FEATURE] [Customer] + Initialize(); + // [GIVEN] a customer, a dimension and a dimension value // [WHEN] a user issues a http request to create a default dimension without dimension id // [THEN] You get an error @@ -155,6 +169,8 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" Vendor: Record "Vendor"; begin // [FEATURE] [Vendor] + Initialize(); + // [GIVEN] a Vendor, a dimension and a dimension value // [WHEN] a user issues a http request to create a default dimension without dimension id // [THEN] You get an error @@ -168,6 +184,8 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" Item: Record "Item"; begin // [FEATURE] [Item] + Initialize(); + // [GIVEN] a Item, a dimension and a dimension value // [WHEN] a user issues a http request to create a default dimension without dimension id // [THEN] You get an error @@ -194,6 +212,8 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" Customer: Record "Customer"; begin // [FEATURE] [Customer] + Initialize(); + // [GIVEN] a customer, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension on the customer, with mismatching dimesnion and dimension value // [THEN] You get an error @@ -207,6 +227,8 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" Vendor: Record "Vendor"; begin // [FEATURE] [Vendor] + Initialize(); + // [GIVEN] a Vendor, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension on the Vendor, with mismatching dimesnion and dimension value // [THEN] You get an error @@ -220,6 +242,8 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" Item: Record "Item"; begin // [FEATURE] [Item] + Initialize(); + // [GIVEN] a Item, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension on the Item, with mismatching dimesnion and dimension value // [THEN] You get an error @@ -246,6 +270,8 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" Customer: Record "Customer"; begin // [FEATURE] [Customer] + Initialize(); + // [GIVEN] a customer, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension with a blocked dimension on the customer // [THEN] You get an error @@ -259,6 +285,8 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" Vendor: Record "Vendor"; begin // [FEATURE] [Vendor] + Initialize(); + // [GIVEN] a Vendor, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension with a blocked dimension on the Vendor // [THEN] You get an error @@ -272,6 +300,8 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" Item: Record "Item"; begin // [FEATURE] [Item] + Initialize(); + // [GIVEN] a Item, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension with a blocked dimension on the Item // [THEN] You get an error @@ -298,6 +328,8 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" Customer: Record "Customer"; begin // [FEATURE] [Customer] + Initialize(); + // [GIVEN] a customer, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension with a blocked dimension value on the customer // [THEN] You get an error @@ -311,6 +343,8 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" Vendor: Record "Vendor"; begin // [FEATURE] [Vendor] + Initialize(); + // [GIVEN] a Vendor, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension with a blocked dimension value on the Vendor // [THEN] You get an error @@ -324,6 +358,8 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" Item: Record "Item"; begin // [FEATURE] [Item] + Initialize(); + // [GIVEN] a Item, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension with a blocked dimension value on the Item // [THEN] You get an error @@ -350,6 +386,8 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" Customer: Record "Customer"; begin // [FEATURE] [Customer] + Initialize(); + // [GIVEN] a customer with a default dimension // [WHEN] The user posts a http request to delete the default dimension on the customer // [THEN] The default dimension has been deleted from the customer's default dimensions @@ -363,6 +401,8 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" Vendor: Record "Vendor"; begin // [FEATURE] [Vendor] + Initialize(); + // [GIVEN] a Vendor with a default dimension // [WHEN] The user posts a http request to delete a default dimension on the Vendor // [THEN] The default dimension has been deleted from the vendor's default dimensions @@ -376,6 +416,8 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" Item: Record "Item"; begin // [FEATURE] [Item] + Initialize(); + // [GIVEN] a Item with a default dimension // [WHEN] The user posts a http request to delete a default dimension on the Item // [THEN] The default dimension has been deleted from the item's default dimensions @@ -402,6 +444,8 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" Customer: Record "Customer"; begin // [FEATURE] [Customer] + Initialize(); + // [GIVEN] a customer with a default dimension // [WHEN] The user posts a http request to get the default dimension on the customer // [THEN] The response contains the default dimension that has been added to the customer @@ -415,6 +459,8 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" Vendor: Record "Vendor"; begin // [FEATURE] [Vendor] + Initialize(); + // [GIVEN] a Vendor with a default dimension // [WHEN] The user posts a http request to get a default dimension on the Vendor // [THEN] The response contains the default dimension that has been added to the Vendor @@ -428,6 +474,8 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" Item: Record "Item"; begin // [FEATURE] [Item] + Initialize(); + // [GIVEN] a Item with a default dimension // [WHEN] The user posts a http request to get a default dimension on the Item // [THEN] The response contains the default dimension that has been added to the Item @@ -454,6 +502,8 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" Customer: Record "Customer"; begin // [FEATURE] [Customer] + Initialize(); + // [GIVEN] a customer with a default dimension // [WHEN] The user posts a http request to patch the default dimension on the customer // [THEN] The default dimension has been updated for the customer @@ -467,6 +517,8 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" Vendor: Record "Vendor"; begin // [FEATURE] [Vendor] + Initialize(); + // [GIVEN] a Vendor with a default dimension // [WHEN] The user posts a http request to patch a default dimension on the Vendor // [THEN] The default dimension has been updated for the vendor @@ -480,6 +532,8 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" Item: Record "Item"; begin // [FEATURE] [Item] + Initialize(); + // [GIVEN] a Item with a default dimension // [WHEN] The user posts a http request to patch a default dimension on the Item // [THEN] The default dimension has been updated for the item @@ -506,6 +560,8 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" Customer: Record "Customer"; begin // [FEATURE] [Customer] + Initialize(); + // [GIVEN] a customer with a default dimension // [WHEN] The user posts a http request to patch the default dimension with a blocked dimension value on the customer // [THEN] You get an error @@ -519,6 +575,8 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" Vendor: Record "Vendor"; begin // [FEATURE] [Vendor] + Initialize(); + // [GIVEN] a Vendor with a default dimension // [WHEN] The user posts a http request to patch a default dimension with a blocked dimension value on the Vendor // [THEN] You get an error @@ -532,6 +590,8 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" Item: Record "Item"; begin // [FEATURE] [Item] + Initialize(); + // [GIVEN] a Item with a default dimension // [WHEN] The user posts a http request to patch a default dimension with a blocked dimension value on the Item // [THEN] You get an error @@ -558,6 +618,8 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" Customer: Record "Customer"; begin // [FEATURE] [Customer] + Initialize(); + // [GIVEN] a customer with a default dimension // [WHEN] The user posts a http request to patch the default dimension with a blocked dimension value on the customer // [THEN] You get an error @@ -571,6 +633,8 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" Vendor: Record "Vendor"; begin // [FEATURE] [Vendor] + Initialize(); + // [GIVEN] a vendor with a default dimension // [WHEN] The user posts a http request to patch the default dimension with a blocked dimension value on the vendor // [THEN] You get an error @@ -584,6 +648,8 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" Item: Record "Item"; begin // [FEATURE] [Item] + Initialize(); + // [GIVEN] a item with a default dimension // [WHEN] The user posts a http request to patch the default dimension with a blocked dimension value on the item // [THEN] You get an error @@ -604,6 +670,11 @@ codeunit 139732 "APIV1 - Default Dimensions E2E" TestPatchDefaultDimensionFailsWhenChangingDimensionCode(DATABASE::Employee, Employee."No.", Employee.SystemId); end; + local procedure Initialize() + begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + end; + local procedure TestCreateDefaultDimensionWithDimensionCode(TableNo: Integer; ParentNo: Code[20]; ParentId: Guid) var Dimension: Record "Dimension"; diff --git a/src/Apps/W1/APIV1/test/src/APIV1DimensionLinesE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1DimensionLinesE2E.Codeunit.al index 8f27a4fa357..7e8ad28e998 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1DimensionLinesE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1DimensionLinesE2E.Codeunit.al @@ -29,6 +29,7 @@ codeunit 139725 "APIV1 - Dimension Lines E2E" procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); end; [Test] @@ -45,6 +46,7 @@ codeunit 139725 "APIV1 - Dimension Lines E2E" ResponseText: Text; begin // [SCENARIO] Create a dimension line in a customer payment through a POST method and check if it was created + Initialize(); LibraryGraphJournalLines.Initialize(); // [GIVEN] a journal @@ -89,6 +91,7 @@ codeunit 139725 "APIV1 - Dimension Lines E2E" ResponseText: Text; begin // [SCENARIO] Creating a dimension line through a POST method without specifying a parent Id fails + Initialize(); LibraryGraphJournalLines.Initialize(); // [GIVEN] a dimension with a value @@ -120,6 +123,7 @@ codeunit 139725 "APIV1 - Dimension Lines E2E" TargetURL: Text; begin // [SCENARIO] Try to create a dimension line with an already existing code + Initialize(); LibraryGraphJournalLines.Initialize(); // [GIVEN] a journal @@ -172,6 +176,7 @@ codeunit 139725 "APIV1 - Dimension Lines E2E" TargetURL: Text; begin // [SCENARIO] Create dimension lines in a journal line and use a GET method to retrieve them + Initialize(); LibraryGraphJournalLines.Initialize(); // [GIVEN] a journal @@ -228,6 +233,7 @@ codeunit 139725 "APIV1 - Dimension Lines E2E" TargetURL: Text; begin // [SCENARIO] Create dimension lines in a journal line and use a GET method to retrieve them + Initialize(); // [GIVEN] a customer payment in the General Journal Table LibraryGraphJournalLines.Initialize(); @@ -277,6 +283,7 @@ codeunit 139725 "APIV1 - Dimension Lines E2E" TargetURL: Text; begin // [SCENARIO] Using a GET request to retrieve dimension lines without a filter fails + Initialize(); LibraryGraphJournalLines.Initialize(); AccountNo := LibraryGraphJournalLines.CreateAccount(); @@ -297,6 +304,7 @@ codeunit 139725 "APIV1 - Dimension Lines E2E" TargetURL: Text; begin // [SCENARIO] Using a GET request to retrieve dimension lines with a random entity fails + Initialize(); LibraryGraphJournalLines.Initialize(); // [GIVEN] a Target URL without filters @@ -324,6 +332,7 @@ codeunit 139725 "APIV1 - Dimension Lines E2E" TargetURL: Text; begin // [SCENARIO] Create a dimension line, use a PATCH method to change it and then verify the changes + Initialize(); LibraryGraphJournalLines.Initialize(); // [GIVEN] a journal @@ -387,6 +396,7 @@ codeunit 139725 "APIV1 - Dimension Lines E2E" TargetURL: Text; begin // [SCENARIO] Try to change the code of an existing dimension line + Initialize(); LibraryGraphJournalLines.Initialize(); // [GIVEN] a journal @@ -445,6 +455,7 @@ codeunit 139725 "APIV1 - Dimension Lines E2E" TargetURL: Text; begin // [SCENARIO] Create a dimension line, use a DELETE method to remove it and then verify the deletion + Initialize(); LibraryGraphJournalLines.Initialize(); // [GIVEN] a journal diff --git a/src/Apps/W1/APIV1/test/src/APIV1DimensionsE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1DimensionsE2E.Codeunit.al index d8236658fe2..1d37201a6e9 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1DimensionsE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1DimensionsE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139724 "APIV1 - Dimensions E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestPermissions = Disabled; trigger OnRun() @@ -21,6 +22,7 @@ codeunit 139724 "APIV1 - Dimensions E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); IF IsInitialized THEN EXIT; diff --git a/src/Apps/W1/APIV1/test/src/APIV1EmployeesE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1EmployeesE2E.Codeunit.al index 4dab01f0238..8c3f5746143 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1EmployeesE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1EmployeesE2E.Codeunit.al @@ -26,6 +26,7 @@ codeunit 139722 "APIV1 - Employees E2E" var LibraryApplicationArea: Codeunit "Library - Application Area"; begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); LibraryApplicationArea.EnableBasicHRSetup(); // Lazy Setup. diff --git a/src/Apps/W1/APIV1/test/src/APIV1GLEntriesE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1GLEntriesE2E.Codeunit.al index 1a1e5eaa5e0..34239b14431 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1GLEntriesE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1GLEntriesE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139730 "APIV1 - GLEntries E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -25,6 +26,7 @@ codeunit 139730 "APIV1 - GLEntries E2E" LibraryERMCountryData: Codeunit "Library - ERM Country Data"; LibraryApplicationArea: Codeunit "Library - Application Area"; begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); LibraryApplicationArea.EnableFoundationSetup(); IF IsInitialized THEN EXIT; diff --git a/src/Apps/W1/APIV1/test/src/APIV1IncomeStatementE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1IncomeStatementE2E.Codeunit.al index 2f313813b76..f59cc97d64d 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1IncomeStatementE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1IncomeStatementE2E.Codeunit.al @@ -63,6 +63,7 @@ codeunit 139716 "APIV1 - Income Statement E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); IF IsInitialized THEN EXIT; diff --git a/src/Apps/W1/APIV1/test/src/APIV1ItemCategoriesE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1ItemCategoriesE2E.Codeunit.al index c3be055b02e..0574246bbc3 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1ItemCategoriesE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1ItemCategoriesE2E.Codeunit.al @@ -156,6 +156,7 @@ codeunit 139707 "APIV1 - Item Categories E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); IF IsInitialized THEN EXIT; diff --git a/src/Apps/W1/APIV1/test/src/APIV1ItemVariantsE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1ItemVariantsE2E.Codeunit.al index 05fabfd3e1d..9e3657c78cf 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1ItemVariantsE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1ItemVariantsE2E.Codeunit.al @@ -23,6 +23,8 @@ codeunit 139739 "APIV1 - Item Variants E2E" TargetURL: Text; begin // [SCENARIO] Create an item variant through a POST method and check if it was created + Initialize(); + // [GIVEN] a JSON text with an item variant with itemId CreateItem(Item); Commit(); @@ -47,6 +49,8 @@ codeunit 139739 "APIV1 - Item Variants E2E" TargetURL: Text; begin // [SCENARIO] Cannot create an Item Variant with non-existing itemId + Initialize(); + // [GIVEN] a JSON text with an item variant with non-existing itemId ItemId := CreateGuid(); ItemVariantJSON := CreateItemVariantJsonWithItemId(ItemId, ItemVariantCode); @@ -68,6 +72,8 @@ codeunit 139739 "APIV1 - Item Variants E2E" TargetURL: Text; begin // [SCENARIO] Create an item variant through a POST method and check if it was created + Initialize(); + // [GIVEN] a JSON text with an item variant with itemNumber CreateItem(Item); Commit(); @@ -93,6 +99,8 @@ codeunit 139739 "APIV1 - Item Variants E2E" TargetURL: Text; begin // [SCENARIO] Cannot create an Item Variant with non-existing itemNumber + Initialize(); + // [GIVEN] a JSON text with an item variant with non-existing itemNumber ItemNo := LibraryUtility.GenerateRandomCode(ItemVariant.FieldNo(Code), Database::"Item Variant"); ItemVariantJSON := CreateItemVariantJsonWithItemNo(ItemNo, ItemVariantCode); @@ -114,6 +122,8 @@ codeunit 139739 "APIV1 - Item Variants E2E" TargetURL: Text; begin // [SCENARIO] Create an item variant through a POST method and check if it was created + Initialize(); + // [GIVEN] a JSON text with an item variant with itemNumber and itemId CreateItem(Item); Commit(); @@ -139,6 +149,8 @@ codeunit 139739 "APIV1 - Item Variants E2E" TargetURL: Text; begin // [SCENARIO] Cannot create an Item Variant with mismatching itemNumber and itemId + Initialize(); + // [GIVEN] a JSON text with an item variant with mismatching itemNumber and itemId CreateItem(Item1); CreateItem(Item2); @@ -162,6 +174,8 @@ codeunit 139739 "APIV1 - Item Variants E2E" TargetURL: Text; begin // [SCENARIO] Cannot create an Item Variant if there is an item variant with same itemNumber and code + Initialize(); + // [GIVEN] a JSON text with an item variant with same itemNumber and code CreateItem(Item); LibraryInventory.CreateItemVariant(ItemVariant, Item."No."); @@ -184,6 +198,8 @@ codeunit 139739 "APIV1 - Item Variants E2E" TargetURL: Text; begin // [SCENARIO] Get a simple customer with a GET request to the service. + Initialize(); + // [GIVEN] An item variant exists in the system CreateItem(Item); LibraryInventory.CreateItemVariant(ItemVariant, Item."No."); @@ -209,6 +225,8 @@ codeunit 139739 "APIV1 - Item Variants E2E" TargetURL: Text; begin // [SCENARIO] Create an item variant, use a PATCH method to change it and then verify the changes + Initialize(); + // [GIVEN] an item variant exists in the system CreateItem(Item); LibraryInventory.CreateItemVariant(ItemVariant, Item."No."); @@ -241,6 +259,8 @@ codeunit 139739 "APIV1 - Item Variants E2E" TargetURL: Text; begin // [SCENARIO] Create an item variant, use a PATCH method to change it and then verify the changes + Initialize(); + // [GIVEN] an item variant exists in the system CreateItem(Item1); CreateItem(Item2); @@ -274,6 +294,8 @@ codeunit 139739 "APIV1 - Item Variants E2E" TargetURL: Text; begin // [SCENARIO] Create an item variant, use a PATCH method to change it and then verify the changes + Initialize(); + // [GIVEN] an item variant exists in the system CreateItem(Item1); CreateItem(Item2); @@ -303,6 +325,8 @@ codeunit 139739 "APIV1 - Item Variants E2E" TargetURL: Text; begin // [SCENARIO] Create an item variant, use a DELETE method to remove it and then verify the deletion + Initialize(); + // [GIVEN] an item variant in the system CreateItem(Item); LibraryInventory.CreateItemVariant(ItemVariant, Item."No."); @@ -329,6 +353,8 @@ codeunit 139739 "APIV1 - Item Variants E2E" TargetURL: Text; begin // [SCENARIO] Cannot delete an item variant in use + Initialize(); + // [GIVEN] an item variant in the system and used in a sales order line LibraryInventory.CreateItem(Item); LibraryInventory.CreateItemVariant(ItemVariant, Item."No."); @@ -351,6 +377,11 @@ codeunit 139739 "APIV1 - Item Variants E2E" ServiceNameTxt: Label 'itemVariants'; + local procedure Initialize() + begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + end; + local procedure CreateItem(var Item: Record Item) begin Item.Init(); diff --git a/src/Apps/W1/APIV1/test/src/APIV1ItemsE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1ItemsE2E.Codeunit.al index 9a175bed8a5..6938b6c215e 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1ItemsE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1ItemsE2E.Codeunit.al @@ -34,6 +34,7 @@ codeunit 139700 "APIV1 - Items E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); IF IsInitialized THEN EXIT; diff --git a/src/Apps/W1/APIV1/test/src/APIV1JournalLinesE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1JournalLinesE2E.Codeunit.al index 0de48acbec6..87f609c89b1 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1JournalLinesE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1JournalLinesE2E.Codeunit.al @@ -2,6 +2,7 @@ codeunit 139745 "APIV1 - Journal Lines E2E" { Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = IntegrationTest; TestPermissions = Disabled; @@ -15,6 +16,7 @@ codeunit 139745 "APIV1 - Journal Lines E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); if IsInitialized then exit; IsInitialized := true; diff --git a/src/Apps/W1/APIV1/test/src/APIV1JournalsE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1JournalsE2E.Codeunit.al index bef0a27a5b9..868604642ac 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1JournalsE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1JournalsE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139727 "APIV1 - Journals E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -33,6 +34,7 @@ codeunit 139727 "APIV1 - Journals E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); IF IsInitialized THEN EXIT; @@ -191,6 +193,8 @@ codeunit 139727 "APIV1 - Journals E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [GIVEN] A general journal batch with a general journal line BalAccountNo := LibraryERM.CreateGLAccountNoWithDirectPosting(); BalAccountType := GenJournalLine."Bal. Account Type"::"G/L Account"; diff --git a/src/Apps/W1/APIV1/test/src/APIV1PDFDocumentE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1PDFDocumentE2E.Codeunit.al index f6153f98898..7a46712ae52 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1PDFDocumentE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1PDFDocumentE2E.Codeunit.al @@ -2,6 +2,7 @@ codeunit 139744 "APIV1 - PDF Document E2E" { Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -25,7 +26,7 @@ codeunit 139744 "APIV1 - PDF Document E2E" var CompanyInformation: Record "Company Information"; begin - WorkDate := Today; + LibraryGraphMgt.SetLicenseSafeWorkDate(); CompanyInformation.Get(); if CompanyInformation."Giro No." = '' then diff --git a/src/Apps/W1/APIV1/test/src/APIV1PaymentTermsE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1PaymentTermsE2E.Codeunit.al index 26816ad0a1c..645ec0f6590 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1PaymentTermsE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1PaymentTermsE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139704 "APIV1 - Payment Terms E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestPermissions = Disabled; trigger OnRun() @@ -20,6 +21,7 @@ codeunit 139704 "APIV1 - Payment Terms E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); IF IsInitialized THEN EXIT; diff --git a/src/Apps/W1/APIV1/test/src/APIV1PicturesE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1PicturesE2E.Codeunit.al index 1558862ccd0..1b7f15f65e0 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1PicturesE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1PicturesE2E.Codeunit.al @@ -29,6 +29,7 @@ codeunit 139742 "APIV1 - Pictures E2E" [Scope('OnPrem')] procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); if IsInitialized then exit; @@ -47,6 +48,8 @@ codeunit 139742 "APIV1 - Pictures E2E" // [FEATURE] [Customer] // [SCENARIO] Get value picture from Customer Record + Initialize(); + // [GIVEN] a customer with image attached CreateTestCustomerWithImage(Customer, TempBlobExpected); Commit(); @@ -71,6 +74,8 @@ codeunit 139742 "APIV1 - Pictures E2E" // [FEATURE] [Customer] // [SCENARIO] Get a picture metadata from Customer Record + Initialize(); + // [GIVEN] a customer with image attached CreateTestCustomerWithImage(Customer, TempBlobExpected); Commit(); @@ -94,6 +99,8 @@ codeunit 139742 "APIV1 - Pictures E2E" // [FEATURE] [Customer] // [SCENARIO] Get value picture from Customer Record when no image exist + Initialize(); + // [GIVEN] a customer without image LibrarySales.CreateCustomer(Customer); Commit(); @@ -115,6 +122,8 @@ codeunit 139742 "APIV1 - Pictures E2E" // [FEATURE] [Customer] // [SCENARIO] Get a picture metadata from Customer Record when no image is present + Initialize(); + // [GIVEN] a customer with image attached LibrarySales.CreateCustomer(Customer); Commit(); @@ -140,6 +149,8 @@ codeunit 139742 "APIV1 - Pictures E2E" // [FEATURE] [Customer] // [SCENARIO] Set Picture on a customer without picture + Initialize(); + // [GIVEN] a customer with image attached LibrarySales.CreateCustomer(Customer); GetRedImageTempBlob(TempBlobExpected); @@ -172,6 +183,8 @@ codeunit 139742 "APIV1 - Pictures E2E" // [FEATURE] [Customer] // [SCENARIO] Replace the Picture on a customer + Initialize(); + // [GIVEN] a customer with image attached CreateTestCustomerWithImage(Customer, TempBlobOriginal); GetBlueImageTempBlob(TempBlobExpected); @@ -203,6 +216,8 @@ codeunit 139742 "APIV1 - Pictures E2E" // [FEATURE] [Customer] // [SCENARIO] Replace the Picture on a customer + Initialize(); + // [GIVEN] a customer with image attached CreateTestCustomerWithImage(Customer, TempBlobOriginal); GetBlueImageTempBlob(TempBlobExpected); @@ -230,6 +245,8 @@ codeunit 139742 "APIV1 - Pictures E2E" // [FEATURE] [Vendor] // [SCENARIO] Get value picture from Vendor Record + Initialize(); + // [GIVEN] a Vendor with image attached CreateTestVendorWithImage(Vendor, TempBlobExpected); Commit(); @@ -254,6 +271,8 @@ codeunit 139742 "APIV1 - Pictures E2E" // [FEATURE] [Vendor] // [SCENARIO] Get a picture metadata from Vendor Record + Initialize(); + // [GIVEN] a Vendor with image attached CreateTestVendorWithImage(Vendor, TempBlobExpected); Commit(); @@ -277,6 +296,8 @@ codeunit 139742 "APIV1 - Pictures E2E" // [FEATURE] [Vendor] // [SCENARIO] Get value picture from Vendor Record when no image exist + Initialize(); + // [GIVEN] a Vendor without image LibraryPurchase.CreateVendor(Vendor); Commit(); @@ -298,6 +319,8 @@ codeunit 139742 "APIV1 - Pictures E2E" // [FEATURE] [Vendor] // [SCENARIO] Get a picture metadata from Vendor Record when no image is present + Initialize(); + // [GIVEN] a Vendor with image attached LibraryPurchase.CreateVendor(Vendor); Commit(); @@ -323,6 +346,8 @@ codeunit 139742 "APIV1 - Pictures E2E" // [FEATURE] [Vendor] // [SCENARIO] Set Picture on a Vendor without picture + Initialize(); + // [GIVEN] a Vendor with image attached LibraryPurchase.CreateVendor(Vendor); GetRedImageTempBlob(TempBlobExpected); @@ -355,6 +380,8 @@ codeunit 139742 "APIV1 - Pictures E2E" // [FEATURE] [Vendor] // [SCENARIO] Replace the Picture on a Vendor + Initialize(); + // [GIVEN] a Vendor with image attached CreateTestVendorWithImage(Vendor, TempBlobOriginal); GetBlueImageTempBlob(TempBlobExpected); @@ -386,6 +413,8 @@ codeunit 139742 "APIV1 - Pictures E2E" // [FEATURE] [Vendor] // [SCENARIO] Replace the Picture on a Vendor + Initialize(); + // [GIVEN] a Vendor with image attached CreateTestVendorWithImage(Vendor, TempBlobOriginal); GetBlueImageTempBlob(TempBlobExpected); @@ -413,6 +442,8 @@ codeunit 139742 "APIV1 - Pictures E2E" // [FEATURE] [Employee] // [SCENARIO] Get value picture from Employee Record + Initialize(); + // [GIVEN] an Employee with image attached CreateTestEmployeeWithImage(Employee, TempBlobExpected); Commit(); @@ -437,6 +468,8 @@ codeunit 139742 "APIV1 - Pictures E2E" // [FEATURE] [Employee] // [SCENARIO] Get a picture metadata from Employee Record + Initialize(); + // [GIVEN] a Employee with image attached CreateTestEmployeeWithImage(Employee, TempBlobExpected); Commit(); @@ -460,6 +493,8 @@ codeunit 139742 "APIV1 - Pictures E2E" // [FEATURE] [Employee] // [SCENARIO] Get value picture from Employee Record when no image exist + Initialize(); + // [GIVEN] a Employee without image LibraryHumanResource.CreateEmployee(Employee); Commit(); @@ -481,6 +516,8 @@ codeunit 139742 "APIV1 - Pictures E2E" // [FEATURE] [Employee] // [SCENARIO] Get a picture metadata from Employee Record when no image is present + Initialize(); + // [GIVEN] a Employee with image attached LibraryHumanResource.CreateEmployee(Employee); Commit(); @@ -506,6 +543,8 @@ codeunit 139742 "APIV1 - Pictures E2E" // [FEATURE] [Employee] // [SCENARIO] Set Picture on a Employee without picture + Initialize(); + // [GIVEN] a Employee with image attached LibraryHumanResource.CreateEmployee(Employee); GetRedImageTempBlob(TempBlobExpected); @@ -538,6 +577,8 @@ codeunit 139742 "APIV1 - Pictures E2E" // [FEATURE] [Employee] // [SCENARIO] Replace the Picture on a Employee + Initialize(); + // [GIVEN] a Employee with image attached CreateTestEmployeeWithImage(Employee, TempBlobOriginal); GetBlueImageTempBlob(TempBlobExpected); @@ -569,6 +610,8 @@ codeunit 139742 "APIV1 - Pictures E2E" // [FEATURE] [Employee] // [SCENARIO] Replace the Picture on a Employee + Initialize(); + // [GIVEN] a Employee with image attached CreateTestEmployeeWithImage(Employee, TempBlobOriginal); GetBlueImageTempBlob(TempBlobExpected); @@ -596,6 +639,8 @@ codeunit 139742 "APIV1 - Pictures E2E" // [FEATURE] [Item] // [SCENARIO] Get value picture from Item Record + Initialize(); + // [GIVEN] a Item with image attached CreateTestItemWithImage(Item, TempBlobExpected); Commit(); @@ -620,6 +665,8 @@ codeunit 139742 "APIV1 - Pictures E2E" // [FEATURE] [Item] // [SCENARIO] Get a picture metadata from Item Record + Initialize(); + // [GIVEN] a Item with image attached CreateTestItemWithImage(Item, TempBlobExpected); Commit(); @@ -643,6 +690,8 @@ codeunit 139742 "APIV1 - Pictures E2E" // [FEATURE] [Item] // [SCENARIO] Get value picture from Item Record when no image exist + Initialize(); + // [GIVEN] a Item without image LibraryInventory.CreateItem(Item); Commit(); @@ -664,6 +713,8 @@ codeunit 139742 "APIV1 - Pictures E2E" // [FEATURE] [Item] // [SCENARIO] Get a picture metadata from Item Record when no image is present + Initialize(); + // [GIVEN] a Item with image attached LibraryInventory.CreateItem(Item); Commit(); @@ -689,6 +740,8 @@ codeunit 139742 "APIV1 - Pictures E2E" // [FEATURE] [Item] // [SCENARIO] Set Picture on a Item without picture + Initialize(); + // [GIVEN] a Item with image attached LibraryInventory.CreateItem(Item); GetRedImageTempBlob(TempBlobExpected); @@ -721,6 +774,8 @@ codeunit 139742 "APIV1 - Pictures E2E" // [FEATURE] [Item] // [SCENARIO] Replace the Picture on a Item + Initialize(); + // [GIVEN] a Item with image attached CreateTestItemWithImage(Item, TempBlobOriginal); GetBlueImageTempBlob(TempBlobExpected); @@ -752,6 +807,8 @@ codeunit 139742 "APIV1 - Pictures E2E" // [FEATURE] [Item] // [SCENARIO] Replace the Picture on a Item + Initialize(); + // [GIVEN] a Item with image attached CreateTestItemWithImage(Item, TempBlobOriginal); GetBlueImageTempBlob(TempBlobExpected); diff --git a/src/Apps/W1/APIV1/test/src/APIV1PurchaseInvLinesE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1PurchaseInvLinesE2E.Codeunit.al index 5cd446b946c..5dfe3d6e334 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1PurchaseInvLinesE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1PurchaseInvLinesE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139738 "APIV1 - Purchase Inv Lines E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -32,6 +33,7 @@ codeunit 139738 "APIV1 - Purchase Inv Lines E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); IF IsInitialized THEN EXIT; diff --git a/src/Apps/W1/APIV1/test/src/APIV1PurchaseInvoicesE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1PurchaseInvoicesE2E.Codeunit.al index 5e21b1e6434..b29922a53e6 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1PurchaseInvoicesE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1PurchaseInvoicesE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139729 "APIV1 - Purchase Invoices E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -35,6 +36,7 @@ codeunit 139729 "APIV1 - Purchase Invoices E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); end; [Test] diff --git a/src/Apps/W1/APIV1/test/src/APIV1RetEarningsE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1RetEarningsE2E.Codeunit.al index 03b6a564002..73871aa8f9f 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1RetEarningsE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1RetEarningsE2E.Codeunit.al @@ -63,6 +63,7 @@ codeunit 139721 "APIV1 - Ret. Earnings E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); IF IsInitialized THEN EXIT; diff --git a/src/Apps/W1/APIV1/test/src/APIV1SalesCrMemoLinesE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1SalesCrMemoLinesE2E.Codeunit.al index 8b8bbbfb388..0771a66941d 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1SalesCrMemoLinesE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1SalesCrMemoLinesE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139737 "APIV1 - Sales CrMemo Lines E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -31,6 +32,7 @@ codeunit 139737 "APIV1 - Sales CrMemo Lines E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); IF IsInitialized THEN EXIT; diff --git a/src/Apps/W1/APIV1/test/src/APIV1SalesCreditMemosE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1SalesCreditMemosE2E.Codeunit.al index 8c0d4102ab9..1927a6f4047 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1SalesCreditMemosE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1SalesCreditMemosE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139728 "APIV1 - Sales Credit Memos E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -36,6 +37,11 @@ codeunit 139728 "APIV1 - Sales Credit Memos E2E" CreditMemoStatusErr: Label 'The credit memo status is incorrect.'; MailingJobErr: Label 'The mailing job is not created.', Locked = true; + local procedure Initialize() + begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + end; + local procedure InitializeForSending() var TempEmailAccount: Record "Email Account"; @@ -61,6 +67,8 @@ codeunit 139728 "APIV1 - Sales Credit Memos E2E" begin // [SCENARIO] Create posted and unposted sales credit memos and use a GET method to retrieve them + Initialize(); + // [GIVEN] 2 credit memos, one posted and one unposted CreateSalesCreditMemos(CreditMemoNo1, CreditMemoNo2); COMMIT(); @@ -94,6 +102,8 @@ codeunit 139728 "APIV1 - Sales Credit Memos E2E" begin // [SCENARIO] Create posted and unposted Sales credit memos and use HTTP POST to delete them + Initialize(); + // [GIVEN] 2 credit memos, one posted and one unposted LibrarySales.CreateCustomerWithAddress(SellToCustomer); LibrarySales.CreateCustomerWithAddress(BillToCustomer); @@ -139,6 +149,8 @@ codeunit 139728 "APIV1 - Sales Credit Memos E2E" begin // [SCENARIO] Create posted and unposted with specific currency set and use HTTP POST to create them + Initialize(); + // [GIVEN] an CreditMemo with a non-LCY currencyCode set LibrarySales.CreateCustomer(Customer); CustomerNo := Customer."No."; @@ -169,18 +181,24 @@ codeunit 139728 "APIV1 - Sales Credit Memos E2E" [Test] procedure TestModifyCreditMemos() begin + Initialize(); + TestMultipleModifyCreditMemos(FALSE, FALSE); end; [Test] procedure TestEmptyModifyCreditMemos() begin + Initialize(); + TestMultipleModifyCreditMemos(TRUE, FALSE); end; [Test] procedure TestPartialModifyCreditMemos() begin + Initialize(); + TestMultipleModifyCreditMemos(FALSE, TRUE); end; @@ -264,6 +282,8 @@ codeunit 139728 "APIV1 - Sales Credit Memos E2E" begin // [SCENARIO] Create unposted sales credit memo and use HTTP DELETE to delete it + Initialize(); + // [GIVEN] An unposted credit memo CreateDraftSalesCreditMemo(SalesHeader); CreditMemoNo := SalesHeader."No."; @@ -297,6 +317,8 @@ codeunit 139728 "APIV1 - Sales Credit Memos E2E" // [SCENARIO] Create an credit memo both through the client UI and through the API // [SCENARIO] and compare them. They should be the same and have the same fields autocompleted wherever needed. + Initialize(); + // [GIVEN] An unposted credit memo LibraryGraphDocumentTools.InitializeUIPage(); @@ -330,6 +352,8 @@ codeunit 139728 "APIV1 - Sales Credit Memos E2E" begin // [SCENARIO] When an credit memo is created,the GET Method should update the credit memo and assign a total + Initialize(); + // [GIVEN] 2 credit memos, one posted and one unposted without totals assigned LibraryGraphDocumentTools.CreateDocumentWithDiscountPctPending( SalesHeader, DiscountPct, SalesHeader."Document Type"::"Credit Memo"); @@ -363,6 +387,8 @@ codeunit 139728 "APIV1 - Sales Credit Memos E2E" begin // [SCENARIO] When an credit memo is created, the GET Method should update the credit memo and assign a total + Initialize(); + // [GIVEN] 2 credit memos, one posted and one unposted with discount amount that should be redistributed LibraryGraphDocumentTools.CreateDocumentWithDiscountPctPending( SalesHeader, DiscountPct, SalesHeader."Document Type"::"Credit Memo"); @@ -402,6 +428,8 @@ codeunit 139728 "APIV1 - Sales Credit Memos E2E" CreditMemoID: Text; begin // [SCENARIO 184721] Create Credit Memo, use a PATCH method to change it and then verify the changes + Initialize(); + LibrarySales.CreateCustomerWithAddress(Customer); // [GIVEN] an item with unit price and unit cost @@ -449,6 +477,8 @@ codeunit 139728 "APIV1 - Sales Credit Memos E2E" begin // [SCENARIO 184721] Clearing manually set discount + Initialize(); + // [GIVEN] an item with unit price and unit cost LibraryInventory.CreateItemWithUnitPriceAndUnitCost( Item, LibraryRandom.RandDecInRange(1, 100, 2), LibraryRandom.RandDecInRange(1, 100, 2)); @@ -504,6 +534,8 @@ codeunit 139728 "APIV1 - Sales Credit Memos E2E" begin // [SCENARIO] User can post a sales credit memo through the API. + Initialize(); + // [GIVEN] Draft sales credit memo exists CreateDraftSalesCreditMemo(SalesHeader); SetCustomerEmail(SalesHeader."Sell-to Customer No."); @@ -550,6 +582,8 @@ codeunit 139728 "APIV1 - Sales Credit Memos E2E" TargetURL: Text; begin // [SCENARIO] User can post and send a sales credit memo through the API. + Initialize(); + InitializeForSending(); // [GIVEN] Draft sales credit memos exists @@ -589,6 +623,8 @@ codeunit 139728 "APIV1 - Sales Credit Memos E2E" begin // [SCENARIO] User can cancel a posted sales credit memo through API. + Initialize(); + // [GIVEN] Non-corrective sales credit memo exists CreatePostedSalesCreditMemo(SalesCrMemoHeader); SetCustomerEmail(SalesCrMemoHeader."Sell-to Customer No."); @@ -618,6 +654,8 @@ codeunit 139728 "APIV1 - Sales Credit Memos E2E" begin // [SCENARIO] User can cancel a posted sales credit memo through API. + Initialize(); + // [GIVEN] Corrective sales credit memo exists CreateCorrectiveSalesCreditMemo(SalesCrMemoHeader); SetCustomerEmail(SalesCrMemoHeader."Sell-to Customer No."); @@ -650,6 +688,8 @@ codeunit 139728 "APIV1 - Sales Credit Memos E2E" TargetURL: Text; begin // [SCENARIO] User can cancel a posted sales credit memo through API. + Initialize(); + InitializeForSending(); // [GIVEN] Corrective sales credit memo exists @@ -686,6 +726,8 @@ codeunit 139728 "APIV1 - Sales Credit Memos E2E" TargetURL: Text; begin // [SCENARIO] User can send a posted sales credit memo through the API. + Initialize(); + InitializeForSending(); // [GIVEN] Posted sales credit memo exists @@ -718,6 +760,8 @@ codeunit 139728 "APIV1 - Sales Credit Memos E2E" TargetURL: Text; begin // [SCENARIO] Sending a draft sales credit memo through the API throws an error + Initialize(); + InitializeForSending(); // [GIVEN] Draft sales credit memo exists @@ -747,6 +791,8 @@ codeunit 139728 "APIV1 - Sales Credit Memos E2E" TargetURL: Text; begin // [SCENARIO] User can send a draft sales credit memo through the API. + Initialize(); + InitializeForSending(); // [GIVEN] Cancelled sales credit memo exists diff --git a/src/Apps/W1/APIV1/test/src/APIV1SalesInvLinesE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1SalesInvLinesE2E.Codeunit.al index b67e88de4b9..84a3a101c74 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1SalesInvLinesE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1SalesInvLinesE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139734 "APIV1 - Sales Inv. Lines E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -34,6 +35,7 @@ codeunit 139734 "APIV1 - Sales Inv. Lines E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); IF IsInitialized THEN EXIT; diff --git a/src/Apps/W1/APIV1/test/src/APIV1SalesOrderLinesE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1SalesOrderLinesE2E.Codeunit.al index 07d1f7c1259..e883c4d6731 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1SalesOrderLinesE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1SalesOrderLinesE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139735 "APIV1 - Sales Order Lines E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -32,6 +33,7 @@ codeunit 139735 "APIV1 - Sales Order Lines E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); IF IsInitialized THEN EXIT; diff --git a/src/Apps/W1/APIV1/test/src/APIV1SalesOrdersE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1SalesOrdersE2E.Codeunit.al index 9edfcfe77b6..434d52427f1 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1SalesOrdersE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1SalesOrdersE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139711 "APIV1 - Sales Orders E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -41,6 +42,8 @@ codeunit 139711 "APIV1 - Sales Orders E2E" begin // [SCENARIO 184721] Create Sales Orders and use a GET method to retrieve them + Initialize(); + // [GIVEN] 2 orders in the table LibrarySales.CreateSalesOrder(SalesHeader); OrderNo[1] := SalesHeader."No."; @@ -79,6 +82,8 @@ codeunit 139711 "APIV1 - Sales Orders E2E" begin // [SCENARIO 184721] Create sales orders JSON and use HTTP POST to create them + Initialize(); + // [GIVEN] a customer LibrarySales.CreateCustomerWithAddress(SellToCustomer); LibrarySales.CreateCustomerWithAddress(BillToCustomer); @@ -128,6 +133,8 @@ codeunit 139711 "APIV1 - Sales Orders E2E" begin // [SCENARIO 184721] Create sales order for customer with location and use HTTP POST to create it + Initialize(); + // [GIVEN] an order with customer with location code LibrarySales.CreateCustomer(Customer); LibraryWarehouse.CreateLocation(Location); @@ -171,6 +178,8 @@ codeunit 139711 "APIV1 - Sales Orders E2E" begin // [SCENARIO 184721] Create sales order with specific currency set and use HTTP POST to create it + Initialize(); + // [GIVEN] an order with a non-LCY currencyCode set LibrarySales.CreateCustomer(Customer); CustomerNo := Customer."No."; @@ -204,21 +213,32 @@ codeunit 139711 "APIV1 - Sales Orders E2E" [Test] procedure TestModifyOrders() begin + Initialize(); + TestMultipleModifyOrders(false, false); end; [Test] procedure TestEmptyModifyOrders() begin + Initialize(); + TestMultipleModifyOrders(true, false); end; [Test] procedure TestPartialModifyOrders() begin + Initialize(); + TestMultipleModifyOrders(false, true); end; + local procedure Initialize() + begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + end; + local procedure TestMultipleModifyOrders(EmptyData: Boolean; PartiallyEmptyData: Boolean) var SellToCustomer: Record "Customer"; @@ -292,6 +312,8 @@ codeunit 139711 "APIV1 - Sales Orders E2E" begin // [SCENARIO 184721] Create sales orders and use HTTP DELETE to delete them + Initialize(); + // [GIVEN] 2 orders in the table LibrarySales.CreateSalesOrder(SalesHeader); OrderNo[1] := SalesHeader."No."; @@ -337,6 +359,8 @@ codeunit 139711 "APIV1 - Sales Orders E2E" OrderWithComplexJSON: Text; begin // [SCENARIO 184721] Create an order both through the client UI and through the API and compare them. They should be the same and have the same fields autocompleted wherever needed. + Initialize(); + LibraryGraphDocumentTools.InitializeUIPage(); // [GIVEN] a customer @@ -397,6 +421,8 @@ codeunit 139711 "APIV1 - Sales Orders E2E" begin // [SCENARIO 184721] When an order is created, the GET Method should update the order and assign a total + Initialize(); + // [GIVEN] an order without totals assigned LibraryGraphDocumentTools.CreateDocumentWithDiscountPctPending(SalesHeader, DiscountPct, SalesHeader."Document Type"::Order); SalesHeader.CalcFields("Recalculate Invoice Disc."); @@ -427,6 +453,8 @@ codeunit 139711 "APIV1 - Sales Orders E2E" begin // [SCENARIO 184721] When an order is created, the GET Method should update the order and redistribute the discount amount + Initialize(); + // [GIVEN] an order with discount amount that should be redistributed LibraryGraphDocumentTools.CreateDocumentWithDiscountPctPending(SalesHeader, DiscountPct, SalesHeader."Document Type"::Order); SalesHeader.CalcFields(Amount); @@ -462,6 +490,8 @@ codeunit 139711 "APIV1 - Sales Orders E2E" begin // [SCENARIO 184721] Create Sales Order, use a PATCH method to change it and then verify the changes + Initialize(); + // [GIVEN] an order with lines CreateOrderWithLines(SalesHeader); OrderId := SalesHeader.SystemId; @@ -498,6 +528,8 @@ codeunit 139711 "APIV1 - Sales Orders E2E" begin // [SCENARIO 184721] Clearing manually set discount + Initialize(); + // [GIVEN] an order CreateOrderWithLines(SalesHeader); OrderNo := SalesHeader."No."; @@ -534,6 +566,8 @@ codeunit 139711 "APIV1 - Sales Orders E2E" begin // [SCENARIO] User can ship and invoice a sales order through the API. + Initialize(); + // [GIVEN] a sales order with lines CreateOrderWithLines(SalesHeader); OrderId := SalesHeader.SystemId; diff --git a/src/Apps/W1/APIV1/test/src/APIV1SalesQuoteLinesE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1SalesQuoteLinesE2E.Codeunit.al index 35835ff980c..9c3ca0feb82 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1SalesQuoteLinesE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1SalesQuoteLinesE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139736 "APIV1 - Sales Quote Lines E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -30,6 +31,7 @@ codeunit 139736 "APIV1 - Sales Quote Lines E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); IF IsInitialized THEN EXIT; diff --git a/src/Apps/W1/APIV1/test/src/APIV1SalesQuotesE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1SalesQuotesE2E.Codeunit.al index fb10603a493..7c86c30d990 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1SalesQuotesE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1SalesQuotesE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139723 "APIV1 - Sales Quotes E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -40,6 +41,11 @@ codeunit 139723 "APIV1 - Sales Quotes E2E" InvoiceIdErr: Label 'The invoice ID should differ from the quote ID.', Locked = true; MailingJobErr: Label 'The mailing job is not created.', Locked = true; + local procedure Initialize() + begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + end; + local procedure InitializeForSending() var TempEmailAccount: Record "Email Account"; @@ -65,6 +71,8 @@ codeunit 139723 "APIV1 - Sales Quotes E2E" begin // [SCENARIO] Create Sales Quotes and use a GET method to retrieve them + Initialize(); + // [GIVEN] 2 quotes in the table CreateSalesQuoteWithLines(SalesHeader); QuoteID[1] := SalesHeader."No."; @@ -103,6 +111,8 @@ codeunit 139723 "APIV1 - Sales Quotes E2E" begin // [SCENARIO] Create sales quotes JSON and use HTTP POST to create them + Initialize(); + // [GIVEN] a customer LibrarySales.CreateCustomerWithAddress(SellToCustomer); LibrarySales.CreateCustomerWithAddress(ShipToCustomer); @@ -148,6 +158,8 @@ codeunit 139723 "APIV1 - Sales Quotes E2E" begin // [SCENARIO] Create sales quote with specific currency set and use HTTP POST to create it + Initialize(); + // [GIVEN] a quote with a non-LCY currencyCode set LibrarySales.CreateCustomer(Customer); CustomerNo := Customer."No."; @@ -177,18 +189,24 @@ codeunit 139723 "APIV1 - Sales Quotes E2E" [Test] procedure TestModifyQuotes() begin + Initialize(); + TestMultipleModifyQuotes(false, false); end; [Test] procedure TestEmptyModifyQuotes() begin + Initialize(); + TestMultipleModifyQuotes(true, false); end; [Test] procedure TestPartialModifyQuotes() begin + Initialize(); + TestMultipleModifyQuotes(false, true); end; @@ -282,6 +300,8 @@ codeunit 139723 "APIV1 - Sales Quotes E2E" begin // [SCENARIO] Create sales quotes and use HTTP DELETE to delete them + Initialize(); + // [GIVEN] 2 quotes in the table CreateSalesQuoteWithLines(SalesHeader); QuoteID[1] := SalesHeader."No."; @@ -327,6 +347,8 @@ codeunit 139723 "APIV1 - Sales Quotes E2E" QuoteExists: Boolean; begin // [SCENARIO] Create a quote both through the client UI and through the API and compare them. They should be the same and have the same fields autocompleted wherever needed. + Initialize(); + LibraryGraphDocumentTools.InitializeUIPage(); // [GIVEN] a customer @@ -382,6 +404,8 @@ codeunit 139723 "APIV1 - Sales Quotes E2E" begin // [SCENARIO] When a quote is created, the GET Method should update the quote and assign a total + Initialize(); + // [GIVEN] a quote without totals assigned LibraryGraphDocumentTools.CreateDocumentWithDiscountPctPending(SalesHeader, DiscountPct, SalesHeader."Document Type"::Quote); SalesHeader.CalcFields("Recalculate Invoice Disc."); @@ -412,6 +436,8 @@ codeunit 139723 "APIV1 - Sales Quotes E2E" begin // [SCENARIO] When a quote is created, the GET Method should update the quote and redistribute the discount amount + Initialize(); + // [GIVEN] a quote with discount amount that should be redistributed LibraryGraphDocumentTools.CreateDocumentWithDiscountPctPending(SalesHeader, DiscountPct, SalesHeader."Document Type"::Quote); SalesHeader.CalcFields(Amount); @@ -448,6 +474,8 @@ codeunit 139723 "APIV1 - Sales Quotes E2E" QuoteID: Text; begin // [SCENARIO 184721] Create Sales Quote, use a PATCH method to change it and then verify the changes + Initialize(); + LibrarySales.CreateCustomerWithAddress(Customer); // [GIVEN] an item with unit price and unit cost @@ -495,6 +523,8 @@ codeunit 139723 "APIV1 - Sales Quotes E2E" begin // [SCENARIO 184721] Clearing manually set discount + Initialize(); + // [GIVEN] an item with unit price and unit cost LibraryInventory.CreateItemWithUnitPriceAndUnitCost( Item, LibraryRandom.RandDecInRange(1, 100, 2), LibraryRandom.RandDecInRange(1, 100, 2)); @@ -542,6 +572,8 @@ codeunit 139723 "APIV1 - Sales Quotes E2E" TargetURL: Text; begin // [SCENARIO] User can send a sales quote through the API. + Initialize(); + InitializeForSending(); // [GIVEN] Draft sales quote exists @@ -586,6 +618,8 @@ codeunit 139723 "APIV1 - Sales Quotes E2E" begin // [SCENARIO] User can convert a sales quote to a sales invoice through the API. + Initialize(); + // [GIVEN] Sales quote exists CreateSalesQuoteWithLines(SalesHeader); CreateEmailParameters(SalesHeader); @@ -644,6 +678,8 @@ codeunit 139723 "APIV1 - Sales Quotes E2E" begin // [SCENARIO] User can convert a sales quote to a sales order through the API. + Initialize(); + // [GIVEN] Sales quote exists CreateSalesQuoteWithLines(SalesHeader); CreateEmailParameters(SalesHeader); diff --git a/src/Apps/W1/APIV1/test/src/APIV1ShipmentMethodsE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1ShipmentMethodsE2E.Codeunit.al index 13814542fc0..a58621f89b0 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1ShipmentMethodsE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1ShipmentMethodsE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139705 "APIV1 - Shipment Methods E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestPermissions = Disabled; trigger OnRun() @@ -22,6 +23,7 @@ codeunit 139705 "APIV1 - Shipment Methods E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); IF IsInitialized THEN EXIT; diff --git a/src/Apps/W1/APIV1/test/src/APIV1TaxAreasE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1TaxAreasE2E.Codeunit.al index d6ce072b439..4ac5709aead 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1TaxAreasE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1TaxAreasE2E.Codeunit.al @@ -25,6 +25,7 @@ codeunit 139726 "APIV1 - Tax Areas E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); IF IsInitialized THEN EXIT; diff --git a/src/Apps/W1/APIV1/test/src/APIV1TrialBalanceE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1TrialBalanceE2E.Codeunit.al index 51be63780a9..7afc175b316 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1TrialBalanceE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1TrialBalanceE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139718 "APIV1 - Trial Balance E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestPermissions = Disabled; trigger OnRun() @@ -61,6 +62,7 @@ codeunit 139718 "APIV1 - Trial Balance E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); IF IsInitialized THEN EXIT; diff --git a/src/Apps/W1/APIV1/test/src/APIV1UofME2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1UofME2E.Codeunit.al index e9ab14f0726..b8e6d016dae 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1UofME2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1UofME2E.Codeunit.al @@ -27,6 +27,8 @@ codeunit 139712 "APIV1 - UofM E2E" begin // [SCENARIO] User can get the units of measure. + Initialize(); + // [GIVEN] Units of measure. GenerateUnitsOfMeasure(UnitOfMeasure, 5); @@ -47,6 +49,8 @@ codeunit 139712 "APIV1 - UofM E2E" begin // [SCENARIO] User can update a unit of measure. + Initialize(); + // [GIVEN] Units of measure. GenerateUnitsOfMeasure(UnitOfMeasure, 5); @@ -76,6 +80,8 @@ codeunit 139712 "APIV1 - UofM E2E" begin // [SCENARIO] User can delete a unit of measure. + Initialize(); + // [GIVEN] Units of measure. GenerateUnitsOfMeasure(UnitOfMeasure, 5); @@ -97,6 +103,8 @@ codeunit 139712 "APIV1 - UofM E2E" begin // [SCENARIO] User can insert a unit of measure. + Initialize(); + // [GIVEN] A new unit of measure. GenerateUnitOfMeasure(UnitOfMeasure); Request := CreateInsertUnitOfMeasureRequest(UnitOfMeasure); @@ -112,6 +120,11 @@ codeunit 139712 "APIV1 - UofM E2E" ValidateUnitOfMeasure(UnitOfMeasure, Response); end; + local procedure Initialize() + begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + end; + local procedure GenerateUnitsOfMeasure(var UnitOfMeasure: Record "Unit of Measure"; "Count": Integer) var i: Integer; diff --git a/src/Apps/W1/APIV1/test/src/APIV1VendorsE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/APIV1VendorsE2E.Codeunit.al index 5ab8a3d6d89..94b53ca197f 100644 --- a/src/Apps/W1/APIV1/test/src/APIV1VendorsE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/APIV1VendorsE2E.Codeunit.al @@ -26,6 +26,7 @@ codeunit 139703 "APIV1 - Vendors E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); IF IsInitialized THEN EXIT; diff --git a/src/Apps/W1/APIV1/test/src/CountriesRegionsE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/CountriesRegionsE2E.Codeunit.al index 453612f7a42..20bd0fcb225 100644 --- a/src/Apps/W1/APIV1/test/src/CountriesRegionsE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/CountriesRegionsE2E.Codeunit.al @@ -156,6 +156,7 @@ codeunit 139710 "Countries/Regions E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); IF IsInitialized THEN EXIT; diff --git a/src/Apps/W1/APIV1/test/src/PaymentMethodsE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/PaymentMethodsE2E.Codeunit.al index e18078a2a03..5a434f3231d 100644 --- a/src/Apps/W1/APIV1/test/src/PaymentMethodsE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/PaymentMethodsE2E.Codeunit.al @@ -156,6 +156,7 @@ codeunit 139714 "Payment Methods E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); IF IsInitialized THEN EXIT; diff --git a/src/Apps/W1/APIV1/test/src/SalesInvoicesE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/SalesInvoicesE2E.Codeunit.al index 6bd99716a29..72437b7152f 100644 --- a/src/Apps/W1/APIV1/test/src/SalesInvoicesE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/SalesInvoicesE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139709 "Sales Invoices E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -49,6 +50,11 @@ codeunit 139709 "Sales Invoices E2E" NotEmptyParameterErr: Label 'Email parameter %1 is not empty.', Locked = true; MailingJobErr: Label 'The mailing job is not created.', Locked = true; + local procedure Initialize() + begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + end; + local procedure InitializeForSending() var TempEmailAccount: Record "Email Account"; @@ -74,6 +80,8 @@ codeunit 139709 "Sales Invoices E2E" begin // [SCENARIO 184721] Create posted and unposted Sales invoices and use a GET method to retrieve them + Initialize(); + // [GIVEN] 2 invoices, one posted and one unposted CreateSalesInvoices(InvoiceID1, InvoiceID2); COMMIT(); @@ -107,6 +115,8 @@ codeunit 139709 "Sales Invoices E2E" InvoiceWithComplexJSON: Text; begin // [SCENARIO 184721] Create posted and unposted Sales invoices and use HTTP POST to delete them + Initialize(); + // [GIVEN] 2 invoices, one posted and one unposted LibrarySales.CreateCustomer(SellToCustomer); @@ -158,6 +168,8 @@ codeunit 139709 "Sales Invoices E2E" begin // [SCENARIO 184721] Create posted and unposted with specific currency set and use HTTP POST to create them + Initialize(); + // [GIVEN] an Invoice with a non-LCY currencyCode set LibrarySales.CreateCustomer(Customer); CustomerNo := Customer."No."; @@ -204,6 +216,8 @@ codeunit 139709 "Sales Invoices E2E" CurrencyCode: Code[10]; begin // [SCENARIO 285872] Create posted and unposted with specific email set and use HTTP POST to create them + Initialize(); + Email := 'test@microsoft.com'; // [GIVEN] an Customer with no email set @@ -257,6 +271,8 @@ codeunit 139709 "Sales Invoices E2E" begin // [SCENARIO 184721] Create unposted with specific document and due date set and use HTTP POST to create them + Initialize(); + // [GIVEN] an Invoice with a document and due date set LibrarySales.CreateCustomer(Customer); CustomerNo := Customer."No."; @@ -295,18 +311,24 @@ codeunit 139709 "Sales Invoices E2E" [Test] procedure TestModifyInvoices() begin + Initialize(); + TestMultipleModifyInvoices(FALSE, FALSE); end; [Test] procedure TestEmptyModifyInvoices() begin + Initialize(); + TestMultipleModifyInvoices(TRUE, FALSE); end; [Test] procedure TestPartialModifyInvoices() begin + Initialize(); + TestMultipleModifyInvoices(FALSE, TRUE); end; @@ -406,6 +428,8 @@ codeunit 139709 "Sales Invoices E2E" InvoiceWithBlanksJSON: Text; begin // [SCENARIO 184721] Create Sales Invoice with all the Ids filled, use a PATCH method to blank the Ids and the Codes + Initialize(); + LibrarySales.CreateCustomerWithAddress(Customer); // [GIVEN] a currency @@ -471,6 +495,8 @@ codeunit 139709 "Sales Invoices E2E" begin // [SCENARIO 184721] Create draft invoice and issue a patch request to change the number + Initialize(); + // [GIVEN] 1 draft invoice and a json with a new number LibrarySales.CreateSalesInvoice(SalesHeader); NewInvoiceNumber := COPYSTR(CREATEGUID(), 1, MAXSTRLEN(SalesHeader."No.")); @@ -494,6 +520,8 @@ codeunit 139709 "Sales Invoices E2E" begin // [SCENARIO 184721] Create unposted Sales invoice and use HTTP DELETE to delete it + Initialize(); + // [GIVEN] An unposted invoice CreateDraftSalesInvoice(SalesHeader); InvoiceID := SalesHeader."No."; @@ -533,6 +561,8 @@ codeunit 139709 "Sales Invoices E2E" // [SCENARIO 184721] Create an invoice both through the client UI and through the API // [SCENARIO] and compare them. They should be the same and have the same fields autocompleted wherever needed. + Initialize(); + // [GIVEN] An unposted invoice LibraryGraphDocumentTools.InitializeUIPage(); LibraryApplicationArea.DisableApplicationAreaSetup(); @@ -595,6 +625,8 @@ codeunit 139709 "Sales Invoices E2E" begin // [SCENARIO 184721] When an invoice is created,the GET Method should update the invoice and assign a total + Initialize(); + // [GIVEN] 2 invoices, one posted and one unposted without totals assigned LibraryGraphDocumentTools.CreateDocumentWithDiscountPctPending( SalesHeader, DiscountPct, SalesHeader."Document Type"::Invoice); @@ -628,6 +660,8 @@ codeunit 139709 "Sales Invoices E2E" begin // [SCENARIO 184721] When an invoice is created, the GET Method should update the invoice and assign a total + Initialize(); + // [GIVEN] 2 invoices, one posted and one unposted with discount amount that should be redistributed LibraryGraphDocumentTools.CreateDocumentWithDiscountPctPending( SalesHeader, DiscountPct, SalesHeader."Document Type"::Invoice); @@ -664,6 +698,8 @@ codeunit 139709 "Sales Invoices E2E" begin // [SCENARIO 184721] Create an invoice wihtout Customer throws an error + Initialize(); + // [GIVEN] a sales invoice JSON with currency only Currency.SETFILTER(Code, '<>%1', ''); Currency.FINDFIRST(); @@ -691,6 +727,8 @@ codeunit 139709 "Sales Invoices E2E" InvoiceID: Text; begin // [SCENARIO 184721] Create Sales Invoice, use a PATCH method to change it and then verify the changes + Initialize(); + LibrarySales.CreateCustomerWithAddress(Customer); // [GIVEN] an item with unit price and unit cost @@ -738,6 +776,8 @@ codeunit 139709 "Sales Invoices E2E" begin // [SCENARIO 184721] Clearing manually set discount + Initialize(); + // [GIVEN] an item with unit price and unit cost LibraryInventory.CreateItemWithUnitPriceAndUnitCost( Item, LibraryRandom.RandDecInRange(1, 100, 2), LibraryRandom.RandDecInRange(1, 100, 2)); @@ -794,6 +834,8 @@ codeunit 139709 "Sales Invoices E2E" begin // [SCENARIO] User can post a sales invoice through the API. + Initialize(); + // [GIVEN] Draft sales invoice exists CreateDraftSalesInvoice(SalesHeader); DraftInvoiceRecordRef.GetTable(SalesHeader); @@ -839,6 +881,8 @@ codeunit 139709 "Sales Invoices E2E" TargetURL: Text; begin // [SCENARIO] User can post and send a sales invoice through the API. + Initialize(); + InitializeForSending(); // [GIVEN] Draft sales invoice exists @@ -878,6 +922,8 @@ codeunit 139709 "Sales Invoices E2E" begin // [SCENARIO] User can cancel a posted sales invoice through API. + Initialize(); + // [GIVEN] Posted sales invoice exists CreatePostedSalesInvoice(SalesInvoiceHeader); SetCustomerEmail(SalesInvoiceHeader."Sell-to Customer No."); @@ -913,6 +959,8 @@ codeunit 139709 "Sales Invoices E2E" TargetURL: Text; begin // [SCENARIO] User can cancel a posted sales invoice through API. + Initialize(); + InitializeForSending(); // [GIVEN] Posted sales invoice exists @@ -953,6 +1001,8 @@ codeunit 139709 "Sales Invoices E2E" TargetURL: Text; begin // [SCENARIO] User can send a posted sales invoice through the API. + Initialize(); + InitializeForSending(); // [GIVEN] Posted sales invoice exists @@ -985,6 +1035,8 @@ codeunit 139709 "Sales Invoices E2E" TargetURL: Text; begin // [SCENARIO] User can send a draft sales invoice through the API. + Initialize(); + InitializeForSending(); // [GIVEN] Draft sales invoice exists @@ -1017,6 +1069,8 @@ codeunit 139709 "Sales Invoices E2E" TargetURL: Text; begin // [SCENARIO] User can send a draft sales invoice through the API. + Initialize(); + InitializeForSending(); // [GIVEN] Cancelled sales invoice exists @@ -1058,6 +1112,8 @@ codeunit 139709 "Sales Invoices E2E" begin // [SCENARIO] User can create a corrective credit memo for the posted sales invoice through the API. + Initialize(); + // [GIVEN] A posted sales invoice exists CreatePostedSalesInvoice(SalesInvoiceHeader); PostedInvoiceRecordRef.GetTable(SalesInvoiceHeader); diff --git a/src/Apps/W1/APIV1/test/src/TaxGroupsE2E.Codeunit.al b/src/Apps/W1/APIV1/test/src/TaxGroupsE2E.Codeunit.al index e49018b97d4..f9583043cd0 100644 --- a/src/Apps/W1/APIV1/test/src/TaxGroupsE2E.Codeunit.al +++ b/src/Apps/W1/APIV1/test/src/TaxGroupsE2E.Codeunit.al @@ -24,6 +24,7 @@ codeunit 139708 "Tax Groups E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); IF IsInitialized THEN EXIT; diff --git a/src/Apps/W1/APIV2/test/src/APIV2AccountingPeriodsE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2AccountingPeriodsE2E.Codeunit.al index ea1349f5dc9..6042c25de42 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2AccountingPeriodsE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2AccountingPeriodsE2E.Codeunit.al @@ -17,6 +17,8 @@ codeunit 139859 "APIV2 - Accounting Periods E2E" TargetURL: Text; i: Integer; begin + Initialize(); + // [SCENARIO] Use a GET method to retrieve all accounting periods // [GIVEN] Accounting Periods for i := 1 to 10 do @@ -75,4 +77,9 @@ codeunit 139859 "APIV2 - Accounting Periods E2E" AccountingPeriod.Insert(true); end; + + local procedure Initialize() + begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + end; } diff --git a/src/Apps/W1/APIV2/test/src/APIV2AccountsE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2AccountsE2E.Codeunit.al index a3792b2c641..eb54ffa9ba3 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2AccountsE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2AccountsE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139801 "APIV2 - Accounts E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestPermissions = Disabled; trigger OnRun() @@ -20,6 +21,8 @@ codeunit 139801 "APIV2 - Accounts E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2AgedAPE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2AgedAPE2E.Codeunit.al index d6a90f50bb2..b5ec4d1e725 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2AgedAPE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2AgedAPE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139819 "APIV2 - Aged AP E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestPermissions = Disabled; trigger OnRun() @@ -61,6 +62,8 @@ codeunit 139819 "APIV2 - Aged AP E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2AgedARE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2AgedARE2E.Codeunit.al index 6b999ba2882..34b57d3189a 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2AgedARE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2AgedARE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139820 "APIV2 - Aged AR E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestPermissions = Disabled; trigger OnRun() @@ -61,6 +62,8 @@ codeunit 139820 "APIV2 - Aged AR E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2ApplyVendorEntE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2ApplyVendorEntE2E.Codeunit.al index fa8441c5d0e..4790aef0d5a 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2ApplyVendorEntE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2ApplyVendorEntE2E.Codeunit.al @@ -2,6 +2,7 @@ codeunit 139867 "APIV2 - Apply Vendor Ent. E2E" { Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -171,6 +172,8 @@ codeunit 139867 "APIV2 - Apply Vendor Ent. E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + LibraryTestInitialize.OnTestInitialize(Codeunit::"APIV2 - Apply Vendor Ent. E2E"); if not isInitialized then diff --git a/src/Apps/W1/APIV2/test/src/APIV2AssemblyOrdersE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2AssemblyOrdersE2E.Codeunit.al index e437b6b483c..928a3d91374 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2AssemblyOrdersE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2AssemblyOrdersE2E.Codeunit.al @@ -27,6 +27,8 @@ codeunit 139925 "APIV2 - Assembly Orders E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] Create an assembly order and use GET to retrieve it // [GIVEN] An assembly order LibraryInventory.CreateItem(Item); @@ -49,6 +51,8 @@ codeunit 139925 "APIV2 - Assembly Orders E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] Create an assembly order and GET it by SystemId // [GIVEN] An assembly order LibraryInventory.CreateItem(Item); @@ -73,6 +77,8 @@ codeunit 139925 "APIV2 - Assembly Orders E2E" TargetURL: Text; DimensionSetValue: Text; begin + Initialize(); + // [SCENARIO] GET an assembly order with $expand=dimensionSetLines // [GIVEN] An assembly order if not AssemblyHeader.FindFirst() then begin @@ -100,6 +106,8 @@ codeunit 139925 "APIV2 - Assembly Orders E2E" TargetURL: Text; AttachmentsValue: Text; begin + Initialize(); + // [SCENARIO] GET an assembly order with $expand=attachments // [GIVEN] An assembly order if not AssemblyHeader.FindFirst() then begin @@ -127,6 +135,8 @@ codeunit 139925 "APIV2 - Assembly Orders E2E" TargetURL: Text; DocumentAttachmentsValue: Text; begin + Initialize(); + // [SCENARIO] GET an assembly order with $expand=documentAttachments // [GIVEN] An assembly order if not AssemblyHeader.FindFirst() then begin @@ -154,6 +164,8 @@ codeunit 139925 "APIV2 - Assembly Orders E2E" TargetURL: Text; PdfDocumentValue: Text; begin + Initialize(); + // [SCENARIO] GET an assembly order with $expand=pdfDocument // [GIVEN] An assembly order if not AssemblyHeader.FindFirst() then begin @@ -181,6 +193,8 @@ codeunit 139925 "APIV2 - Assembly Orders E2E" TargetURL: Text; LinesValue: Text; begin + Initialize(); + // [SCENARIO] GET an assembly order with $expand=assemblyOrderLines // [GIVEN] An assembly order if not AssemblyHeader.FindFirst() then begin @@ -205,4 +219,9 @@ codeunit 139925 "APIV2 - Assembly Orders E2E" exit(TargetURL + '&$expand=' + ExpandValue); exit(TargetURL + '?$expand=' + ExpandValue); end; + + local procedure Initialize() + begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + end; } diff --git a/src/Apps/W1/APIV2/test/src/APIV2AttachmentsE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2AttachmentsE2E.Codeunit.al index 04dd9346323..e0c8637a3c3 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2AttachmentsE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2AttachmentsE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139833 "APIV2 - Attachments E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -43,6 +44,8 @@ codeunit 139833 "APIV2 - Attachments E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve all records from the Attachments API. // [GIVEN] 2 Attachments in the Incoming Document Attachment table CreateGenJournalLine(DocumentRecordRef); @@ -66,6 +69,8 @@ codeunit 139833 "APIV2 - Attachments E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve all records from the Attachments API. // [GIVEN] 2 Attachments in the Incoming Document Attachment table GLEntryGuid := CreateGLEntry(DocumentRecordRef); @@ -89,6 +94,8 @@ codeunit 139833 "APIV2 - Attachments E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve all records from the Attachments API. // [GIVEN] 2 Attachments in the Incoming Document Attachment table CreatePostedSalesInvoice(DocumentRecordRef, DocumentId); @@ -111,6 +118,8 @@ codeunit 139833 "APIV2 - Attachments E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve all records from the Attachments API. // [GIVEN] 2 Attachments in the Incoming Document Attachment table CreateDraftSalesInvoice(DocumentRecordRef); @@ -133,6 +142,8 @@ codeunit 139833 "APIV2 - Attachments E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve all records from the Attachments API. // [GIVEN] 2 Attachments in the Incoming Document Attachment table CreateDraftSalesOrder(DocumentRecordRef); @@ -157,6 +168,8 @@ codeunit 139833 "APIV2 - Attachments E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve all records from the Attachments API. // [GIVEN] 2 Attachments in the Incoming Document Attachment table CreatePostedPurchaseInvoice(DocumentRecordRef, DocumentId); @@ -179,6 +192,8 @@ codeunit 139833 "APIV2 - Attachments E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve all records from the Attachments API. // [GIVEN] 2 Attachments in the Incoming Document Attachment table CreateDraftPurchaseInvoice(DocumentRecordRef); @@ -201,6 +216,8 @@ codeunit 139833 "APIV2 - Attachments E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve all records from the Attachments API. // [GIVEN] 2 Attachments in the Incoming Document Attachment table CreateSalesQuote(DocumentRecordRef); @@ -223,6 +240,8 @@ codeunit 139833 "APIV2 - Attachments E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve the Attachment record from the Attachment API. // [GIVEN] Attachment exists in the Incoming Document Attachment table CreateGenJournalLine(DocumentRecordRef); @@ -247,6 +266,8 @@ codeunit 139833 "APIV2 - Attachments E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve the Attachment record from the Attachment API. // [GIVEN] Attachment exists in the Incoming Document Attachment table JournalName := LibraryUtility.GenerateRandomCode(GenJournalBatch.FieldNo(Name), Database::"Gen. Journal Batch"); @@ -273,6 +294,8 @@ codeunit 139833 "APIV2 - Attachments E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve the Attachment record from the Attachment API. // [GIVEN] Attachment exists in the Incoming Document Attachment table CreateGLEntry(DocumentRecordRef); @@ -296,6 +319,8 @@ codeunit 139833 "APIV2 - Attachments E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve the Attachment record from the Attachment API. // [GIVEN] Attachment exists in the Incoming Document Attachment table CreatePostedSalesInvoice(DocumentRecordRef, DocumentId); @@ -318,6 +343,8 @@ codeunit 139833 "APIV2 - Attachments E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve the Attachment record from the Attachment API. // [GIVEN] Attachment exists in the Incoming Document Attachment table CreateDraftSalesInvoice(DocumentRecordRef); @@ -340,6 +367,8 @@ codeunit 139833 "APIV2 - Attachments E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve the Attachment record from the Attachment API. // [GIVEN] Attachment exists in the Incoming Document Attachment table CreateDraftSalesOrder(DocumentRecordRef); @@ -362,6 +391,8 @@ codeunit 139833 "APIV2 - Attachments E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve the Attachment record from the Attachment API. // [GIVEN] Attachment exists in the Incoming Document Attachment table CreateSalesQuote(DocumentRecordRef); @@ -384,6 +415,8 @@ codeunit 139833 "APIV2 - Attachments E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve all records from the Attachments API. // [GIVEN] 2 Attachments in the Incoming Document Attachment table CreateDraftPurchaseOrder(DocumentRecordRef); @@ -410,6 +443,8 @@ codeunit 139833 "APIV2 - Attachments E2E" ExpectedBase64Content: Text; ActualBase64Content: Text; begin + Initialize(); + // [SCENARIO] User can update linked attachment binary content through the Attachment API. // [GIVEN] A linked attachment exists CreateGenJournalLine(DocumentRecordRef); @@ -443,6 +478,8 @@ codeunit 139833 "APIV2 - Attachments E2E" ExpectedBase64Content: Text; ActualBase64Content: Text; begin + Initialize(); + // [SCENARIO] User can update linked attachment binary content through the Attachment API. // [GIVEN] A linked attachment exists CreateGLEntry(DocumentRecordRef); @@ -469,6 +506,8 @@ codeunit 139833 "APIV2 - Attachments E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateGenJournalLine(DocumentRecordRef); TestCreateAttachment(DocumentRecordRef); end; @@ -478,6 +517,8 @@ codeunit 139833 "APIV2 - Attachments E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateGLEntry(DocumentRecordRef); TestCreateGLEAttachment(DocumentRecordRef); end; @@ -488,6 +529,8 @@ codeunit 139833 "APIV2 - Attachments E2E" DocumentRecordRef: RecordRef; DocumentId: Guid; begin + Initialize(); + CreatePostedSalesInvoice(DocumentRecordRef, DocumentId); TestCreateAttachment(DocumentRecordRef); end; @@ -497,6 +540,8 @@ codeunit 139833 "APIV2 - Attachments E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateDraftSalesInvoice(DocumentRecordRef); TestCreateAttachment(DocumentRecordRef); end; @@ -506,6 +551,8 @@ codeunit 139833 "APIV2 - Attachments E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateDraftSalesOrder(DocumentRecordRef); TestCreateAttachment(DocumentRecordRef); end; @@ -516,6 +563,8 @@ codeunit 139833 "APIV2 - Attachments E2E" DocumentRecordRef: RecordRef; DocumentId: Guid; begin + Initialize(); + CreatePostedPurchaseInvoice(DocumentRecordRef, DocumentId); TestCreateAttachment(DocumentRecordRef); end; @@ -525,6 +574,8 @@ codeunit 139833 "APIV2 - Attachments E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateDraftPurchaseInvoice(DocumentRecordRef); TestCreateAttachment(DocumentRecordRef); end; @@ -534,6 +585,8 @@ codeunit 139833 "APIV2 - Attachments E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateDraftPurchaseOrder(DocumentRecordRef); TestCreateAttachment(DocumentRecordRef); end; @@ -635,6 +688,8 @@ codeunit 139833 "APIV2 - Attachments E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateSalesQuote(DocumentRecordRef); TestCreateAttachment(DocumentRecordRef); end; @@ -644,6 +699,8 @@ codeunit 139833 "APIV2 - Attachments E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateGenJournalLine(DocumentRecordRef); TestDeleteAttachment(DocumentRecordRef); end; @@ -653,6 +710,8 @@ codeunit 139833 "APIV2 - Attachments E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateGLEntry(DocumentRecordRef); TestDeleteGLEAttachment(DocumentRecordRef); end; @@ -663,6 +722,8 @@ codeunit 139833 "APIV2 - Attachments E2E" DocumentRecordRef: RecordRef; DocumentId: Guid; begin + Initialize(); + CreatePostedSalesInvoice(DocumentRecordRef, DocumentId); TestDeleteAttachment2(DocumentRecordRef); end; @@ -672,6 +733,8 @@ codeunit 139833 "APIV2 - Attachments E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateDraftSalesInvoice(DocumentRecordRef); TestDeleteAttachment(DocumentRecordRef); end; @@ -682,6 +745,8 @@ codeunit 139833 "APIV2 - Attachments E2E" DocumentRecordRef: RecordRef; DocumentId: Guid; begin + Initialize(); + CreatePostedPurchaseInvoice(DocumentRecordRef, DocumentId); TestDeleteAttachment2(DocumentRecordRef); end; @@ -691,6 +756,8 @@ codeunit 139833 "APIV2 - Attachments E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateDraftPurchaseInvoice(DocumentRecordRef); TestDeleteAttachment(DocumentRecordRef); end; @@ -700,6 +767,8 @@ codeunit 139833 "APIV2 - Attachments E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateSalesQuote(DocumentRecordRef); TestDeleteAttachment(DocumentRecordRef); end; @@ -774,6 +843,8 @@ codeunit 139833 "APIV2 - Attachments E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] The Attachment is transferred from a Draft Invoice the to Posted Invoice after posting. // [GIVEN] A draft sales invoice exists. CreateDraftSalesInvoice(DocumentRecordRef); @@ -814,6 +885,8 @@ codeunit 139833 "APIV2 - Attachments E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] The Attachment is transferred from a Draft Invoice the to Posted Invoice after posting. // [GIVEN] A draft sales invoice exists. CreateDraftPurchaseInvoice(DocumentRecordRef); @@ -856,6 +929,8 @@ codeunit 139833 "APIV2 - Attachments E2E" OldBase64Content: Text; NewBase64Content: Text; begin + Initialize(); + // [SCENARIO] Changing an attachment file name keeps other fields unchanged // [GIVEN] A sales quote exists. CreateSalesQuote(DocumentRecordRef); @@ -900,6 +975,8 @@ codeunit 139833 "APIV2 - Attachments E2E" OldFileName: Text; NewFileName: Text; begin + Initialize(); + // [SCENARIO] Changing an attachment content keeps other fields unchanged // [GIVEN] A draft sales invoice exists. CreateDraftSalesInvoice(DocumentRecordRef); @@ -938,6 +1015,8 @@ codeunit 139833 "APIV2 - Attachments E2E" TargetURL: Text; JSONBody: Text; begin + Initialize(); + // [SCENARIO] User cannot change the attachment ID by making a PATCH request to the Attachments API // [GIVEN] Two documents exist. CreateSalesQuote(DocumentRecordRef[1]); @@ -968,6 +1047,8 @@ codeunit 139833 "APIV2 - Attachments E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve all records from the Attachments API. // [GIVEN] 2 Attachments in the Incoming Document Attachment table CreatePostedPurchaseCreditMemo(DocumentRecordRef, DocumentId); @@ -990,6 +1071,8 @@ codeunit 139833 "APIV2 - Attachments E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve all records from the Attachments API. // [GIVEN] 2 Attachments in the Incoming Document Attachment table CreateDraftPurchaseCreditMemo(DocumentRecordRef); @@ -1010,6 +1093,8 @@ codeunit 139833 "APIV2 - Attachments E2E" DocumentRecordRef: RecordRef; DocumentId: Guid; begin + Initialize(); + CreatePostedPurchaseCreditMemo(DocumentRecordRef, DocumentId); TestCreateAttachment(DocumentRecordRef); end; @@ -1019,6 +1104,8 @@ codeunit 139833 "APIV2 - Attachments E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateDraftPurchaseCreditMemo(DocumentRecordRef); TestCreateAttachment(DocumentRecordRef); end; @@ -1029,6 +1116,8 @@ codeunit 139833 "APIV2 - Attachments E2E" DocumentRecordRef: RecordRef; DocumentId: Guid; begin + Initialize(); + CreatePostedPurchaseCreditMemo(DocumentRecordRef, DocumentId); TestDeleteAttachment2(DocumentRecordRef); end; @@ -1038,6 +1127,8 @@ codeunit 139833 "APIV2 - Attachments E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateDraftPurchaseCreditMemo(DocumentRecordRef); TestDeleteAttachment(DocumentRecordRef); end; @@ -1055,6 +1146,8 @@ codeunit 139833 "APIV2 - Attachments E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] The Attachment is transferred from a Draft Credit Memo the to Posted Credit Memo after posting. // [GIVEN] A draft purchase credit memo exists. LibraryERMCountryData.UpdatePurchasesPayablesSetup(); @@ -1593,4 +1686,9 @@ codeunit 139833 "APIV2 - Attachments E2E" exit(StrSubstNo('%1.%2', Name, Extension)); exit(Name); end; + + local procedure Initialize() + begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + end; } diff --git a/src/Apps/W1/APIV2/test/src/APIV2AutomationRSPackage.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2AutomationRSPackage.Codeunit.al index 39b5eac9614..666f6e5f8a8 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2AutomationRSPackage.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2AutomationRSPackage.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139831 "APIV2 - Automation RS Package" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -29,6 +30,7 @@ codeunit 139831 "APIV2 - Automation RS Package" var TenantConfigPackageFile: Record "Tenant Config. Package File"; begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); TenantConfigPackageFile.DELETEALL(true); diff --git a/src/Apps/W1/APIV2/test/src/APIV2BalanceSheetE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2BalanceSheetE2E.Codeunit.al index b158c6b76d3..135f93fc9fb 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2BalanceSheetE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2BalanceSheetE2E.Codeunit.al @@ -63,6 +63,8 @@ codeunit 139815 "APIV2 - Balance Sheet E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2CashFlowStatementE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2CashFlowStatementE2E.Codeunit.al index e75446dad33..e735e6db9fc 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2CashFlowStatementE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2CashFlowStatementE2E.Codeunit.al @@ -63,6 +63,8 @@ codeunit 139817 "APIV2 - CashFlow Statement E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2CompanyInfoE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2CompanyInfoE2E.Codeunit.al index fcdb4ba2eb6..c3a7dc4072c 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2CompanyInfoE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2CompanyInfoE2E.Codeunit.al @@ -27,6 +27,8 @@ codeunit 139806 "APIV2 - Company Info. E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2ContactsE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2ContactsE2E.Codeunit.al index 236c033cd44..378e8641540 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2ContactsE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2ContactsE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139866 "APIV2 - Contacts E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -23,6 +24,8 @@ codeunit 139866 "APIV2 - Contacts E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2ContactsInfE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2ContactsInfE2E.Codeunit.al index c37ce69e281..93189fc9f79 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2ContactsInfE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2ContactsInfE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139853 "APIV2 - Contacts Inf. E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -31,6 +32,8 @@ codeunit 139853 "APIV2 - Contacts Inf. E2E" TargetURL: Text; ResponseText: Text; begin + Initialize(); + // [FEATURE] [Customer] // [SCENARIO] Get all contact information for a customer @@ -61,6 +64,8 @@ codeunit 139853 "APIV2 - Contacts Inf. E2E" TargetURL: Text; ResponseText: Text; begin + Initialize(); + // [FEATURE] [Customer] // [SCENARIO] Get all contact information for a customer @@ -93,6 +98,8 @@ codeunit 139853 "APIV2 - Contacts Inf. E2E" TargetURL: Text; ResponseText: Text; begin + Initialize(); + // [FEATURE] [Vendor] // [SCENARIO] Get all contact information for a vendor @@ -123,6 +130,8 @@ codeunit 139853 "APIV2 - Contacts Inf. E2E" TargetURL: Text; ResponseText: Text; begin + Initialize(); + // [FEATURE] [Vendor] // [SCENARIO] Get all contact information for a Vendor @@ -178,4 +187,9 @@ codeunit 139853 "APIV2 - Contacts Inf. E2E" Contact.Validate("Company No.", CompanyNo); Contact.Modify(true); end; + + local procedure Initialize() + begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + end; } diff --git a/src/Apps/W1/APIV2/test/src/APIV2CountriesRegionsE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2CountriesRegionsE2E.Codeunit.al index b6136604fdd..39e5cf97825 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2CountriesRegionsE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2CountriesRegionsE2E.Codeunit.al @@ -156,6 +156,8 @@ codeunit 139810 "APIV2 - Countries/Regions E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2CurrenciesE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2CurrenciesE2E.Codeunit.al index 6692663ee5a..1f2fa149487 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2CurrenciesE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2CurrenciesE2E.Codeunit.al @@ -156,6 +156,8 @@ codeunit 139813 "APIV2 - Currencies E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2CurrencyExchRateE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2CurrencyExchRateE2E.Codeunit.al index 80e71911506..21285b69dc5 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2CurrencyExchRateE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2CurrencyExchRateE2E.Codeunit.al @@ -2,6 +2,7 @@ codeunit 139858 "APIV2 Currency Exch. Rate E2E" { Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; var LibraryERM: Codeunit "Library - ERM"; @@ -108,6 +109,7 @@ codeunit 139858 "APIV2 Currency Exch. Rate E2E" Currency: Record Currency; CurrencyExchangeRate: Record "Currency Exchange Rate"; begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); Currency.DeleteAll(); CurrencyExchangeRate.DeleteAll(); end; diff --git a/src/Apps/W1/APIV2/test/src/APIV2CustRetReasonsE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2CustRetReasonsE2E.Codeunit.al index dcdbb035c9b..2379726d3c1 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2CustRetReasonsE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2CustRetReasonsE2E.Codeunit.al @@ -23,6 +23,8 @@ codeunit 139869 "APIV2 - Cust. Ret. Reasons E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2CustomerPaymentsE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2CustomerPaymentsE2E.Codeunit.al index 3ff83154c97..7b03c51557d 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2CustomerPaymentsE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2CustomerPaymentsE2E.Codeunit.al @@ -2,6 +2,7 @@ codeunit 139840 "APIV2 - Customer Payments E2E" { Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -770,6 +771,7 @@ codeunit 139840 "APIV2 - Customer Payments E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); LibraryTestInitialize.OnTestInitialize(Codeunit::"APIV2 - Customer Payments E2E"); if not isInitialized then diff --git a/src/Apps/W1/APIV2/test/src/APIV2CustomersE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2CustomersE2E.Codeunit.al index 785404bed6f..74f55983dbb 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2CustomersE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2CustomersE2E.Codeunit.al @@ -35,6 +35,8 @@ codeunit 139802 "APIV2 - Customers E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2DefaultDimensionsE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2DefaultDimensionsE2E.Codeunit.al index 79ce1e7398c..3b71a93a0d5 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2DefaultDimensionsE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2DefaultDimensionsE2E.Codeunit.al @@ -36,6 +36,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Customer: Record "Customer"; begin + Initialize(); // [FEATURE] [Customer] // [GIVEN] a customer, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension on the customer @@ -49,6 +50,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Vendor: Record "Vendor"; begin + Initialize(); // [FEATURE] [Vendor] // [GIVEN] a vendor, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension on the vendor @@ -62,6 +64,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Item: Record "Item"; begin + Initialize(); // [FEATURE] [Item] // [GIVEN] a Item, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension on the Item @@ -75,6 +78,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Employee: Record "Employee"; begin + Initialize(); // [FEATURE] [Employee] // [GIVEN] a Employee, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension on the Employee @@ -88,6 +92,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Customer: Record "Customer"; begin + Initialize(); // [FEATURE] [Customer] // [GIVEN] a customer, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension on the customer @@ -101,6 +106,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Vendor: Record "Vendor"; begin + Initialize(); // [FEATURE] [Vendor] // [GIVEN] a Vendor, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension on the Vendor @@ -114,6 +120,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Item: Record "Item"; begin + Initialize(); // [FEATURE] [Item] // [GIVEN] a Item, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension on the Item @@ -127,6 +134,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Employee: Record "Employee"; begin + Initialize(); // [FEATURE] [Employee] // [GIVEN] a Employee, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension on the Employee @@ -140,6 +148,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Customer: Record "Customer"; begin + Initialize(); // [FEATURE] [Customer] // [GIVEN] a customer, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension on the customer, with mismatching dimesnion and dimension value @@ -153,6 +162,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Vendor: Record "Vendor"; begin + Initialize(); // [FEATURE] [Vendor] // [GIVEN] a Vendor, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension on the Vendor, with mismatching dimesnion and dimension value @@ -166,6 +176,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Item: Record "Item"; begin + Initialize(); // [FEATURE] [Item] // [GIVEN] a Item, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension on the Item, with mismatching dimesnion and dimension value @@ -179,6 +190,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Employee: Record "Employee"; begin + Initialize(); // [FEATURE] [Employee] // [GIVEN] a Employee, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension on the Employee, with mismatching dimesnion and dimension value @@ -192,6 +204,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Customer: Record "Customer"; begin + Initialize(); // [FEATURE] [Customer] // [GIVEN] a customer, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension with a blocked dimension on the customer @@ -205,6 +218,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Vendor: Record "Vendor"; begin + Initialize(); // [FEATURE] [Vendor] // [GIVEN] a Vendor, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension with a blocked dimension on the Vendor @@ -218,6 +232,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Item: Record "Item"; begin + Initialize(); // [FEATURE] [Item] // [GIVEN] a Item, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension with a blocked dimension on the Item @@ -231,6 +246,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Employee: Record "Employee"; begin + Initialize(); // [FEATURE] [Employee] // [GIVEN] a Employee, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension with a blocked dimension on the Employee @@ -244,6 +260,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Customer: Record "Customer"; begin + Initialize(); // [FEATURE] [Customer] // [GIVEN] a customer, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension with a blocked dimension value on the customer @@ -257,6 +274,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Vendor: Record "Vendor"; begin + Initialize(); // [FEATURE] [Vendor] // [GIVEN] a Vendor, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension with a blocked dimension value on the Vendor @@ -270,6 +288,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Item: Record "Item"; begin + Initialize(); // [FEATURE] [Item] // [GIVEN] a Item, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension with a blocked dimension value on the Item @@ -283,6 +302,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Employee: Record "Employee"; begin + Initialize(); // [FEATURE] [Employee] // [GIVEN] a Employee, a dimension and a dimension value // [WHEN] The user posts a http request to create a default dimension with a blocked dimension value on the Employee @@ -296,6 +316,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Customer: Record "Customer"; begin + Initialize(); // [FEATURE] [Customer] // [GIVEN] a customer with a default dimension // [WHEN] The user posts a http request to delete the default dimension on the customer @@ -309,6 +330,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Vendor: Record "Vendor"; begin + Initialize(); // [FEATURE] [Vendor] // [GIVEN] a Vendor with a default dimension // [WHEN] The user posts a http request to delete a default dimension on the Vendor @@ -322,6 +344,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Item: Record "Item"; begin + Initialize(); // [FEATURE] [Item] // [GIVEN] a Item with a default dimension // [WHEN] The user posts a http request to delete a default dimension on the Item @@ -335,6 +358,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Employee: Record "Employee"; begin + Initialize(); // [FEATURE] [Employee] // [GIVEN] a Employee with a default dimension // [WHEN] The user posts a http request to delete a default dimension on the Employee @@ -348,6 +372,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Customer: Record "Customer"; begin + Initialize(); // [FEATURE] [Customer] // [GIVEN] a customer with a default dimension // [WHEN] The user posts a http request to get the default dimension on the customer @@ -361,6 +386,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Vendor: Record "Vendor"; begin + Initialize(); // [FEATURE] [Vendor] // [GIVEN] a Vendor with a default dimension // [WHEN] The user posts a http request to get a default dimension on the Vendor @@ -374,6 +400,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Item: Record "Item"; begin + Initialize(); // [FEATURE] [Item] // [GIVEN] a Item with a default dimension // [WHEN] The user posts a http request to get a default dimension on the Item @@ -387,6 +414,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Employee: Record "Employee"; begin + Initialize(); // [FEATURE] [Employee] // [GIVEN] a Employee with a default dimension // [WHEN] The user posts a http request to get a default dimension on the Employee @@ -400,6 +428,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Customer: Record "Customer"; begin + Initialize(); // [FEATURE] [Customer] // [GIVEN] a customer with a default dimension // [WHEN] The user posts a http request to patch the default dimension on the customer @@ -413,6 +442,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Vendor: Record "Vendor"; begin + Initialize(); // [FEATURE] [Vendor] // [GIVEN] a Vendor with a default dimension // [WHEN] The user posts a http request to patch a default dimension on the Vendor @@ -426,6 +456,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Item: Record "Item"; begin + Initialize(); // [FEATURE] [Item] // [GIVEN] a Item with a default dimension // [WHEN] The user posts a http request to patch a default dimension on the Item @@ -439,6 +470,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Employee: Record "Employee"; begin + Initialize(); // [FEATURE] [Employee] // [GIVEN] a Employee with a default dimension // [WHEN] The user posts a http request to patch a default dimension on the Employee @@ -452,6 +484,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Customer: Record "Customer"; begin + Initialize(); // [FEATURE] [Customer] // [GIVEN] a customer with a default dimension // [WHEN] The user posts a http request to patch the default dimension with a blocked dimension value on the customer @@ -465,6 +498,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Vendor: Record "Vendor"; begin + Initialize(); // [FEATURE] [Vendor] // [GIVEN] a Vendor with a default dimension // [WHEN] The user posts a http request to patch a default dimension with a blocked dimension value on the Vendor @@ -478,6 +512,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Item: Record "Item"; begin + Initialize(); // [FEATURE] [Item] // [GIVEN] a Item with a default dimension // [WHEN] The user posts a http request to patch a default dimension with a blocked dimension value on the Item @@ -491,6 +526,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Employee: Record "Employee"; begin + Initialize(); // [FEATURE] [Employee] // [GIVEN] a Employee with a default dimension // [WHEN] The user posts a http request to patch a default dimension with a blocked dimension value on the Employee @@ -504,6 +540,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Customer: Record "Customer"; begin + Initialize(); // [FEATURE] [Customer] // [GIVEN] a customer with a default dimension // [WHEN] The user posts a http request to patch the default dimension with a blocked dimension value on the customer @@ -517,6 +554,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Vendor: Record "Vendor"; begin + Initialize(); // [FEATURE] [Vendor] // [GIVEN] a vendor with a default dimension // [WHEN] The user posts a http request to patch the default dimension with a blocked dimension value on the vendor @@ -530,6 +568,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Item: Record "Item"; begin + Initialize(); // [FEATURE] [Item] // [GIVEN] a item with a default dimension // [WHEN] The user posts a http request to patch the default dimension with a blocked dimension value on the item @@ -543,6 +582,7 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" var Employee: Record "Employee"; begin + Initialize(); // [FEATURE] [Employee] // [GIVEN] a employee with a default dimension // [WHEN] The user posts a http request to patch the default dimension with a blocked dimension value on the employee @@ -562,6 +602,8 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" DimensionValueId: Text; ParentIdAsText: Text; begin + Initialize(); + LibraryDimension.CreateDimension(Dimension); LibraryDimension.CreateDimensionValue(DimensionValue, Dimension.Code); ParentIdAsText := LowerCase(Format(ParentId)); @@ -593,6 +635,8 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" DimensionId: Text; DimensionValueId: Text; begin + Initialize(); + LibraryDimension.CreateDimension(Dimension); LibraryDimension.CreateDimensionValue(DimensionValue, Dimension.Code); ParentIdAsText := LowerCase(Format(ParentId)); @@ -625,6 +669,8 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" DimensionId: Text; DimensionValue2Id: Text; begin + Initialize(); + LibraryDimension.CreateDimension(Dimension); LibraryDimension.CreateDimensionValue(DimensionValue, Dimension.Code); LibraryDimension.CreateDimension(Dimension2); @@ -654,6 +700,8 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" DimensionId: Text; DimensionValueId: Text; begin + Initialize(); + LibraryDimension.CreateDimension(Dimension); LibraryDimension.CreateDimensionValue(DimensionValue, Dimension.Code); Dimension.Validate(Blocked, true); @@ -683,6 +731,8 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" DimensionId: Text; DimensionValueId: Text; begin + Initialize(); + LibraryDimension.CreateDimension(Dimension); LibraryDimension.CreateDimensionValue(DimensionValue, Dimension.Code); DimensionValue.Validate(Blocked, true); @@ -712,6 +762,8 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" ParentIdAsText: Text; DimensionId: Text; begin + Initialize(); + LibraryDimension.CreateDimension(Dimension); LibraryDimension.CreateDimensionValue(DimensionValue, Dimension.Code); DefaultDimension.Validate("Table ID", TableNo); @@ -749,6 +801,8 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" DimensionId: Text; DimensionValueId: Text; begin + Initialize(); + LibraryDimension.CreateDimension(Dimension); LibraryDimension.CreateDimensionValue(DimensionValue, Dimension.Code); DefaultDimension.Validate("Table ID", TableNo); @@ -786,6 +840,8 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" DimensionId: Text; DimensionValue2Id: Text; begin + Initialize(); + LibraryDimension.CreateDimension(Dimension); LibraryDimension.CreateDimensionValue(DimensionValue, Dimension.Code); LibraryDimension.CreateDimensionValue(DimensionValue2, Dimension.Code); @@ -827,6 +883,8 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" DimensionId: Text; DimensionValue2Id: Text; begin + Initialize(); + LibraryDimension.CreateDimension(Dimension); LibraryDimension.CreateDimensionValue(DimensionValue, Dimension.Code); LibraryDimension.CreateDimensionValue(DimensionValue2, Dimension.Code); @@ -867,6 +925,8 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" ParentIdAsText: Text; DimensionId: Text; begin + Initialize(); + LibraryDimension.CreateDimension(Dimension); LibraryDimension.CreateDimension(Dimension2); LibraryDimension.CreateDimensionValue(DimensionValue, Dimension.Code); @@ -976,4 +1036,9 @@ codeunit 139832 "APIV2 - Default Dimensions E2E" end; exit(DefaultDimensionParentType::" "); end; + + local procedure Initialize() + begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + end; } diff --git a/src/Apps/W1/APIV2/test/src/APIV2DimSetLinesE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2DimSetLinesE2E.Codeunit.al index 22830a040b7..49029167c8b 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2DimSetLinesE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2DimSetLinesE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -29,6 +30,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); end; [Test] @@ -39,6 +41,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" JournalName: Code[10]; JournalLineGUID: Guid; begin + Initialize(); // [SCENARIO] Create a dimension line in journal through a POST method and check if it was created LibraryGraphJournalLines.Initialize(); @@ -63,6 +66,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" LineId: Guid; begin + Initialize(); // [SCENARIO] Create a dimension line in a sales order and a sales order line through a POST method and check if it was created // [GIVEN] A sales order LibrarySales.CreateSalesOrder(SalesHeader); @@ -91,6 +95,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" LineId: Guid; CustomerNo: Code[20]; begin + Initialize(); // [SCENARIO] Create a dimension line in a sales quote and sales quote line through a POST method and check if it was created // [GIVEN] A sales quote LibrarySales.CreateCustomer(Customer); @@ -119,6 +124,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" LineRecordRef: RecordRef; LineId: Guid; begin + Initialize(); // [SCENARIO] Create a dimension line in a sales credit memo and a sales cr memo line through a POST method and check if it was created // [GIVEN] A sales credit memo LibrarySales.CreateSalesCreditMemo(SalesHeader); @@ -145,6 +151,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" LineRecordRef: RecordRef; LineId: Guid; begin + Initialize(); // [SCENARIO] Create a dimension line in a sales invoice and a sales invoice line through a POST method and check if it was created // [GIVEN] A sales invoice LibrarySales.CreateSalesInvoice(SalesHeader); @@ -171,6 +178,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" LineRecordRef: RecordRef; LineId: Guid; begin + Initialize(); // [SCENARIO] Create a dimension line in a purchase invoice and a purchase invoice line through a POST method and check if it was created // [GIVEN] A purchase invoice LibraryPurchase.CreatePurchaseInvoice(PurchaseHeader); @@ -197,6 +205,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" LineRecordRef: RecordRef; LineId: Guid; begin + Initialize(); // [SCENARIO] Create a dimension line in a purchase order and a purchase order line through a POST method and check if it was created // [GIVEN] A purchase order LibraryPurchase.CreatePurchaseOrder(PurchaseHeader); @@ -223,6 +232,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" DocumentRecordRef: RecordRef; TimeSheetDetailId: Guid; begin + Initialize(); // [SCENARIO] Create a dimension line in a time registration entry through a POST method and check if it was created // [GIVEN] A Time registration entry UserSetup.DeleteAll(); @@ -243,6 +253,8 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" TargetURL: Text; ResponseText: Text; begin + Initialize(); + // [SCENARIO] Creating a dimension line through a POST method without specifying a parent Id fails LibraryGraphJournalLines.Initialize(); @@ -274,6 +286,8 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] Try to create a dimension line with an already existing code LibraryGraphJournalLines.Initialize(); @@ -319,6 +333,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" JournalName: Code[10]; JournalLineGUID: Guid; begin + Initialize(); // [SCENARIO] Create dimension lines in a journal line and use a GET method to retrieve them // [GIVEN] a journal in the General Journal Table LibraryGraphJournalLines.Initialize(); @@ -336,6 +351,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" SalesLine: Record "Sales Line"; LineId: Guid; begin + Initialize(); // [SCENARIO] Create dimension lines in a sales order and sales order line and use a GET method to retrieve them // [GIVEN] a sales order with lines LibrarySales.CreateSalesOrder(SalesHeader); @@ -359,6 +375,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" CustomerNo: Code[20]; LineId: Guid; begin + Initialize(); // [SCENARIO] Create dimension lines in a sales quote and sales quote line and use a GET method to retrieve them // [GIVEN] a sales quote with lines LibrarySales.CreateCustomer(Customer); @@ -382,6 +399,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" SalesLine: Record "Sales Line"; LineId: Guid; begin + Initialize(); // [SCENARIO] Create dimension lines in a sales cr memo and sales cr memo line and use a GET method to retrieve them // [GIVEN] a sales cr memo with lines LibrarySales.CreateSalesCreditMemo(SalesHeader); @@ -403,6 +421,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" SalesLine: Record "Sales Line"; LineId: Guid; begin + Initialize(); // [SCENARIO] Create dimension lines in a sales invoice and sales invoice line and use a GET method to retrieve them // [GIVEN] a sales invoice with lines LibrarySales.CreateSalesInvoice(SalesHeader); @@ -424,6 +443,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" PurchaseLine: Record "Purchase Line"; LineId: Guid; begin + Initialize(); // [SCENARIO] Create dimension lines in a pucrhase invoice and purchase invoice line and use a GET method to retrieve them // [GIVEN] a purchase invoice with lines LibraryPurchase.CreatePurchaseInvoice(PurchaseHeader); @@ -445,6 +465,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" PurchaseLine: Record "Purchase Line"; LineId: Guid; begin + Initialize(); // [SCENARIO] Create dimension lines in a pucrhase order and purchase order line and use a GET method to retrieve them // [GIVEN] a purchase order with lines LibraryPurchase.CreatePurchaseOrder(PurchaseHeader); @@ -468,6 +489,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" DocumentRecordRef: RecordRef; TimeSheetDetailId: Guid; begin + Initialize(); // [SCENARIO] Create a dimension line in a time registration entry through a POST method and and use a GET method to retrieve them // [GIVEN] A Time registration entry UserSetup.DeleteAll(); @@ -492,6 +514,8 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" TargetURL: Text; DimensionSetValue: Text; begin + Initialize(); + // [SCENARIO] Create a G/L Entry with dimenions after Posting Sales Invoice and use a GET method to retreive them // [GIVEN] Create Customer, Items and Sales Invoice for different Items. @@ -523,6 +547,8 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] Using a GET request to retrieve dimension lines without a filter fails LibraryGraphJournalLines.Initialize(); @@ -545,6 +571,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" JournalName: Code[10]; JournalLineGUID: Guid; begin + Initialize(); // [SCENARIO] Create a dimension line, use a PATCH method to change it and then verify the changes LibraryGraphJournalLines.Initialize(); @@ -566,6 +593,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" LineRecordRef: RecordRef; LineId: Guid; begin + Initialize(); // [SCENARIO] Create a dimension line in a sales order and a sales order line, use a PATCH method to change it and then verify the changes // [GIVEN] A sales order LibrarySales.CreateSalesOrder(SalesHeader); @@ -594,6 +622,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" LineId: Guid; CustomerNo: Code[20]; begin + Initialize(); // [SCENARIO] Create a dimension line in a sales quote and a sales quote line, use a PATCH method to change it and then verify the changes // [GIVEN] A sales quote LibrarySales.CreateCustomer(Customer); @@ -622,6 +651,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" LineRecordRef: RecordRef; LineId: Guid; begin + Initialize(); // [SCENARIO] Create a dimension line in a sales credit memo and a sales cr memo line, use a PATCH method to change it and then verify the changes // [GIVEN] A sales credit memo LibrarySales.CreateSalesCreditMemo(SalesHeader); @@ -648,6 +678,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" LineRecordRef: RecordRef; LineId: Guid; begin + Initialize(); // [SCENARIO] Create a dimension line in a sales invoice and a sales invoice line, use a PATCH method to change it and then verify the changes // [GIVEN] A sales invoice LibrarySales.CreateSalesInvoice(SalesHeader); @@ -674,6 +705,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" LineRecordRef: RecordRef; LineId: Guid; begin + Initialize(); // [SCENARIO] Create a dimension line in a purchase invoice and a purchase invoice line, use a PATCH method to change it and then verify the changes // [GIVEN] A purchase invoice LibraryPurchase.CreatePurchaseInvoice(PurchaseHeader); @@ -700,6 +732,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" LineRecordRef: RecordRef; LineId: Guid; begin + Initialize(); // [SCENARIO] Create a dimension line in a purchase order and a purchase order line, use a PATCH method to change it and then verify the changes // [GIVEN] A purchase order LibraryPurchase.CreatePurchaseOrder(PurchaseHeader); @@ -726,6 +759,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" DocumentRecordRef: RecordRef; TimeSheetDetailId: Guid; begin + Initialize(); // [SCENARIO] Create a dimension line in a time registration entry, use a PATCH method to change it and then verify the changes // [GIVEN] A Time registration entry UserSetup.DeleteAll(); @@ -746,6 +780,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" LineRecordRef: RecordRef; LineId: Guid; begin + Initialize(); // [SCENARIO] Create a dimension line in a purchase credit memo and a purchase cr memo line through a POST method and check if it was created // [GIVEN] A purchase credit memo LibraryPurchase.CreatePurchaseCreditMemo(PurchaseHeader); @@ -770,6 +805,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" PurchaseLine: Record "Purchase Line"; LineId: Guid; begin + Initialize(); // [SCENARIO] Create dimension lines in a purchase cr memo and purchase cr memo line and use a GET method to retrieve them // [GIVEN] a purchase cr memo with lines LibraryPurchase.CreatePurchaseCreditMemo(PurchaseHeader); @@ -793,6 +829,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" LineRecordRef: RecordRef; LineId: Guid; begin + Initialize(); // [SCENARIO] Create a dimension line in a purchase credit memo and a purchase cr memo line, use a PATCH method to change it and then verify the changes // [GIVEN] A purchase credit memo LibraryPurchase.CreatePurchaseCreditMemo(PurchaseHeader); @@ -819,6 +856,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" LineRecordRef: RecordRef; LineId: Guid; begin + Initialize(); // [SCENARIO] Create a dimension line in a purchase credit memo and a purchase cr memo line, use a DELETE method to remove it and then verify the deletion // [GIVEN] A purchase credit memo LibraryPurchase.CreatePurchaseCreditMemo(PurchaseHeader); @@ -852,6 +890,8 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" TargetURL: Text; DimensionSetID: Integer; begin + Initialize(); + // [GIVEN] 2 dimension json texts LibraryDimension.CreateDimension(Dimension); DimensionCode := Dimension.Code; @@ -929,6 +969,8 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] Try to change the code of an existing dimension line LibraryGraphJournalLines.Initialize(); @@ -979,6 +1021,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" JournalName: Code[10]; JournalLineGUID: Guid; begin + Initialize(); // [SCENARIO] Create a dimension line, use a DELETE method to remove it and then verify the deletion LibraryGraphJournalLines.Initialize(); @@ -1001,6 +1044,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" LineId: Guid; begin + Initialize(); // [SCENARIO] Create a dimension line in a sales order and a sales order, use a DELETE method to remove it and then verify the deletion // [GIVEN] A sales order LibrarySales.CreateSalesOrder(SalesHeader); @@ -1029,6 +1073,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" LineId: Guid; CustomerNo: Code[20]; begin + Initialize(); // [SCENARIO] Create a dimension line in a sales quote and sales quote line, use a DELETE method to remove it and then verify the deletion // [GIVEN] A sales quote LibrarySales.CreateCustomer(Customer); @@ -1057,6 +1102,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" LineRecordRef: RecordRef; LineId: Guid; begin + Initialize(); // [SCENARIO] Create a dimension line in a sales credit memo and a sales cr memo line, use a DELETE method to remove it and then verify the deletion // [GIVEN] A sales credit memo LibrarySales.CreateSalesCreditMemo(SalesHeader); @@ -1083,6 +1129,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" LineRecordRef: RecordRef; LineId: Guid; begin + Initialize(); // [SCENARIO] Create a dimension line in a sales invoice and a sales invoice line, use a DELETE method to remove it and then verify the deletion // [GIVEN] A sales invoice LibrarySales.CreateSalesInvoice(SalesHeader); @@ -1109,6 +1156,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" LineRecordRef: RecordRef; LineId: Guid; begin + Initialize(); // [SCENARIO] Create a dimension line in a purchase invoice and a purchase invoice line, use a DELETE method to remove it and then verify the deletion LibraryPurchase.CreatePurchaseInvoice(PurchaseHeader); DocumentRecordRef.GetTable(PurchaseHeader); @@ -1134,6 +1182,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" LineRecordRef: RecordRef; LineId: Guid; begin + Initialize(); // [SCENARIO] Create a dimension line in a purchase order and a purchase order, use a DELETE method to remove it and then verify the deletion // [GIVEN] A purchase order LibraryPurchase.CreatePurchaseOrder(PurchaseHeader); @@ -1158,6 +1207,7 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" DocumentRecordRef: RecordRef; TimeSheetDetailId: Guid; begin + Initialize(); // [SCENARIO] Create a dimension line in a time registration entry, use a DELETE method to remove it and then verify the deletion // [GIVEN] A Time registration entry TimeSheetDetailId := CreateTimeSheet(); @@ -1180,6 +1230,8 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" TargetURL: Text; ResponseText: Text; begin + Initialize(); + // [GIVEN] a dimension line in the journal line LibraryDimension.CreateDimension(Dimension); DimensionValue.Reset(); @@ -1241,6 +1293,8 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" TargetURL: Text; ResponseText: Text; begin + Initialize(); + // [GIVEN] a dimension line in the journal line LibraryDimension.CreateDimension(Dimension); DimensionValue.Reset(); @@ -1297,6 +1351,8 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" TargetURL: Text; ResponseText: Text; begin + Initialize(); + // [GIVEN] a dimension with a value LibraryDimension.CreateDimension(Dimension); LibraryDimension.CreateDimensionValue(DimensionValue, Dimension.Code); @@ -1358,6 +1414,8 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" TargetURL: Text; ResponseText: Text; begin + Initialize(); + // [GIVEN] a dimension with a value LibraryDimension.CreateDimension(Dimension); LibraryDimension.CreateDimensionValue(DimensionValue, Dimension.Code); @@ -1407,6 +1465,8 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [GIVEN] 2 dimensions with dimension values LibraryDimension.CreateDimension(Dimension); DimensionCode[2] := Dimension.Code; @@ -1451,6 +1511,8 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [GIVEN] 2 dimensions with dimension values LibraryDimension.CreateDimension(Dimension); DimensionCode[2] := Dimension.Code; @@ -1502,6 +1564,8 @@ codeunit 139825 "APIV2 - Dim. Set Lines E2E" TargetURL: Text; DimensionSetID: Integer; begin + Initialize(); + // [GIVEN] 2 dimension json texts LibraryDimension.CreateDimension(Dimension); DimensionCode := Dimension.Code; diff --git a/src/Apps/W1/APIV2/test/src/APIV2DimensionsE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2DimensionsE2E.Codeunit.al index 8ed0d30799c..c4f20098142 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2DimensionsE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2DimensionsE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139824 "APIV2 - Dimensions E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestPermissions = Disabled; trigger OnRun() @@ -21,6 +22,8 @@ codeunit 139824 "APIV2 - Dimensions E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2DocumentAttachE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2DocumentAttachE2E.Codeunit.al index a18ec52edda..c73869ce7d7 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2DocumentAttachE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2DocumentAttachE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139899 "APIV2 - Document Attach. E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -33,6 +34,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve all records from the Attachments API. // [GIVEN] 2 Attachments in the Document Attachment table LibrarySales.CreateCustomer(Customer); @@ -57,6 +60,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve all records from the Attachments API. // [GIVEN] 2 Attachments in the Document Attachment table LibrarySmallBusiness.CreateItem(Item); @@ -81,6 +86,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve all records from the Attachments API. // [GIVEN] 2 Attachments in the Document Attachment table LibraryHumanResources.CreateEmployee(Employee); @@ -105,6 +112,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve all records from the Attachments API. // [GIVEN] 2 Attachments in the Document Attachment table LibraryJob.CreateJob(Job); @@ -129,6 +138,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve all records from the Attachments API. // [GIVEN] 2 Attachments in the Document Attachment table LibrarySmallBusiness.CreateVendor(Vendor); @@ -153,6 +164,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve all records from the Attachments API. // [GIVEN] 2 Attachments in the Document Attachment table CreatePostedSalesInvoice(DocumentRecordRef, DocumentId); @@ -175,6 +188,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve all records from the Attachments API. // [GIVEN] 2 Attachments in the Document Attachment table CreateDraftSalesInvoice(DocumentRecordRef); @@ -198,6 +213,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve all records from the Attachments API. // [GIVEN] 2 Attachments in the Document Attachment table CreatePostedPurchaseInvoice(DocumentRecordRef, DocumentId); @@ -220,6 +237,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve all records from the Attachments API. // [GIVEN] 2 Attachments in the Document Attachment table CreateDraftPurchaseInvoice(DocumentRecordRef); @@ -242,6 +261,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve all records from the Attachments API. // [GIVEN] 2 Attachments in the Document Attachment table CreateSalesQuote(DocumentRecordRef); @@ -265,6 +286,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve the Attachment record from the Attachment API. // [GIVEN] Attachment exists in the Document Attachment table CreatePostedSalesInvoice(DocumentRecordRef, DocumentId); @@ -287,6 +310,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve the Attachment record from the Attachment API. // [GIVEN] Attachment exists in the Document Attachment table CreateDraftSalesInvoice(DocumentRecordRef); @@ -309,6 +334,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve the Attachment record from the Attachment API. // [GIVEN] Attachment exists in the Document Attachment table CreateDraftSalesOrder(DocumentRecordRef); @@ -331,6 +358,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve the Attachment record from the Attachment API. // [GIVEN] Attachment exists in the Document Attachment table CreateSalesQuote(DocumentRecordRef); @@ -353,6 +382,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve all records from the Attachments API. // [GIVEN] 2 Attachments in the Document Attachment table CreateDraftPurchaseOrder(DocumentRecordRef); @@ -380,6 +411,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" ExpectedBase64Content: Text; ActualBase64Content: Text; begin + Initialize(); + // [SCENARIO] User can update linked attachment binary content through the Attachment API. // [GIVEN] A linked attachment exists LibrarySmallBusiness.CreateCustomer(Customer); @@ -408,6 +441,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" Customer: Record Customer; DocumentRecordRef: RecordRef; begin + Initialize(); + LibrarySmallBusiness.CreateCustomer(Customer); DocumentRecordRef.GetTable(Customer); TestCreateAttachment(DocumentRecordRef); @@ -419,6 +454,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" Vendor: Record Vendor; DocumentRecordRef: RecordRef; begin + Initialize(); + LibrarySmallBusiness.CreateVendor(Vendor); DocumentRecordRef.GetTable(Vendor); TestCreateAttachment(DocumentRecordRef); @@ -431,6 +468,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" DocumentId: Guid; DocumentType: Text; begin + Initialize(); + CreatePostedSalesInvoice(DocumentRecordRef, DocumentId); DocumentType := GetDocumentType(DocumentRecordRef); TestCreateAttachment(DocumentRecordRef, DocumentId, DocumentType); @@ -441,6 +480,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateDraftSalesInvoice(DocumentRecordRef); TestCreateAttachment(DocumentRecordRef); end; @@ -450,6 +491,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateDraftSalesOrder(DocumentRecordRef); TestCreateAttachment(DocumentRecordRef); end; @@ -461,6 +504,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" DocumentId: Guid; DocumentType: Text; begin + Initialize(); + CreatePostedPurchaseInvoice(DocumentRecordRef, DocumentId); DocumentType := GetDocumentType(DocumentRecordRef); TestCreateAttachment(DocumentRecordRef, DocumentId, DocumentType); @@ -471,6 +516,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateDraftPurchaseInvoice(DocumentRecordRef); TestCreateAttachment(DocumentRecordRef); end; @@ -480,6 +527,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateDraftPurchaseOrder(DocumentRecordRef); TestCreateAttachment(DocumentRecordRef); end; @@ -531,6 +580,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateSalesQuote(DocumentRecordRef); TestCreateAttachment(DocumentRecordRef); end; @@ -541,6 +592,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" Vendor: Record Vendor; DocumentRecordRef: RecordRef; begin + Initialize(); + LibrarySmallBusiness.CreateVendor(Vendor); DocumentRecordRef.GetTable(Vendor); CreateAttachment(DocumentRecordRef); @@ -553,6 +606,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" Employee: Record Employee; DocumentRecordRef: RecordRef; begin + Initialize(); + LibraryHumanResources.CreateEmployee(Employee); DocumentRecordRef.GetTable(Employee); CreateAttachment(DocumentRecordRef); @@ -565,6 +620,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" Job: Record Job; DocumentRecordRef: RecordRef; begin + Initialize(); + LibraryJob.CreateJob(Job); DocumentRecordRef.GetTable(Job); CreateAttachment(DocumentRecordRef); @@ -577,6 +634,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" DocumentRecordRef: RecordRef; DocumentId: Guid; begin + Initialize(); + CreatePostedSalesInvoice(DocumentRecordRef, DocumentId); TestDeleteAttachment2(DocumentRecordRef); end; @@ -586,6 +645,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateDraftSalesInvoice(DocumentRecordRef); TestDeleteAttachment(DocumentRecordRef); end; @@ -596,6 +657,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" DocumentRecordRef: RecordRef; DocumentId: Guid; begin + Initialize(); + CreatePostedPurchaseInvoice(DocumentRecordRef, DocumentId); TestDeleteAttachment2(DocumentRecordRef); end; @@ -605,6 +668,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateDraftPurchaseInvoice(DocumentRecordRef); TestDeleteAttachment(DocumentRecordRef); end; @@ -614,6 +679,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateSalesQuote(DocumentRecordRef); TestDeleteAttachment(DocumentRecordRef); end; @@ -626,6 +693,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve all records from the Attachments API. // [GIVEN] 2 Attachments in the Document Attachment table CreateDraftPurchaseCreditMemo(DocumentRecordRef); @@ -649,6 +718,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can retrieve all records from the Attachments API. // [GIVEN] 2 Attachments in the Document Attachment table CreatePostedPurchaseCreditMemo(DocumentRecordRef, DocumentId); @@ -668,6 +739,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateDraftPurchaseCreditMemo(DocumentRecordRef); TestCreateAttachment(DocumentRecordRef); end; @@ -679,6 +752,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" DocumentId: Guid; DocumentType: Text; begin + Initialize(); + CreatePostedPurchaseCreditMemo(DocumentRecordRef, DocumentId); DocumentType := GetDocumentType(DocumentRecordRef); TestCreateAttachment(DocumentRecordRef, DocumentId, DocumentType); @@ -689,6 +764,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" var DocumentRecordRef: RecordRef; begin + Initialize(); + CreateDraftPurchaseCreditMemo(DocumentRecordRef); TestDeleteAttachment(DocumentRecordRef); end; @@ -699,6 +776,8 @@ codeunit 139899 "APIV2 - Document Attach. E2E" DocumentRecordRef: RecordRef; DocumentId: Guid; begin + Initialize(); + CreatePostedPurchaseCreditMemo(DocumentRecordRef, DocumentId); TestDeleteAttachment2(DocumentRecordRef); end; @@ -1036,4 +1115,9 @@ codeunit 139899 "APIV2 - Document Attach. E2E" exit(StrSubstNo('%1.%2', Name, Extension)); exit(Name); end; + + local procedure Initialize() + begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + end; } diff --git a/src/Apps/W1/APIV2/test/src/APIV2EmployeesE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2EmployeesE2E.Codeunit.al index 1858298618e..04dff990772 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2EmployeesE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2EmployeesE2E.Codeunit.al @@ -26,6 +26,8 @@ codeunit 139822 "APIV2 - Employees E2E" var LibraryApplicationArea: Codeunit "Library - Application Area"; begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + LibraryApplicationArea.EnableBasicHRSetup(); // Lazy Setup. diff --git a/src/Apps/W1/APIV2/test/src/APIV2FALocationsE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2FALocationsE2E.Codeunit.al index 0be5a7df2fa..21d78b5f8ad 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2FALocationsE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2FALocationsE2E.Codeunit.al @@ -22,6 +22,8 @@ codeunit 139906 "APIV2 - FA Locations E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2FixedAssetsE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2FixedAssetsE2E.Codeunit.al index adb871a1f7d..5aee6d51810 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2FixedAssetsE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2FixedAssetsE2E.Codeunit.al @@ -24,6 +24,8 @@ codeunit 139907 "APIV2 - Fixed Assets E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2GLEntriesE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2GLEntriesE2E.Codeunit.al index a3fcfd0645e..293868d867a 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2GLEntriesE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2GLEntriesE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139830 "APIV2 - GLEntries E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -25,6 +26,8 @@ codeunit 139830 "APIV2 - GLEntries E2E" LibraryERMCountryData: Codeunit "Library - ERM Country Data"; LibraryApplicationArea: Codeunit "Library - Application Area"; begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + LibraryApplicationArea.EnableFoundationSetup(); if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2GLSetupE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2GLSetupE2E.Codeunit.al index 7b568e8fd1f..cf4961e089d 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2GLSetupE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2GLSetupE2E.Codeunit.al @@ -2,6 +2,7 @@ codeunit 139860 "APIV2 - G/L Setup E2E" { Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; var Assert: Codeunit "Assert"; @@ -14,6 +15,8 @@ codeunit 139860 "APIV2 - G/L Setup E2E" GeneralLedgerSetup: Record "General Ledger Setup"; Response, TargetURL : Text; begin + Initialize(); + GeneralLedgerSetup.Get(); TargetURL := LibraryGraphMgt.CreateTargetURL('', Page::"APIV2 - G/L Setup", ServiceNameTxt); LibraryGraphMgt.GetFromWebService(Response, TargetURL); @@ -61,4 +64,9 @@ codeunit 139860 "APIV2 - G/L Setup E2E" Assert.AreEqual(GeneralLedgerSetup."Shortcut Dimension 8 Code", PropertyJsonToken.AsValue().AsText(), 'Expected the same shortcutDimension8Code for generalLedgerSetup'); end; + + local procedure Initialize() + begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + end; } \ No newline at end of file diff --git a/src/Apps/W1/APIV2/test/src/APIV2GenProdPostGroupE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2GenProdPostGroupE2E.Codeunit.al index 1ddb38fffd9..911e5981d65 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2GenProdPostGroupE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2GenProdPostGroupE2E.Codeunit.al @@ -2,6 +2,7 @@ codeunit 139856 "APIV2 - GenProdPostGroup E2E" { Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestPermissions = Disabled; trigger OnRun() @@ -22,6 +23,8 @@ codeunit 139856 "APIV2 - GenProdPostGroup E2E" TargetURL: Text; Response: Text; begin + Initialize(); + // [SCENARIO] Create a General Product Posting Group and use a GET method to retrieve it // [GIVEN] A Gen. Prod. Post. Group ERMVATToolHelper.CreateGenProdPostingGroup(GenProductPostingGroup, true); @@ -42,4 +45,9 @@ codeunit 139856 "APIV2 - GenProdPostGroup E2E" end; + + local procedure Initialize() + begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + end; } \ No newline at end of file diff --git a/src/Apps/W1/APIV2/test/src/APIV2IncomeStatementE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2IncomeStatementE2E.Codeunit.al index 090bce4ebb4..aa91a744a20 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2IncomeStatementE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2IncomeStatementE2E.Codeunit.al @@ -63,6 +63,8 @@ codeunit 139816 "APIV2 - Income Statement E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2InventoryPostGroupE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2InventoryPostGroupE2E.Codeunit.al index b83208df6d8..5a5bec8fd2e 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2InventoryPostGroupE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2InventoryPostGroupE2E.Codeunit.al @@ -2,6 +2,7 @@ codeunit 139857 "APIV2 - InventoryPostGroup E2E" { Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestPermissions = Disabled; trigger OnRun() begin @@ -22,6 +23,8 @@ codeunit 139857 "APIV2 - InventoryPostGroup E2E" TargetURL: Text; Response: Text; begin + Initialize(); + // [SCENARIO] Create an Inventory Posting Group and use a GET to retrieve it // [GIVEN] An Inventory Posting Group LibraryInventory.CreateInventoryPostingGroup(InventoryPostingGroup); @@ -41,4 +44,9 @@ codeunit 139857 "APIV2 - InventoryPostGroup E2E" 'Could not find created Inventory Posting Group on the response'); end; + + local procedure Initialize() + begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + end; } \ No newline at end of file diff --git a/src/Apps/W1/APIV2/test/src/APIV2ItemCategoriesE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2ItemCategoriesE2E.Codeunit.al index 49069889385..cab1220fe62 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2ItemCategoriesE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2ItemCategoriesE2E.Codeunit.al @@ -156,6 +156,8 @@ codeunit 139807 "APIV2 - Item Categories E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2ItemVariantsE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2ItemVariantsE2E.Codeunit.al index ce730ee874c..86eaf621f3c 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2ItemVariantsE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2ItemVariantsE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139839 "APIV2 - Item Variants E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -21,6 +22,8 @@ codeunit 139839 "APIV2 - Item Variants E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] Create an item variant through a POST method and check if it was created // [GIVEN] a JSON text with an item variant with itemId CreateItem(Item); @@ -45,6 +48,8 @@ codeunit 139839 "APIV2 - Item Variants E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] Cannot create an Item Variant with non-existing itemId // [GIVEN] a JSON text with an item variant with non-existing itemId ItemId := CreateGuid(); @@ -66,6 +71,8 @@ codeunit 139839 "APIV2 - Item Variants E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] Create an item variant through a POST method and check if it was created // [GIVEN] a JSON text with an item variant with itemNumber CreateItem(Item); @@ -91,6 +98,8 @@ codeunit 139839 "APIV2 - Item Variants E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] Cannot create an Item Variant with non-existing itemNumber // [GIVEN] a JSON text with an item variant with non-existing itemNumber ItemNo := LibraryUtility.GenerateRandomCode(ItemVariant.FieldNo(Code), Database::"Item Variant"); @@ -112,6 +121,8 @@ codeunit 139839 "APIV2 - Item Variants E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] Create an item variant through a POST method and check if it was created // [GIVEN] a JSON text with an item variant with itemNumber and itemId CreateItem(Item); @@ -137,6 +148,8 @@ codeunit 139839 "APIV2 - Item Variants E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] Cannot create an Item Variant with mismatching itemNumber and itemId // [GIVEN] a JSON text with an item variant with mismatching itemNumber and itemId CreateItem(Item1); @@ -160,6 +173,8 @@ codeunit 139839 "APIV2 - Item Variants E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] Cannot create an Item Variant if there is an item variant with same itemNumber and code // [GIVEN] a JSON text with an item variant with same itemNumber and code CreateItem(Item); @@ -182,6 +197,8 @@ codeunit 139839 "APIV2 - Item Variants E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] Get a simple customer with a GET request to the service. // [GIVEN] An item variant exists in the system CreateItem(Item); @@ -207,6 +224,8 @@ codeunit 139839 "APIV2 - Item Variants E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] Create an item variant, use a PATCH method to change it and then verify the changes // [GIVEN] an item variant exists in the system CreateItem(Item); @@ -239,6 +258,8 @@ codeunit 139839 "APIV2 - Item Variants E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] Create an item variant, use a PATCH method to change it and then verify the changes // [GIVEN] an item variant exists in the system CreateItem(Item1); @@ -272,6 +293,8 @@ codeunit 139839 "APIV2 - Item Variants E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] Create an item variant, use a PATCH method to change it and then verify the changes // [GIVEN] an item variant exists in the system CreateItem(Item1); @@ -301,6 +324,8 @@ codeunit 139839 "APIV2 - Item Variants E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] Create an item variant, use a DELETE method to remove it and then verify the deletion // [GIVEN] an item variant in the system CreateItem(Item); @@ -327,6 +352,8 @@ codeunit 139839 "APIV2 - Item Variants E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] Cannot delete an item variant in use // [GIVEN] an item variant in the system and used in a sales order line LibraryInventory.CreateItem(Item); @@ -441,4 +468,9 @@ codeunit 139839 "APIV2 - Item Variants E2E" exit(CopyStr('GRAPHITEM' + '00001', 1, 20)); end; + + local procedure Initialize() + begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + end; } diff --git a/src/Apps/W1/APIV2/test/src/APIV2ItemsE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2ItemsE2E.Codeunit.al index 4f8e7404118..75e12058ec0 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2ItemsE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2ItemsE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139800 "APIV2 - Items E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -31,6 +32,8 @@ codeunit 139800 "APIV2 - Items E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2JobQueueEntriesE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2JobQueueEntriesE2E.Codeunit.al index cdc5b46ad63..fb7e81b9f3b 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2JobQueueEntriesE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2JobQueueEntriesE2E.Codeunit.al @@ -26,6 +26,8 @@ codeunit 139862 "APIV2JobQueueEntriesE2E" TargetURL: Text; ResponseText: Text; begin + Initialize(); + // [SCENARIO] Create 1 JobQueueEntry and use a GET method to retrieve it· // [GIVEN] Clean Job Queue Entries and create a new JobQueueEntry JobQueueEntry.DeleteAll(); @@ -52,6 +54,8 @@ codeunit 139862 "APIV2JobQueueEntriesE2E" ResponseText: Text; JobQueueEntryJSON: Text; begin + Initialize(); + // [SCENARIO] Create 1 JobQueueEntry and use a GET method to retrieve it. // [GIVEN] Clean Job Queue Entries and create a new JobQueueEntry and one corresponding JobQueueLogEntry JobQueueEntry.DeleteAll(); @@ -80,6 +84,8 @@ codeunit 139862 "APIV2JobQueueEntriesE2E" ResponseText: Text; JobQueueLogEntryJSON: Text; begin + Initialize(); + // [SCENARIO] Create 1 JobQueueEntry with 2 corresponding JobQueueLogEntries and use a GET method to retrieve it. // [GIVEN] Clean Job Queue Entries and create a new JobQueueEntry and 3 corresponding JobQueueLogEntries JobQueueEntry.DeleteAll(); @@ -106,6 +112,8 @@ codeunit 139862 "APIV2JobQueueEntriesE2E" TargetURL: Text; ResponseText: Text; begin + Initialize(); + // [SCENARIO] Create 1 JobQueueEntry with status error. Use an action to reschedule the JobQueueEntry // [GIVEN] Clean Job Queue Entries and create a new JobQueueEntry with status error JobQueueEntry.DeleteAll(); @@ -202,4 +210,9 @@ codeunit 139862 "APIV2JobQueueEntriesE2E" until (Index = LibraryGraphMgt.GetCollectionCountFromJSON(JobQueueLogEntryJSON)); Assert.AreEqual(Count, Index, 'The number of Job Queue Log Entries is wrong.'); end; + + local procedure Initialize() + begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + end; } diff --git a/src/Apps/W1/APIV2/test/src/APIV2JobQueueLogEntriesE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2JobQueueLogEntriesE2E.Codeunit.al index d8658c3c787..d6edca608ed 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2JobQueueLogEntriesE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2JobQueueLogEntriesE2E.Codeunit.al @@ -22,6 +22,8 @@ codeunit 139861 "APIV2JobQueueLogEntriesE2E" TargetURL: Text; ResponseText: Text; begin + Initialize(); + // [SCENARIO] Use a GET method to retrieve Job Queue Log Entries // [GIVEN] A new Job Queue Log Entry created JobQueueLogEntry.DeleteAll(); @@ -64,4 +66,9 @@ codeunit 139861 "APIV2JobQueueLogEntriesE2E" JobQueueLogEntry.Insert(); exit(JobQueueLogEntry); end; + + local procedure Initialize() + begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + end; } diff --git a/src/Apps/W1/APIV2/test/src/APIV2JournalsE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2JournalsE2E.Codeunit.al index 94327eb80c0..562bf8f8770 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2JournalsE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2JournalsE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139827 "APIV2 - Journals E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -33,6 +34,8 @@ codeunit 139827 "APIV2 - Journals E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; @@ -191,6 +194,8 @@ codeunit 139827 "APIV2 - Journals E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [GIVEN] A general journal batch with a general journal line BalAccountNo := LibraryERM.CreateGLAccountNoWithDirectPosting(); BalAccountType := GenJournalLine."Bal. Account Type"::"G/L Account"; diff --git a/src/Apps/W1/APIV2/test/src/APIV2LocationsE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2LocationsE2E.Codeunit.al index 78571d30042..cfde982fc3d 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2LocationsE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2LocationsE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139868 "APIV2 - Locations E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -25,6 +26,8 @@ codeunit 139868 "APIV2 - Locations E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2OpportunitiesE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2OpportunitiesE2E.Codeunit.al index ec4d2a08341..5c5426294a8 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2OpportunitiesE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2OpportunitiesE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139855 "APIV2 - Opportunities E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -32,6 +33,8 @@ codeunit 139855 "APIV2 - Opportunities E2E" ResponseText: Text; OpportunityId: Text; begin + Initialize(); + // [SCENARIO] Create an opportunity and use a GET method to retrieve them // [GIVEN] An opportunity ContactNo := LibraryMarketing.CreateCompanyContactNo(); @@ -61,6 +64,8 @@ codeunit 139855 "APIV2 - Opportunities E2E" TargetURL: Text; ResponseText: Text; begin + Initialize(); + // [SCENARIO 184721] Create an opportunity through a POST method and check if it was created // [GIVEN] a JSON text with an Opportunity only with a Description property OpportunityJSON := CreateMinimalOpportunityJSON(OpportunityDescription); @@ -86,6 +91,8 @@ codeunit 139855 "APIV2 - Opportunities E2E" TargetURL: Text; ResponseText: Text; begin + Initialize(); + // [SCENARIO 184721] Create an opportunity through a POST method and check if it was created // [GIVEN] a JSON text with an Opportunity only with a contact no ContactNo := LibraryMarketing.CreateCompanyContactNo(); @@ -126,6 +133,8 @@ codeunit 139855 "APIV2 - Opportunities E2E" TargetURL: Text; ResponseText: Text; begin + Initialize(); + // [SCENARIO 184721] Create an opportunity through a POST method // [GIVEN] a JSON text with an Opportunity only with a contact number that does not exist ContactNo := 'wrongContNo'; @@ -147,6 +156,8 @@ codeunit 139855 "APIV2 - Opportunities E2E" TargetURL: Text; ResponseText: Text; begin + Initialize(); + // [SCENARIO 184721] Create an opportunity through a POST method // [GIVEN] a JSON text with an Opportunity only with a salesperson number that does not exist SalespersonNo := 'wrongSPNo'; @@ -170,6 +181,8 @@ codeunit 139855 "APIV2 - Opportunities E2E" ResponseText: Text; OpportunityId: Guid; begin + Initialize(); + // [SCENARIO] Use a PATCH method to change the description of an opportunity // [GIVEN] An opportunity ContactNo := LibraryMarketing.CreateCompanyContactNo(); @@ -200,6 +213,8 @@ codeunit 139855 "APIV2 - Opportunities E2E" ResponseText: Text; OpportunityId: Guid; begin + Initialize(); + // [SCENARIO] Use a PATCH method to change the contact no of a Won opportunity // [GIVEN] An won opportunity CompanyContactNo := LibraryMarketing.CreateCompanyContactNo(); @@ -229,6 +244,8 @@ codeunit 139855 "APIV2 - Opportunities E2E" ResponseText: Text; OpportunityId: Guid; begin + Initialize(); + // [SCENARIO] Use a PATCH method to change the salesperson code of a Won opportunity // [GIVEN] An won opportunity SalesPersonCode := CreateSalesperson(SalespersonPurchaser); @@ -257,6 +274,8 @@ codeunit 139855 "APIV2 - Opportunities E2E" ResponseText: Text; OpportunityId: Guid; begin + Initialize(); + // [SCENARIO] Use a PATCH method to change the contact no of an opportunity in progress to a contact of a different company // [GIVEN] An won opportunity CompanyContactNo1 := LibraryMarketing.CreateCompanyContactNo(); @@ -409,4 +428,9 @@ codeunit 139855 "APIV2 - Opportunities E2E" Opportunity.SetRange(Description, DescriptionValue); Assert.IsFalse(Opportunity.IsEmpty(), 'Opportunity does not exist'); end; + + local procedure Initialize() + begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + end; } diff --git a/src/Apps/W1/APIV2/test/src/APIV2PDFDocumentE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2PDFDocumentE2E.Codeunit.al index 747bcf9c9eb..4b550815d7d 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2PDFDocumentE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2PDFDocumentE2E.Codeunit.al @@ -2,6 +2,7 @@ codeunit 139841 "APIV2 - PDF Document E2E" { Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -27,6 +28,7 @@ codeunit 139841 "APIV2 - PDF Document E2E" var CompanyInformation: Record "Company Information"; begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); CompanyInformation.Get(); if CompanyInformation."Giro No." = '' then CompanyInformation."Giro No." := '1234567'; diff --git a/src/Apps/W1/APIV2/test/src/APIV2PaymentMethodsE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2PaymentMethodsE2E.Codeunit.al index 7abc809af28..3a152019691 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2PaymentMethodsE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2PaymentMethodsE2E.Codeunit.al @@ -156,6 +156,8 @@ codeunit 139814 "APIV2 - Payment Methods E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2PaymentTermsE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2PaymentTermsE2E.Codeunit.al index b9df4e8d2b9..e55463ad7cb 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2PaymentTermsE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2PaymentTermsE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139804 "APIV2 - Payment Terms E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestPermissions = Disabled; trigger OnRun() @@ -20,6 +21,8 @@ codeunit 139804 "APIV2 - Payment Terms E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2PicturesE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2PicturesE2E.Codeunit.al index 9722ceeaa04..9b5c62aa5fd 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2PicturesE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2PicturesE2E.Codeunit.al @@ -2,6 +2,7 @@ codeunit 139842 "APIV2 - Pictures E2E" { Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -30,6 +31,8 @@ codeunit 139842 "APIV2 - Pictures E2E" [Scope('OnPrem')] procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; @@ -45,6 +48,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TempBlobExpected: Codeunit "Temp Blob"; TargetURL: Text; begin + Initialize(); + // [FEATURE] [Customer] // [SCENARIO] Get value picture from Customer Record @@ -69,6 +74,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TargetURL: Text; Response: Text; begin + Initialize(); + // [FEATURE] [Customer] // [SCENARIO] Get a picture metadata from Customer Record @@ -92,6 +99,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TempBlobResponse: Codeunit "Temp Blob"; TargetURL: Text; begin + Initialize(); + // [FEATURE] [Customer] // [SCENARIO] Get value picture from Customer Record when no image exist @@ -113,6 +122,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TargetURL: Text; Response: Text; begin + Initialize(); + // [FEATURE] [Customer] // [SCENARIO] Get a picture metadata from Customer Record when no image is present @@ -138,6 +149,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TargetURL: Text; Response: Text; begin + Initialize(); + // [FEATURE] [Customer] // [SCENARIO] Set Picture on a customer without picture @@ -170,6 +183,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TargetURL: Text; Response: Text; begin + Initialize(); + // [FEATURE] [Customer] // [SCENARIO] Replace the Picture on a customer @@ -201,6 +216,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TargetURL: Text; Response: Text; begin + Initialize(); + // [FEATURE] [Customer] // [SCENARIO] Replace the Picture on a customer @@ -228,6 +245,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TempBlobExpected: Codeunit "Temp Blob"; TargetURL: Text; begin + Initialize(); + // [FEATURE] [Vendor] // [SCENARIO] Get value picture from Vendor Record @@ -252,6 +271,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TargetURL: Text; Response: Text; begin + Initialize(); + // [FEATURE] [Vendor] // [SCENARIO] Get a picture metadata from Vendor Record @@ -275,6 +296,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TempBlobResponse: Codeunit "Temp Blob"; TargetURL: Text; begin + Initialize(); + // [FEATURE] [Vendor] // [SCENARIO] Get value picture from Vendor Record when no image exist @@ -296,6 +319,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TargetURL: Text; Response: Text; begin + Initialize(); + // [FEATURE] [Vendor] // [SCENARIO] Get a picture metadata from Vendor Record when no image is present @@ -321,6 +346,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TargetURL: Text; Response: Text; begin + Initialize(); + // [FEATURE] [Vendor] // [SCENARIO] Set Picture on a Vendor without picture @@ -353,6 +380,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TargetURL: Text; Response: Text; begin + Initialize(); + // [FEATURE] [Vendor] // [SCENARIO] Replace the Picture on a Vendor @@ -384,6 +413,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TargetURL: Text; Response: Text; begin + Initialize(); + // [FEATURE] [Vendor] // [SCENARIO] Replace the Picture on a Vendor @@ -411,6 +442,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TempBlobExpected: Codeunit "Temp Blob"; TargetURL: Text; begin + Initialize(); + // [FEATURE] [Employee] // [SCENARIO] Get value picture from Employee Record @@ -435,6 +468,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TargetURL: Text; Response: Text; begin + Initialize(); + // [FEATURE] [Employee] // [SCENARIO] Get a picture metadata from Employee Record @@ -458,6 +493,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TempBlobResponse: Codeunit "Temp Blob"; TargetURL: Text; begin + Initialize(); + // [FEATURE] [Employee] // [SCENARIO] Get value picture from Employee Record when no image exist @@ -479,6 +516,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TargetURL: Text; Response: Text; begin + Initialize(); + // [FEATURE] [Employee] // [SCENARIO] Get a picture metadata from Employee Record when no image is present @@ -504,6 +543,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TargetURL: Text; Response: Text; begin + Initialize(); + // [FEATURE] [Employee] // [SCENARIO] Set Picture on a Employee without picture @@ -536,6 +577,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TargetURL: Text; Response: Text; begin + Initialize(); + // [FEATURE] [Employee] // [SCENARIO] Replace the Picture on a Employee @@ -567,6 +610,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TargetURL: Text; Response: Text; begin + Initialize(); + // [FEATURE] [Employee] // [SCENARIO] Replace the Picture on a Employee @@ -594,6 +639,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TempBlobExpected: Codeunit "Temp Blob"; TargetURL: Text; begin + Initialize(); + // [FEATURE] [Item] // [SCENARIO] Get value picture from Item Record @@ -618,6 +665,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TargetURL: Text; Response: Text; begin + Initialize(); + // [FEATURE] [Item] // [SCENARIO] Get a picture metadata from Item Record @@ -641,6 +690,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TempBlobResponse: Codeunit "Temp Blob"; TargetURL: Text; begin + Initialize(); + // [FEATURE] [Item] // [SCENARIO] Get value picture from Item Record when no image exist @@ -662,6 +713,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TargetURL: Text; Response: Text; begin + Initialize(); + // [FEATURE] [Item] // [SCENARIO] Get a picture metadata from Item Record when no image is present @@ -687,6 +740,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TargetURL: Text; Response: Text; begin + Initialize(); + // [FEATURE] [Item] // [SCENARIO] Set Picture on a Item without picture @@ -719,6 +774,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TargetURL: Text; Response: Text; begin + Initialize(); + // [FEATURE] [Item] // [SCENARIO] Replace the Picture on a Item @@ -750,6 +807,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TargetURL: Text; Response: Text; begin + Initialize(); + // [FEATURE] [Item] // [SCENARIO] Replace the Picture on a Item @@ -777,6 +836,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TempBlobExpected: Codeunit "Temp Blob"; TargetURL: Text; begin + Initialize(); + // [FEATURE] [Contact] // [SCENARIO] Get value picture from Contact Record @@ -801,6 +862,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TargetURL: Text; Response: Text; begin + Initialize(); + // [FEATURE] [Contact] // [SCENARIO] Get a picture metadata from Contact Record @@ -824,6 +887,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TempBlobResponse: Codeunit "Temp Blob"; TargetURL: Text; begin + Initialize(); + // [FEATURE] [Contact] // [SCENARIO] Get value picture from Contact Record when no image exist @@ -845,6 +910,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TargetURL: Text; Response: Text; begin + Initialize(); + // [FEATURE] [Contact] // [SCENARIO] Get a picture metadata from Contact Record when no image is present @@ -870,6 +937,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TargetURL: Text; Response: Text; begin + Initialize(); + // [FEATURE] [Contact] // [SCENARIO] Set Picture on a contact without picture @@ -902,6 +971,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TargetURL: Text; Response: Text; begin + Initialize(); + // [FEATURE] [Contact] // [SCENARIO] Replace the Picture on a contact @@ -933,6 +1004,8 @@ codeunit 139842 "APIV2 - Pictures E2E" TargetURL: Text; Response: Text; begin + Initialize(); + // [FEATURE] [Contact] // [SCENARIO] Replace the Picture on a contact diff --git a/src/Apps/W1/APIV2/test/src/APIV2PurchCrMLinesE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2PurchCrMLinesE2E.Codeunit.al index 5c3cc74c6da..7f185b5e037 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2PurchCrMLinesE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2PurchCrMLinesE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139874 "APIV2 - Purch. Cr.M. Lines E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -31,6 +32,8 @@ codeunit 139874 "APIV2 - Purch. Cr.M. Lines E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] Call GET on the lines without providing a parent Credit Memo ID. // [GIVEN] the credit memo API exposedSetAutoCalcFields @@ -57,6 +60,8 @@ codeunit 139874 "APIV2 - Purch. Cr.M. Lines E2E" LineNo: Integer; SequenceValue: Text; begin + Initialize(); + // [SCENARIO] Call GET on the Line of a credit memo // [GIVEN] a credit memo with a line.SetAutoCalcFields CreditMemoId := CreatePurchaseCreditMemoWithLines(PurchaseHeader); @@ -87,6 +92,8 @@ codeunit 139874 "APIV2 - Purch. Cr.M. Lines E2E" LineNo1: Text; LineNo2: Text; begin + Initialize(); + // [SCENARIO] Call GET on the Lines of a unposted Credit Memo // [GIVEN] An credit memo with lines.SetAutoCalcFields CreditMemoID := CreatePurchaseCreditMemoWithLines(PurchaseHeader); @@ -116,6 +123,8 @@ codeunit 139874 "APIV2 - Purch. Cr.M. Lines E2E" LineNo1: Text; LineNo2: Text; begin + Initialize(); + // [SCENARIO] Call GET on the Lines of a credit memo // [GIVEN] a credit memo with lines.SetAutoCalcFields CreditMemoId := CreatePurchaseCreditMemoWithLines(PurchaseHeader); @@ -145,6 +154,8 @@ codeunit 139874 "APIV2 - Purch. Cr.M. Lines E2E" LineNo1: Text; LineNo2: Text; begin + Initialize(); + // [SCENARIO] Call GET on the Lines of a posted Credit Memo // [GIVEN] A posted credit memo with lines.SetAutoCalcFields CreditMemoID := CreatePostedPurchaseCreditMemoWithLines(PurchCrMemoHdr); @@ -173,6 +184,8 @@ codeunit 139874 "APIV2 - Purch. Cr.M. Lines E2E" CreditMemoID: Text; LineNo: Integer; begin + Initialize(); + // [SCENARIO] POST a new line to an unposted Credit Memo // [GIVEN] An existing unposted credit memo and a valid JSON describing the new credit memo lineSetAutoCalcFields CreditMemoID := CreatePurchaseCreditMemoWithLines(PurchaseHeader); @@ -204,6 +217,8 @@ codeunit 139874 "APIV2 - Purch. Cr.M. Lines E2E" CreditMemoID: Text; LineNo: Integer; begin + Initialize(); + // [SCENARIO] POST a new line to an unposted Credit Memo with a sequence number // [GIVEN] An existing unposted credit memo and a valid JSON describing the new credit memo lineSetAutoCalcFields CreditMemoID := CreatePurchaseCreditMemoWithLines(PurchaseHeader); @@ -242,6 +257,8 @@ codeunit 139874 "APIV2 - Purch. Cr.M. Lines E2E" PurchaseQuantity: Integer; PurchaseQuantityFromJSON: Text; begin + Initialize(); + // [SCENARIO] PATCH a line of an unposted Credit Memo // [GIVEN] An unposted credit memo with lines and a valid JSON describing the fields that we want to changeSetAutoCalcFields CreditMemoID := CreatePurchaseCreditMemoWithLines(PurchaseHeader); @@ -279,6 +296,8 @@ codeunit 139874 "APIV2 - Purch. Cr.M. Lines E2E" CreditMemoId: Text; NewSequence: Integer; begin + Initialize(); + // [SCENARIO] PATCH a line of a credit memo will fail if sequence is modified // [GIVEN] A credit memo with lines and a valid JSON describing the fields that we want to changeSetAutoCalcFields CreditMemoId := CreatePurchaseCreditMemoWithLines(PurchaseHeader); @@ -319,6 +338,8 @@ codeunit 139874 "APIV2 - Purch. Cr.M. Lines E2E" CreditMemoID: Text; LineNo: Integer; begin + Initialize(); + // [SCENARIO] DELETE a line from an unposted Credit Memo // [GIVEN] An unposted credit memo with linesSetAutoCalcFields CreditMemoID := CreatePurchaseCreditMemoWithLines(PurchaseHeader); @@ -349,6 +370,8 @@ codeunit 139874 "APIV2 - Purch. Cr.M. Lines E2E" CreditMemoID: Text; LineNo: Integer; begin + Initialize(); + // [SCENARIO] Call DELETE on a line of a posted Credit Memo // [GIVEN] A posted credit memo with linesSetAutoCalcFields CreditMemoID := CreatePostedPurchaseCreditMemoWithLines(PurchCrMemoHdr); @@ -385,6 +408,8 @@ codeunit 139874 "APIV2 - Purch. Cr.M. Lines E2E" ItemNo: Code[20]; VendorNo: Code[20]; begin + Initialize(); + // [SCENARIO] Create an credit memo both through the client UI and through the API and compare their final values. // [GIVEN] An unposted credit memo and a JSON describing the line we want to create LibraryPurchase.CreateVendor(Vendor); @@ -423,6 +448,8 @@ codeunit 139874 "APIV2 - Purch. Cr.M. Lines E2E" ResponseText: Text; LinesJSON: Text; begin + Initialize(); + // [SCENARIO] Getting a line through API lists all possible types // [GIVEN] An credit memo with lines of different typesSetAutoCalcFields CreateCreditMemoWithDifferentLineTypes(PurchaseHeader, ExpectedNumberOfLines); @@ -448,6 +475,8 @@ codeunit 139874 "APIV2 - Purch. Cr.M. Lines E2E" ResponseText: Text; CreditMemoLineJSON: Text; begin + Initialize(); + // [SCENARIO] Posting a line with description only will get a type item // [GIVEN] A post request with description onlySetAutoCalcFields CreatePurchaseCreditMemoWithLines(PurchaseHeader); @@ -483,6 +512,8 @@ codeunit 139874 "APIV2 - Purch. Cr.M. Lines E2E" ResponseText: Text; CreditMemoLineJSON: Text; begin + Initialize(); + // [FEATURE] [Comment] // [SCENARIO] Posting a line with Type Comment and description will make a comment line // [GIVEN] A post request with type and descriptionSetAutoCalcFields @@ -521,6 +552,8 @@ codeunit 139874 "APIV2 - Purch. Cr.M. Lines E2E" CreditMemoLineJSON: Text; CreditMemoID: Text; begin + Initialize(); + // [SCENARIO] PATCH a Type on a line of an unposted Credit Memo // [GIVEN] An unposted credit memo with lines and a valid JSON describing the fields that we want to changeSetAutoCalcFields CreditMemoID := CreatePurchaseCreditMemoWithLines(PurchaseHeader); @@ -552,6 +585,8 @@ codeunit 139874 "APIV2 - Purch. Cr.M. Lines E2E" CreditMemoLineJSON: Text; CreditMemoLineID: Text; begin + Initialize(); + // [SCENARIO] PATCH a Type on a line of an unposted Credit Memo // [GIVEN] An unposted credit memo with lines and a valid JSON describing the fields that we want to changeSetAutoCalcFields CreateCreditMemoWithDifferentLineTypes(PurchaseHeader, ExpectedNumberOfLines); @@ -589,6 +624,8 @@ codeunit 139874 "APIV2 - Purch. Cr.M. Lines E2E" CreditMemoLineJSON: Text; CreditMemoID: Text; begin + Initialize(); + // [SCENARIO] PATCH a Type on a line of an unposted Credit Memo // [GIVEN] An unposted credit memo with lines and a valid JSON describing the fields that we want to changeSetAutoCalcFields CreditMemoID := CreatePurchaseCreditMemoWithLines(PurchaseHeader); @@ -623,6 +660,8 @@ codeunit 139874 "APIV2 - Purch. Cr.M. Lines E2E" CreditMemoID: Text; LineNo: Integer; begin + Initialize(); + // [SCENARIO] POST a new line to an unposted Credit Memo with item variant // [GIVEN] An existing unposted credit memo and a valid JSON describing the new credit memo line with item variantSetAutoCalcFields CreditMemoID := CreatePurchaseCreditMemoWithLines(PurchaseHeader); @@ -659,6 +698,8 @@ codeunit 139874 "APIV2 - Purch. Cr.M. Lines E2E" CreditMemoLineJSON: Text; CreditMemoID: Text; begin + Initialize(); + // [SCENARIO] POST a new line to an unposted Credit Memo with wrong item variant // [GIVEN] An existing unposted credit memo and a valid JSON describing the new credit memo line with item variantSetAutoCalcFields CreditMemoID := CreatePurchaseCreditMemoWithLines(PurchaseHeader); @@ -951,4 +992,9 @@ codeunit 139874 "APIV2 - Purch. Cr.M. Lines E2E" PurchaseLineComment.Description := 'Thank you for your business!'; PurchaseLineComment.Modify(); end; + + local procedure Initialize() + begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + end; } diff --git a/src/Apps/W1/APIV2/test/src/APIV2PurchCrMemosE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2PurchCrMemosE2E.Codeunit.al index 9b687fd3f94..6db441c1f94 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2PurchCrMemosE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2PurchCrMemosE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139865 "APIV2 - Purch. Cr. Memos E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -40,6 +41,8 @@ codeunit 139865 "APIV2 - Purch. Cr. Memos E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] Create posted and unposted purchase credit memos and use a GET method to retrieve them // [GIVEN] 2 credit memos, one posted and one unposted CreatePurchaseCreditMemos(CreditMemoNo1, CreditMemoNo2); @@ -72,8 +75,11 @@ codeunit 139865 "APIV2 - Purch. Cr. Memos E2E" TargetURL: Text; CreditMemo: Text; begin + Initialize(); + // [SCENARIO] Create posted and unposted Purchase credit memos and use HTTP POST to delete them // [GIVEN] 2 credit memos, one posted and one unposted + LibraryGraphMgt.SetLicenseSafeWorkDate(); LibraryPurchase.CreateVendorWithAddress(BuyFromVendor); LibraryPurchase.CreateVendorWithAddress(PayToVendor); VendorNo := BuyFromVendor."No."; @@ -116,6 +122,8 @@ codeunit 139865 "APIV2 - Purch. Cr. Memos E2E" CreditMemoJSON: Text; CurrencyCode: Code[10]; begin + Initialize(); + // [SCENARIO] Create posted and unposted with specific currency set and use HTTP POST to create them // [GIVEN] an CreditMemo with a non-LCY currencyCode set @@ -157,6 +165,8 @@ codeunit 139865 "APIV2 - Purch. Cr. Memos E2E" CreditMemoJSON: Text; VendorCreditMemoNumber: Text; begin + Initialize(); + // [SCENARIO] Create posted and unposted with specific vendor credit memo number set and use HTTP POST to create them // [GIVEN] A credit memo with vendor credit memo number set @@ -187,18 +197,24 @@ codeunit 139865 "APIV2 - Purch. Cr. Memos E2E" [Test] procedure TestModifyCreditMemos() begin + Initialize(); + TestMultipleModifyCreditMemos(false, false); end; [Test] procedure TestEmptyModifyCreditMemos() begin + Initialize(); + TestMultipleModifyCreditMemos(true, false); end; [Test] procedure TestPartialModifyCreditMemos() begin + Initialize(); + TestMultipleModifyCreditMemos(false, true); end; @@ -275,6 +291,8 @@ codeunit 139865 "APIV2 - Purch. Cr. Memos E2E" CreditMemoNo: Text; CreditMemoID: Text; begin + Initialize(); + // [SCENARIO] Create unposted purchase credit memo and use HTTP DELETE to delete it // [GIVEN] An unposted credit memo CreateDraftPurchaseCreditMemo(PurchaseHeader); @@ -306,9 +324,12 @@ codeunit 139865 "APIV2 - Purch. Cr. Memos E2E" CreditMemoPostingDate: Date; CreditMemoJSON: Text; begin + Initialize(); + // [SCENARIO] Create an credit memo both through the client UI and through the API // [SCENARIO] and compare them. They should be the same and have the same fields autocompleted wherever needed. // [GIVEN] An unposted credit memo + LibraryGraphMgt.SetLicenseSafeWorkDate(); LibraryGraphDocumentTools.InitializeUIPage(); LibraryPurchase.CreateVendor(BuyFromVendor); @@ -344,6 +365,8 @@ codeunit 139865 "APIV2 - Purch. Cr. Memos E2E" ResponseText: Text; CreditMemoID: Text; begin + Initialize(); + // [SCENARIO 184721] Create Credit Memo, use a PATCH method to change it and then verify the changes LibraryPurchase.CreateVendorWithAddress(Vendor); @@ -390,6 +413,8 @@ codeunit 139865 "APIV2 - Purch. Cr. Memos E2E" ResponseText: Text; CreditMemoID: Text; begin + Initialize(); + // [SCENARIO 184721] Clearing manually set discount // [GIVEN] an item with unit price and unit cost @@ -440,6 +465,8 @@ codeunit 139865 "APIV2 - Purch. Cr. Memos E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can post a purchase credit memo through the API. LibraryERMCountryData.UpdatePurchasesPayablesSetup(); // [GIVEN] Draft purchase credit memo exists @@ -473,6 +500,8 @@ codeunit 139865 "APIV2 - Purch. Cr. Memos E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can cancel a posted purchase credit memo through API. // [GIVEN] Non-corrective purchase credit memo exists @@ -501,6 +530,8 @@ codeunit 139865 "APIV2 - Purch. Cr. Memos E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can cancel a posted purchase credit memo through API. // [GIVEN] Corrective purchase credit memo exists @@ -715,5 +746,10 @@ codeunit 139865 "APIV2 - Purch. Cr. Memos E2E" Assert.IsTrue(PurchCrMemoEntityBuffer.FindFirst(), CannotFindPostedCreditMemoErr); Assert.AreEqual(Status, PurchCrMemoEntityBuffer.Status, CreditMemoStatusErr); end; + + local procedure Initialize() + begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + end; } diff --git a/src/Apps/W1/APIV2/test/src/APIV2PurchOrderLinesE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2PurchOrderLinesE2E.Codeunit.al index 676a8de94df..a42869b4cd6 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2PurchOrderLinesE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2PurchOrderLinesE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139852 "APIV2 - Purch. Order Lines E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -31,6 +32,8 @@ codeunit 139852 "APIV2 - Purch. Order Lines E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2PurchRcptLinesE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2PurchRcptLinesE2E.Codeunit.al index a992142d98d..16bbab08cfe 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2PurchRcptLinesE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2PurchRcptLinesE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139850 "APIV2 - Purch. Rcpt. Lines E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -30,6 +31,8 @@ codeunit 139850 "APIV2 - Purch. Rcpt. Lines E2E" LineNo: Integer; SequenceValue: Text; begin + Initialize(); + // [SCENARIO] Call GET on the Line of a purchase receipt // [GIVEN] A receipt with a line. LibraryPurchase.CreatePurchaseOrder(PurchaseHeader); @@ -63,6 +66,8 @@ codeunit 139850 "APIV2 - Purch. Rcpt. Lines E2E" LineNo1: Text; LineNo2: Text; begin + Initialize(); + // [SCENARIO] Call GET on the Lines of a Purchase Receipt // [GIVEN] A purchase receipt with lines. CreatePurchaseOrderMultipleLines(PurchaseHeader); @@ -104,6 +109,8 @@ codeunit 139850 "APIV2 - Purch. Rcpt. Lines E2E" LineNo1: Text; LineNo2: Text; begin + Initialize(); + // [SCENARIO] Call GET on the Lines of a purchase receipt // [GIVEN] A purchase receipt with lines. CreatePurchaseOrderMultipleLines(PurchaseHeader); @@ -137,6 +144,8 @@ codeunit 139850 "APIV2 - Purch. Rcpt. Lines E2E" LineIdTxt: Text; DimensionSetValue: Text; begin + Initialize(); + // [SCENARIO] Call GET on the Line of a purchase receipt and expand the dimension set lines // [GIVEN] A receipt with a line. PurchRcptHeader.FindFirst(); @@ -251,4 +260,9 @@ codeunit 139850 "APIV2 - Purch. Rcpt. Lines E2E" exit(TargetURL); end; + + local procedure Initialize() + begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + end; } diff --git a/src/Apps/W1/APIV2/test/src/APIV2PurchaseInvLinesE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2PurchaseInvLinesE2E.Codeunit.al index 2827f137ad6..32c4d73c9a9 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2PurchaseInvLinesE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2PurchaseInvLinesE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139838 "APIV2 - Purchase Inv Lines E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -31,6 +32,8 @@ codeunit 139838 "APIV2 - Purchase Inv Lines E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2PurchaseInvoicesE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2PurchaseInvoicesE2E.Codeunit.al index 880f8ffa5c1..1b2f032239c 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2PurchaseInvoicesE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2PurchaseInvoicesE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139829 "APIV2 - Purchase Invoices E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -31,6 +32,7 @@ codeunit 139829 "APIV2 - Purchase Invoices E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); end; [Test] @@ -76,6 +78,8 @@ codeunit 139829 "APIV2 - Purchase Invoices E2E" OrderIdValue: Text; OrderNoValue: Text; begin + Initialize(); + // [SCENARIO] Create a Purchase Invoice from a Purchase Order and use GET method to retrieve them and check the orderId and orderNumber // [GIVEN] A purchase invoice created by posting a purchase order LibraryPurchase.CreatePurchaseOrder(PurchaseHeader); @@ -445,6 +449,8 @@ codeunit 139829 "APIV2 - Purchase Invoices E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can map systemId with Draft Invoice SystemId // [GIVEN] Posted purchase invoice exists diff --git a/src/Apps/W1/APIV2/test/src/APIV2PurchaseOrdersE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2PurchaseOrdersE2E.Codeunit.al index 9562a589e69..d9cb8200f91 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2PurchaseOrdersE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2PurchaseOrdersE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139851 "APIV2 - Purchase Orders E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -32,7 +33,7 @@ codeunit 139851 "APIV2 - Purchase Orders E2E" local procedure Initialize() begin - WorkDate := Today(); + LibraryGraphMgt.SetLicenseSafeWorkDate(); end; [Test] @@ -93,8 +94,8 @@ codeunit 139851 "APIV2 - Purchase Orders E2E" ShipToVendor.Modify(true); Commit(); VendorNo := BuyFromVendor."No."; - OrderDate := Today(); - PostingDate := Today(); + OrderDate := WorkDate(); + PostingDate := WorkDate(); // [GIVEN] a JSON text with an order that contains the vendor and an address OrderJSON := CreateOrderJSONWithAddress(BuyFromVendor, PayToVendor, ShipToVendor, OrderDate, PostingDate); @@ -144,8 +145,8 @@ codeunit 139851 "APIV2 - Purchase Orders E2E" LibraryPurchase.CreateVendorWithAddress(BuyFromVendor); LibraryPurchase.CreateVendorWithAddress(PayToVendor); VendorNo := BuyFromVendor."No."; - OrderDate := Today(); - PostingDate := Today(); + OrderDate := WorkDate(); + PostingDate := WorkDate(); // [GIVEN] a JSON text with an order that contains the vendor and an address OrderJSON := CreateOrderJSONWithoutShipTo(BuyFromVendor, PayToVendor, OrderDate, PostingDate); @@ -403,8 +404,8 @@ codeunit 139851 "APIV2 - Purchase Orders E2E" // [GIVEN] a customer LibraryPurchase.CreateVendor(Vendor); VendorNo := Vendor."No."; - OrderDate := Today(); - PostingDate := Today(); + OrderDate := WorkDate(); + PostingDate := WorkDate(); // [GIVEN] a json describing our new order OrderJSON := CreateOrderJSONWithAddress(Vendor, Vendor, Vendor, OrderDate, PostingDate); @@ -604,6 +605,8 @@ codeunit 139851 "APIV2 - Purchase Orders E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can recieve and invoice a purchase order through the API. // [GIVEN] Create vendors and a Purchase order with lines @@ -668,6 +671,7 @@ codeunit 139851 "APIV2 - Purchase Orders E2E" PurchaseOrder."Buy-from Vendor No.".SetValue(Vendor."No."); PurchaseOrder."Document Date".SetValue(DocumentDate); PurchaseOrder."Posting Date".SetValue(PostingDate); + PurchaseOrder."Order Date".SetValue(DocumentDate); end; local procedure CheckShippingDetailsNotEmpty(var PurchaseHeader: Record "Purchase Header") diff --git a/src/Apps/W1/APIV2/test/src/APIV2PurchaseReceiptsE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2PurchaseReceiptsE2E.Codeunit.al index 1d54398704b..cc71c126227 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2PurchaseReceiptsE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2PurchaseReceiptsE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139849 "APIV2 - Purchase Receipts E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -27,6 +28,8 @@ codeunit 139849 "APIV2 - Purchase Receipts E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] Create 2 purchase receipts (post sales order) and use a GET method to retrieve them // [GIVEN] 2 posted purchase receipts LibraryPurchase.CreatePurchaseOrder(PurchaseHeader); @@ -57,6 +60,8 @@ codeunit 139849 "APIV2 - Purchase Receipts E2E" ReceiptIdTxt: Text; DimensionSetValue: Text; begin + Initialize(); + // [SCENARIO] Call GET on purchase receipt and expand the dimension set lines // [GIVEN] A purchase receipt. @@ -107,4 +112,9 @@ codeunit 139849 "APIV2 - Purchase Receipts E2E" exit(TargetURL); end; + + local procedure Initialize() + begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + end; } diff --git a/src/Apps/W1/APIV2/test/src/APIV2RetEarningsE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2RetEarningsE2E.Codeunit.al index 9667e49142f..1f5d5538293 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2RetEarningsE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2RetEarningsE2E.Codeunit.al @@ -63,6 +63,8 @@ codeunit 139821 "APIV2 - Ret. Earnings E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2SalesCrMemoLinesE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2SalesCrMemoLinesE2E.Codeunit.al index b09622837f0..3a45d9baa04 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2SalesCrMemoLinesE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2SalesCrMemoLinesE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139837 "APIV2 - Sales CrMemo Lines E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -31,6 +32,8 @@ codeunit 139837 "APIV2 - Sales CrMemo Lines E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2SalesCreditMemosE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2SalesCreditMemosE2E.Codeunit.al index 22238f2b887..f52ecbcdf53 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2SalesCreditMemosE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2SalesCreditMemosE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139828 "APIV2 - Sales Credit Memos E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -57,6 +58,8 @@ codeunit 139828 "APIV2 - Sales Credit Memos E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] Create posted and unposted sales credit memos and use a GET method to retrieve them // [GIVEN] 2 credit memos, one posted and one unposted CreateSalesCreditMemos(CreditMemoNo1, CreditMemoNo2); @@ -89,9 +92,12 @@ codeunit 139828 "APIV2 - Sales Credit Memos E2E" TargetURL: Text; CreditMemo: Text; begin + Initialize(); + // [SCENARIO] Create posted and unposted Sales credit memos and use HTTP POST to delete them // [GIVEN] 2 credit memos, one posted and one unposted + LibraryGraphMgt.SetLicenseSafeWorkDate(); LibrarySales.CreateCustomerWithAddress(SellToCustomer); LibrarySales.CreateCustomerWithAddress(BillToCustomer); CustomerNo := SellToCustomer."No."; @@ -134,6 +140,8 @@ codeunit 139828 "APIV2 - Sales Credit Memos E2E" CreditMemoJSON: Text; CurrencyCode: Code[10]; begin + Initialize(); + // [SCENARIO] Create posted and unposted with specific currency set and use HTTP POST to create them // [GIVEN] an CreditMemo with a non-LCY currencyCode set @@ -166,18 +174,24 @@ codeunit 139828 "APIV2 - Sales Credit Memos E2E" [Test] procedure TestModifyCreditMemos() begin + Initialize(); + TestMultipleModifyCreditMemos(false, false); end; [Test] procedure TestEmptyModifyCreditMemos() begin + Initialize(); + TestMultipleModifyCreditMemos(true, false); end; [Test] procedure TestPartialModifyCreditMemos() begin + Initialize(); + TestMultipleModifyCreditMemos(false, true); end; @@ -253,6 +267,8 @@ codeunit 139828 "APIV2 - Sales Credit Memos E2E" CreditMemoNo: Text; CreditMemoID: Text; begin + Initialize(); + // [SCENARIO] Create unposted sales credit memo and use HTTP DELETE to delete it // [GIVEN] An unposted credit memo CreateDraftSalesCreditMemo(SalesHeader); @@ -284,9 +300,12 @@ codeunit 139828 "APIV2 - Sales Credit Memos E2E" CreditMemoPostingDate: Date; CreditMemoJSON: Text; begin + Initialize(); + // [SCENARIO] Create an credit memo both through the client UI and through the API // [SCENARIO] and compare them. They should be the same and have the same fields autocompleted wherever needed. // [GIVEN] An unposted credit memo + LibraryGraphMgt.SetLicenseSafeWorkDate(); LibraryGraphDocumentTools.InitializeUIPage(); LibrarySales.CreateCustomer(SellToCustomer); @@ -317,6 +336,8 @@ codeunit 139828 "APIV2 - Sales Credit Memos E2E" TargetURL: Text; DiscountPct: Decimal; begin + Initialize(); + // [SCENARIO] When an credit memo is created,the GET Method should update the credit memo and assign a total // [GIVEN] 2 credit memos, one posted and one unposted without totals assigned LibraryGraphDocumentTools.CreateDocumentWithDiscountPctPending( @@ -349,6 +370,8 @@ codeunit 139828 "APIV2 - Sales Credit Memos E2E" DiscountAmt: Decimal; InvDiscAmount: Decimal; begin + Initialize(); + // [SCENARIO] When an credit memo is created, the GET Method should update the credit memo and assign a total // [GIVEN] 2 credit memos, one posted and one unposted with discount amount that should be redistributed LibraryGraphDocumentTools.CreateDocumentWithDiscountPctPending( @@ -388,6 +411,8 @@ codeunit 139828 "APIV2 - Sales Credit Memos E2E" ResponseText: Text; CreditMemoID: Text; begin + Initialize(); + // [SCENARIO 184721] Create Credit Memo, use a PATCH method to change it and then verify the changes LibrarySales.CreateCustomerWithAddress(Customer); @@ -434,6 +459,8 @@ codeunit 139828 "APIV2 - Sales Credit Memos E2E" ResponseText: Text; CreditMemoID: Text; begin + Initialize(); + // [SCENARIO 184721] Clearing manually set discount // [GIVEN] an item with unit price and unit cost @@ -489,6 +516,8 @@ codeunit 139828 "APIV2 - Sales Credit Memos E2E" PostedCreditMemoEmailAddress: Text; PostedCreditMemoEmailSubject: Text; begin + Initialize(); + // [SCENARIO] User can post a sales credit memo through the API. // [GIVEN] Draft sales credit memo exists @@ -536,6 +565,8 @@ codeunit 139828 "APIV2 - Sales Credit Memos E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can post and send a sales credit memo through the API. InitializeForSending(); @@ -574,6 +605,8 @@ codeunit 139828 "APIV2 - Sales Credit Memos E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can cancel a posted sales credit memo through API. // [GIVEN] Non-corrective sales credit memo exists @@ -602,6 +635,8 @@ codeunit 139828 "APIV2 - Sales Credit Memos E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can cancel a posted sales credit memo through API. // [GIVEN] Corrective sales credit memo exists @@ -634,6 +669,8 @@ codeunit 139828 "APIV2 - Sales Credit Memos E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can cancel a posted sales credit memo through API. InitializeForSending(); @@ -670,6 +707,8 @@ codeunit 139828 "APIV2 - Sales Credit Memos E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can send a posted sales credit memo through the API. InitializeForSending(); @@ -702,6 +741,8 @@ codeunit 139828 "APIV2 - Sales Credit Memos E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] Sending a draft sales credit memo through the API throws an error InitializeForSending(); @@ -731,6 +772,8 @@ codeunit 139828 "APIV2 - Sales Credit Memos E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can send a draft sales credit memo through the API. InitializeForSending(); @@ -1044,5 +1087,10 @@ codeunit 139828 "APIV2 - Sales Credit Memos E2E" while JobQueueEntry.FindJobQueueEntry(JobQueueEntry."Object Type to Run"::Codeunit, CodeunitID) do JobQueueEntry.Cancel(); end; + + local procedure Initialize() + begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + end; } diff --git a/src/Apps/W1/APIV2/test/src/APIV2SalesInvLinesE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2SalesInvLinesE2E.Codeunit.al index 0f7c0061d23..415cc681b9b 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2SalesInvLinesE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2SalesInvLinesE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139834 "APIV2 - Sales Inv. Lines E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -32,6 +33,8 @@ codeunit 139834 "APIV2 - Sales Inv. Lines E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2SalesInvoicesE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2SalesInvoicesE2E.Codeunit.al index f077392f188..37722082ff0 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2SalesInvoicesE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2SalesInvoicesE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139809 "APIV2 - Sales Invoices E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -71,6 +72,8 @@ codeunit 139809 "APIV2 - Sales Invoices E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO 184721] Create posted and unposted Sales invoices and use a GET method to retrieve them // [GIVEN] 2 invoices, one posted and one unposted CreateSalesInvoices(InvoiceID1, InvoiceID2); @@ -103,6 +106,8 @@ codeunit 139809 "APIV2 - Sales Invoices E2E" OrderIdValue: Text; OrderNoValue: Text; begin + Initialize(); + // [SCENARIO] Create a Sales Invoice from a Sales Order and use GET method to retrieve them and check the orderId and orderNumber // [GIVEN] A sales invoice created by posting a sales order LibrarySales.CreateSalesOrder(SalesHeader); @@ -146,9 +151,12 @@ codeunit 139809 "APIV2 - Sales Invoices E2E" TargetURL: Text; InvoiceJSON: Text; begin + Initialize(); + // [SCENARIO 184721] Create posted and unposted Sales invoices and use HTTP POST to delete them // [GIVEN] 2 invoices, one posted and one unposted + LibraryGraphMgt.SetLicenseSafeWorkDate(); LibrarySales.CreateCustomer(SellToCustomer); LibrarySales.CreateCustomer(BillToCustomer); LibrarySales.CreateCustomer(ShipToCustomer); @@ -196,6 +204,8 @@ codeunit 139809 "APIV2 - Sales Invoices E2E" InvoiceJSON: Text; CurrencyCode: Code[10]; begin + Initialize(); + // [SCENARIO 184721] Create posted and unposted with specific currency set and use HTTP POST to create them // [GIVEN] an Invoice with a non-LCY currencyCode set @@ -243,6 +253,8 @@ codeunit 139809 "APIV2 - Sales Invoices E2E" Email: Text; CurrencyCode: Code[10]; begin + Initialize(); + // [SCENARIO 285872] Create posted and unposted with specific email set and use HTTP POST to create them Email := 'test@microsoft.com'; // [GIVEN] an Customer with no email set @@ -294,8 +306,12 @@ codeunit 139809 "APIV2 - Sales Invoices E2E" TargetURL: Text; InvoiceJSON: Text; begin + Initialize(); + // [SCENARIO 184721] Create unposted with specific document and due date set and use HTTP POST to create them + LibraryGraphMgt.SetLicenseSafeWorkDate(); + // [GIVEN] an Invoice with a document and due date set LibrarySales.CreateCustomer(Customer); CustomerNo := Customer."No."; @@ -334,18 +350,24 @@ codeunit 139809 "APIV2 - Sales Invoices E2E" [Test] procedure TestModifyInvoices() begin + Initialize(); + TestMultipleModifyInvoices(false, false); end; [Test] procedure TestEmptyModifyInvoices() begin + Initialize(); + TestMultipleModifyInvoices(true, false); end; [Test] procedure TestPartialModifyInvoices() begin + Initialize(); + TestMultipleModifyInvoices(false, true); end; @@ -437,6 +459,8 @@ codeunit 139809 "APIV2 - Sales Invoices E2E" TargetURL: Text; InvoiceWithBlanksJSON: Text; begin + Initialize(); + // [SCENARIO 184721] Create Sales Invoice with all the Ids filled, use a PATCH method to blank the Ids and the Codes LibrarySales.CreateCustomerWithAddress(Customer); @@ -501,6 +525,8 @@ codeunit 139809 "APIV2 - Sales Invoices E2E" NewInvoiceNumber: Text; NewInvoiceNumberJSON: Text; begin + Initialize(); + // [SCENARIO 184721] Create draft invoice and issue a patch request to change the number // [GIVEN] 1 draft invoice and a json with a new number LibrarySales.CreateSalesInvoice(SalesHeader); @@ -523,6 +549,8 @@ codeunit 139809 "APIV2 - Sales Invoices E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO 184721] Create unposted Sales invoice and use HTTP DELETE to delete it // [GIVEN] An unposted invoice CreateDraftSalesInvoice(SalesHeader); @@ -560,9 +588,12 @@ codeunit 139809 "APIV2 - Sales Invoices E2E" TargetURL: Text; InvoiceJSON: Text; begin + Initialize(); + // [SCENARIO 184721] Create an invoice both through the client UI and through the API // [SCENARIO] and compare them. They should be the same and have the same fields autocompleted wherever needed. // [GIVEN] An unposted invoice + LibraryGraphMgt.SetLicenseSafeWorkDate(); LibraryGraphDocumentTools.InitializeUIPage(); LibraryApplicationArea.DisableApplicationAreaSetup(); @@ -622,6 +653,8 @@ codeunit 139809 "APIV2 - Sales Invoices E2E" TargetURL: Text; DiscountPct: Decimal; begin + Initialize(); + // [SCENARIO 184721] When an invoice is created,the GET Method should update the invoice and assign a total // [GIVEN] 2 invoices, one posted and one unposted without totals assigned LibraryApplicationArea.EnableFoundationSetup(); @@ -655,6 +688,8 @@ codeunit 139809 "APIV2 - Sales Invoices E2E" DiscountAmt: Decimal; InvDiscAmount: Decimal; begin + Initialize(); + // [SCENARIO 184721] When an invoice is created, the GET Method should update the invoice and assign a total // [GIVEN] 2 invoices, one posted and one unposted with discount amount that should be redistributed LibraryGraphDocumentTools.CreateDocumentWithDiscountPctPending( @@ -690,6 +725,8 @@ codeunit 139809 "APIV2 - Sales Invoices E2E" InvoiceJSON: Text; CurrencyCode: Code[10]; begin + Initialize(); + // [SCENARIO 184721] Create an invoice wihtout Customer throws an error // [GIVEN] a sales invoice JSON with currency only @@ -718,6 +755,8 @@ codeunit 139809 "APIV2 - Sales Invoices E2E" ResponseText: Text; InvoiceID: Text; begin + Initialize(); + // [SCENARIO 184721] Create Sales Invoice, use a PATCH method to change it and then verify the changes LibrarySales.CreateCustomerWithAddress(Customer); @@ -764,6 +803,8 @@ codeunit 139809 "APIV2 - Sales Invoices E2E" ResponseText: Text; InvoiceID: Text; begin + Initialize(); + // [SCENARIO 184721] Clearing manually set discount // [GIVEN] an item with unit price and unit cost @@ -820,6 +861,8 @@ codeunit 139809 "APIV2 - Sales Invoices E2E" PostedInvoiceEmailAddress: Text; PostedInvoiceEmailSubject: Text; begin + Initialize(); + // [SCENARIO] User can post a sales invoice through the API. // [GIVEN] Draft sales invoice exists @@ -866,6 +909,8 @@ codeunit 139809 "APIV2 - Sales Invoices E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can post and send a sales invoice through the API. InitializeForSending(); @@ -904,6 +949,8 @@ codeunit 139809 "APIV2 - Sales Invoices E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can cancel a posted sales invoice through API. // [GIVEN] Posted sales invoice exists @@ -940,6 +987,8 @@ codeunit 139809 "APIV2 - Sales Invoices E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can cancel a posted sales invoice through API. InitializeForSending(); @@ -980,6 +1029,8 @@ codeunit 139809 "APIV2 - Sales Invoices E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can send a posted sales invoice through the API. InitializeForSending(); @@ -1012,6 +1063,8 @@ codeunit 139809 "APIV2 - Sales Invoices E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can send a draft sales invoice through the API. InitializeForSending(); @@ -1044,6 +1097,8 @@ codeunit 139809 "APIV2 - Sales Invoices E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can send a draft sales invoice through the API. InitializeForSending(); @@ -1084,6 +1139,8 @@ codeunit 139809 "APIV2 - Sales Invoices E2E" CreditMemoEmailAddress: Text; CreditMemoEmailSubject: Text; begin + Initialize(); + // [SCENARIO] User can create a corrective credit memo for the posted sales invoice through the API. // [GIVEN] A posted sales invoice exists @@ -1128,6 +1185,8 @@ codeunit 139809 "APIV2 - Sales Invoices E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can map systemId with Draft Invoice SystemId // [GIVEN] Posted sales invoice exists @@ -1381,4 +1440,9 @@ codeunit 139809 "APIV2 - Sales Invoices E2E" LibraryGraphMgt.VerifyIDInJson(ResponseText); end; + + local procedure Initialize() + begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + end; } diff --git a/src/Apps/W1/APIV2/test/src/APIV2SalesOrderLinesE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2SalesOrderLinesE2E.Codeunit.al index ed06d974593..701c6a896ae 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2SalesOrderLinesE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2SalesOrderLinesE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139835 "APIV2 - Sales Order Lines E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -31,6 +32,8 @@ codeunit 139835 "APIV2 - Sales Order Lines E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2SalesOrdersE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2SalesOrdersE2E.Codeunit.al index 0bcd3b9de7d..db27e424803 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2SalesOrdersE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2SalesOrdersE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139811 "APIV2 - Sales Orders E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -39,6 +40,8 @@ codeunit 139811 "APIV2 - Sales Orders E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO 184721] Create Sales Orders and use a GET method to retrieve them // [GIVEN] 2 orders in the table @@ -77,8 +80,12 @@ codeunit 139811 "APIV2 - Sales Orders E2E" TargetURL: Text; OrderJSON: Text; begin + Initialize(); + // [SCENARIO 184721] Create sales orders JSON and use HTTP POST to create them + LibraryGraphMgt.SetLicenseSafeWorkDate(); + // [GIVEN] a customer LibrarySales.CreateCustomerWithAddress(SellToCustomer); LibrarySales.CreateCustomerWithAddress(BillToCustomer); @@ -126,6 +133,8 @@ codeunit 139811 "APIV2 - Sales Orders E2E" TargetURL: Text; OrderJSON: Text; begin + Initialize(); + // [SCENARIO 184721] Create sales order for customer with location and use HTTP POST to create it // [GIVEN] an order with customer with location code @@ -169,6 +178,8 @@ codeunit 139811 "APIV2 - Sales Orders E2E" OrderJSON: Text; CurrencyCode: Code[10]; begin + Initialize(); + // [SCENARIO 184721] Create sales order with specific currency set and use HTTP POST to create it // [GIVEN] an order with a non-LCY currencyCode set @@ -204,18 +215,24 @@ codeunit 139811 "APIV2 - Sales Orders E2E" [Test] procedure TestModifyOrders() begin + Initialize(); + TestMultipleModifyOrders(false, false); end; [Test] procedure TestEmptyModifyOrders() begin + Initialize(); + TestMultipleModifyOrders(true, false); end; [Test] procedure TestPartialModifyOrders() begin + Initialize(); + TestMultipleModifyOrders(false, true); end; @@ -284,6 +301,8 @@ codeunit 139811 "APIV2 - Sales Orders E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO 184721] Create sales orders and use HTTP DELETE to delete them // [GIVEN] 2 orders in the table @@ -330,7 +349,10 @@ codeunit 139811 "APIV2 - Sales Orders E2E" TargetURL: Text; OrderJSON: Text; begin + Initialize(); + // [SCENARIO 184721] Create an order both through the client UI and through the API and compare them. They should be the same and have the same fields autocompleted wherever needed. + LibraryGraphMgt.SetLicenseSafeWorkDate(); LibraryGraphDocumentTools.InitializeUIPage(); // [GIVEN] a customer @@ -389,6 +411,8 @@ codeunit 139811 "APIV2 - Sales Orders E2E" TargetURL: Text; DiscountPct: Decimal; begin + Initialize(); + // [SCENARIO 184721] When an order is created, the GET Method should update the order and assign a total // [GIVEN] an order without totals assigned LibraryGraphDocumentTools.CreateDocumentWithDiscountPctPending(SalesHeader, DiscountPct, SalesHeader."Document Type"::Order); @@ -418,6 +442,8 @@ codeunit 139811 "APIV2 - Sales Orders E2E" DiscountAmt: Decimal; InvDiscAmount: Decimal; begin + Initialize(); + // [SCENARIO 184721] When an order is created, the GET Method should update the order and redistribute the discount amount // [GIVEN] an order with discount amount that should be redistributed LibraryGraphDocumentTools.CreateDocumentWithDiscountPctPending(SalesHeader, DiscountPct, SalesHeader."Document Type"::Order); @@ -452,6 +478,8 @@ codeunit 139811 "APIV2 - Sales Orders E2E" OrderNo: Text; OrderId: Guid; begin + Initialize(); + // [SCENARIO 184721] Create Sales Order, use a PATCH method to change it and then verify the changes // [GIVEN] an order with lines @@ -488,6 +516,8 @@ codeunit 139811 "APIV2 - Sales Orders E2E" ResponseText: Text; OrderNo: Text; begin + Initialize(); + // [SCENARIO 184721] Clearing manually set discount // [GIVEN] an order @@ -524,6 +554,8 @@ codeunit 139811 "APIV2 - Sales Orders E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can ship and invoice a sales order through the API. // [GIVEN] a sales order with lines @@ -645,4 +677,9 @@ codeunit 139811 "APIV2 - Sales Orders E2E" LibraryGraphMgt.VerifyIDInJson(ResponseText); end; + + local procedure Initialize() + begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + end; } diff --git a/src/Apps/W1/APIV2/test/src/APIV2SalesQuoteLinesE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2SalesQuoteLinesE2E.Codeunit.al index 98fc9592afa..1d110b1ccde 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2SalesQuoteLinesE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2SalesQuoteLinesE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139836 "APIV2 - Sales Quote Lines E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -29,6 +30,8 @@ codeunit 139836 "APIV2 - Sales Quote Lines E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2SalesQuotesE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2SalesQuotesE2E.Codeunit.al index f2361d4ee10..258ccd11ca8 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2SalesQuotesE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2SalesQuotesE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139823 "APIV2 - Sales Quotes E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -61,6 +62,8 @@ codeunit 139823 "APIV2 - Sales Quotes E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] Create Sales Quotes and use a GET method to retrieve them // [GIVEN] 2 quotes in the table @@ -99,8 +102,12 @@ codeunit 139823 "APIV2 - Sales Quotes E2E" QuoteJSON: Text; QuoteExists: Boolean; begin + Initialize(); + // [SCENARIO] Create sales quotes JSON and use HTTP POST to create them + LibraryGraphMgt.SetLicenseSafeWorkDate(); + // [GIVEN] a customer LibrarySales.CreateCustomerWithAddress(SellToCustomer); LibrarySales.CreateCustomerWithAddress(ShipToCustomer); @@ -144,6 +151,8 @@ codeunit 139823 "APIV2 - Sales Quotes E2E" CurrencyCode: Code[10]; QuoteExists: Boolean; begin + Initialize(); + // [SCENARIO] Create sales quote with specific currency set and use HTTP POST to create it // [GIVEN] a quote with a non-LCY currencyCode set @@ -175,18 +184,24 @@ codeunit 139823 "APIV2 - Sales Quotes E2E" [Test] procedure TestModifyQuotes() begin + Initialize(); + TestMultipleModifyQuotes(false, false); end; [Test] procedure TestEmptyModifyQuotes() begin + Initialize(); + TestMultipleModifyQuotes(true, false); end; [Test] procedure TestPartialModifyQuotes() begin + Initialize(); + TestMultipleModifyQuotes(false, true); end; @@ -270,6 +285,8 @@ codeunit 139823 "APIV2 - Sales Quotes E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] Create sales quotes and use HTTP DELETE to delete them // [GIVEN] 2 quotes in the table @@ -316,7 +333,10 @@ codeunit 139823 "APIV2 - Sales Quotes E2E" QuoteJSON: Text; QuoteExists: Boolean; begin + Initialize(); + // [SCENARIO] Create a quote both through the client UI and through the API and compare them. They should be the same and have the same fields autocompleted wherever needed. + LibraryGraphMgt.SetLicenseSafeWorkDate(); LibraryGraphDocumentTools.InitializeUIPage(); // [GIVEN] a customer @@ -370,6 +390,8 @@ codeunit 139823 "APIV2 - Sales Quotes E2E" TargetURL: Text; DiscountPct: Decimal; begin + Initialize(); + // [SCENARIO] When a quote is created, the GET Method should update the quote and assign a total // [GIVEN] a quote without totals assigned LibraryGraphDocumentTools.CreateDocumentWithDiscountPctPending(SalesHeader, DiscountPct, SalesHeader."Document Type"::Quote); @@ -399,6 +421,8 @@ codeunit 139823 "APIV2 - Sales Quotes E2E" DiscountAmt: Decimal; InvDiscAmount: Decimal; begin + Initialize(); + // [SCENARIO] When a quote is created, the GET Method should update the quote and redistribute the discount amount // [GIVEN] a quote with discount amount that should be redistributed @@ -436,6 +460,8 @@ codeunit 139823 "APIV2 - Sales Quotes E2E" ResponseText: Text; QuoteID: Text; begin + Initialize(); + // [SCENARIO 184721] Create Sales Quote, use a PATCH method to change it and then verify the changes LibrarySales.CreateCustomerWithAddress(Customer); @@ -482,6 +508,8 @@ codeunit 139823 "APIV2 - Sales Quotes E2E" ResponseText: Text; QuoteID: Text; begin + Initialize(); + // [SCENARIO 184721] Clearing manually set discount // [GIVEN] an item with unit price and unit cost @@ -530,6 +558,8 @@ codeunit 139823 "APIV2 - Sales Quotes E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] User can send a sales quote through the API. InitializeForSending(); @@ -573,6 +603,8 @@ codeunit 139823 "APIV2 - Sales Quotes E2E" InvoiceEmailAddress: Text; InvoiceEmailSubject: Text; begin + Initialize(); + // [SCENARIO] User can convert a sales quote to a sales invoice through the API. // [GIVEN] Sales quote exists @@ -631,6 +663,8 @@ codeunit 139823 "APIV2 - Sales Quotes E2E" OrderEmailAddress: Text; OrderEmailSubject: Text; begin + Initialize(); + // [SCENARIO] User can convert a sales quote to a sales order through the API. // [GIVEN] Sales quote exists @@ -848,4 +882,9 @@ codeunit 139823 "APIV2 - Sales Quotes E2E" end; + + local procedure Initialize() + begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + end; } diff --git a/src/Apps/W1/APIV2/test/src/APIV2SalesShipLinesE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2SalesShipLinesE2E.Codeunit.al index 3cb0f6eb9ef..d3799c2ccb5 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2SalesShipLinesE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2SalesShipLinesE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139848 "APIV2 - Sales Ship. Lines E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -30,6 +31,8 @@ codeunit 139848 "APIV2 - Sales Ship. Lines E2E" LineNo: Integer; SequenceValue: Text; begin + Initialize(); + // [SCENARIO] Call GET on the Line of a sales shipment // [GIVEN] A shipment with a line. @@ -64,6 +67,8 @@ codeunit 139848 "APIV2 - Sales Ship. Lines E2E" LineNo1: Text; LineNo2: Text; begin + Initialize(); + // [SCENARIO] Call GET on the Lines of Sales Shipment // [GIVEN] An sales shipment with lines. @@ -106,6 +111,8 @@ codeunit 139848 "APIV2 - Sales Ship. Lines E2E" LineNo1: Text; LineNo2: Text; begin + Initialize(); + // [SCENARIO] Call GET on the Lines of a sales shipment // [GIVEN] An sales shipment with lines. @@ -140,6 +147,8 @@ codeunit 139848 "APIV2 - Sales Ship. Lines E2E" LineIdTxt: Text; DimensionSetValue: Text; begin + Initialize(); + // [SCENARIO] Call GET on the Line of a sales shipment and expand the dimension set lines // [GIVEN] A shipment with a line. @@ -256,4 +265,9 @@ codeunit 139848 "APIV2 - Sales Ship. Lines E2E" exit(TargetURL); end; + + local procedure Initialize() + begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + end; } diff --git a/src/Apps/W1/APIV2/test/src/APIV2SalesShipmentsE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2SalesShipmentsE2E.Codeunit.al index f2993988a7d..472d8625607 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2SalesShipmentsE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2SalesShipmentsE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139847 "APIV2 - Sales Shipments E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -27,6 +28,8 @@ codeunit 139847 "APIV2 - Sales Shipments E2E" ResponseText: Text; TargetURL: Text; begin + Initialize(); + // [SCENARIO] Create 2 sales shipments (post sales order) and use a GET method to retrieve them // [GIVEN] 2 posted sales shipments @@ -58,6 +61,8 @@ codeunit 139847 "APIV2 - Sales Shipments E2E" ShipmentIdTxt: Text; DimensionSetValue: Text; begin + Initialize(); + // [SCENARIO] Call GET on a sales shipment and expand the dimension set lines // [GIVEN] A sales shipment. @@ -109,4 +114,9 @@ codeunit 139847 "APIV2 - Sales Shipments E2E" exit(TargetURL); end; + + local procedure Initialize() + begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + end; } diff --git a/src/Apps/W1/APIV2/test/src/APIV2SalespersonPurchE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2SalespersonPurchE2E.Codeunit.al index 08dbb83c0a8..52d8ff57613 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2SalespersonPurchE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2SalespersonPurchE2E.Codeunit.al @@ -15,6 +15,8 @@ codeunit 139882 "APIV2 - Salesperson/Purch E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2ShipmentMethodsE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2ShipmentMethodsE2E.Codeunit.al index 92a870131a1..0caa4fca083 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2ShipmentMethodsE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2ShipmentMethodsE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139805 "APIV2 - Shipment Methods E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestPermissions = Disabled; trigger OnRun() @@ -22,6 +23,8 @@ codeunit 139805 "APIV2 - Shipment Methods E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2TaxAreasE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2TaxAreasE2E.Codeunit.al index 467d5cffb89..fb2643d921d 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2TaxAreasE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2TaxAreasE2E.Codeunit.al @@ -25,6 +25,8 @@ codeunit 139826 "APIV2 - Tax Areas E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2TaxGroupsE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2TaxGroupsE2E.Codeunit.al index d913fbdd196..3638006f2b3 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2TaxGroupsE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2TaxGroupsE2E.Codeunit.al @@ -24,6 +24,8 @@ codeunit 139808 "APIV2 - Tax Groups E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2TrialBalanceE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2TrialBalanceE2E.Codeunit.al index fe08b5e02a1..ffcf1a93f4e 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2TrialBalanceE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2TrialBalanceE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139818 "APIV2 - Trial Balance E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestPermissions = Disabled; trigger OnRun() @@ -61,6 +62,8 @@ codeunit 139818 "APIV2 - Trial Balance E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2UofME2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2UofME2E.Codeunit.al index 3a0a3fd4ab4..eee840cb007 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2UofME2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2UofME2E.Codeunit.al @@ -25,6 +25,8 @@ codeunit 139812 "APIV2 - UofM E2E" UnitOfMeasure: Record "Unit of Measure"; Response: Text; begin + Initialize(); + // [SCENARIO] User can get the units of measure. // [GIVEN] Units of measure. @@ -45,6 +47,8 @@ codeunit 139812 "APIV2 - UofM E2E" Response: Text; OldDescription: Text; begin + Initialize(); + // [SCENARIO] User can update a unit of measure. // [GIVEN] Units of measure. @@ -74,6 +78,8 @@ codeunit 139812 "APIV2 - UofM E2E" UnitOfMeasure: Record "Unit of Measure"; Response: Text; begin + Initialize(); + // [SCENARIO] User can delete a unit of measure. // [GIVEN] Units of measure. @@ -95,6 +101,8 @@ codeunit 139812 "APIV2 - UofM E2E" Request: Text; "Code": Text; begin + Initialize(); + // [SCENARIO] User can insert a unit of measure. // [GIVEN] A new unit of measure. @@ -187,6 +195,11 @@ codeunit 139812 "APIV2 - UofM E2E" Format(UnitOfMeasure."International Standard Code"), InternationalStandardCode, StrSubstNo(WrongPropertyValueErr, 'internationalStandardCode')); end; + + local procedure Initialize() + begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + end; } diff --git a/src/Apps/W1/APIV2/test/src/APIV2VendorPaymentsE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2VendorPaymentsE2E.Codeunit.al index 34b308cd7d9..16b29107d92 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2VendorPaymentsE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2VendorPaymentsE2E.Codeunit.al @@ -2,6 +2,7 @@ codeunit 139843 "APIV2 - Vendor Payments E2E" { Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = Uncategorized; TestPermissions = Disabled; @@ -885,6 +886,7 @@ codeunit 139843 "APIV2 - Vendor Payments E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); LibraryTestInitialize.OnTestInitialize(Codeunit::"APIV2 - Vendor Payments E2E"); if not isInitialized then diff --git a/src/Apps/W1/APIV2/test/src/APIV2VendorsE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2VendorsE2E.Codeunit.al index 64b0463fa86..5b378a31922 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2VendorsE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2VendorsE2E.Codeunit.al @@ -26,6 +26,8 @@ codeunit 139803 "APIV2 - Vendors E2E" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + if IsInitialized then exit; diff --git a/src/Apps/W1/APIV2/test/src/APIV2itemLedgEntriesE2E.Codeunit.al b/src/Apps/W1/APIV2/test/src/APIV2itemLedgEntriesE2E.Codeunit.al index 597406a3297..29a72aecc57 100644 --- a/src/Apps/W1/APIV2/test/src/APIV2itemLedgEntriesE2E.Codeunit.al +++ b/src/Apps/W1/APIV2/test/src/APIV2itemLedgEntriesE2E.Codeunit.al @@ -4,6 +4,7 @@ codeunit 139854 "APIV2 - Item Ledg. Entries E2E" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; + RequiredTestIsolation = Disabled; TestType = IntegrationTest; TestPermissions = Disabled; @@ -26,6 +27,8 @@ codeunit 139854 "APIV2 - Item Ledg. Entries E2E" LibraryERMCountryData: Codeunit "Library - ERM Country Data"; LibraryApplicationArea: Codeunit "Library - Application Area"; begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); + LibraryApplicationArea.EnableFoundationSetup(); if IsInitialized then exit; diff --git a/src/Apps/W1/ExpenseAgent/app/src/Travel Request/Codeunits/TravelRequestApproval.Codeunit.al b/src/Apps/W1/ExpenseAgent/app/src/Travel Request/Codeunits/TravelRequestApproval.Codeunit.al index b8ee5762dc7..8b290df2331 100644 --- a/src/Apps/W1/ExpenseAgent/app/src/Travel Request/Codeunits/TravelRequestApproval.Codeunit.al +++ b/src/Apps/W1/ExpenseAgent/app/src/Travel Request/Codeunits/TravelRequestApproval.Codeunit.al @@ -6,7 +6,6 @@ namespace Microsoft.ExpenseAgent; using Microsoft.Finance.SpendRequest; using System.Telemetry; -using System.Text; codeunit 7133 "Travel Request Approval" { @@ -318,13 +317,17 @@ codeunit 7133 "Travel Request Approval" var ExpenseApprovalSetup: Record "Expense Approval Setup"; ExpenseAgentSetup: Record "Expense Agent Setup"; - SelectionFilterManagement: Codeunit SelectionFilterManagement; - RecRef: RecordRef; + AssignedFilter: TextBuilder; begin ExpenseApprovalSetup.SetCurrentKey("Approver No."); ExpenseApprovalSetup.SetRange("Approver No.", ApproverExpenseUserNo); - RecRef.GetTable(ExpenseApprovalSetup); - RequestedForFilter := SelectionFilterManagement.GetSelectionFilter(RecRef, ExpenseApprovalSetup.FieldNo("Expense User No.")); + ExpenseApprovalSetup.SetLoadFields("Expense User No."); + // Ranges between setup rows could include expense users without any approval setup. + if ExpenseApprovalSetup.FindSet() then + repeat + AppendSubmitterFilter(AssignedFilter, ExpenseApprovalSetup."Expense User No."); + until ExpenseApprovalSetup.Next() = 0; + RequestedForFilter := AssignedFilter.ToText(); ExpenseAgentSetup.GetRecordOnce(); if ExpenseAgentSetup."Default Approver No." = ApproverExpenseUserNo then @@ -337,7 +340,6 @@ codeunit 7133 "Travel Request Approval" local procedure AppendDefaultSubmitters(var RequestedForFilter: Text) var ExpenseUser: Record "Expense User"; - SelectionFilterManagement: Codeunit SelectionFilterManagement; DefaultFilter: TextBuilder; begin if RequestedForFilter <> '' then @@ -348,14 +350,23 @@ codeunit 7133 "Travel Request Approval" ExpenseUser.SetLoadFields("No."); if ExpenseUser.FindSet() then repeat - if DefaultFilter.Length > 0 then - DefaultFilter.Append('|'); - DefaultFilter.Append(SelectionFilterManagement.AddQuotes(ExpenseUser."No.")); + AppendSubmitterFilter(DefaultFilter, ExpenseUser."No."); until ExpenseUser.Next() = 0; RequestedForFilter := DefaultFilter.ToText(); end; + local procedure AppendSubmitterFilter(var SubmitterFilter: TextBuilder; ExpenseUserNo: Code[20]) + var + ExpenseUserFilter: Record "Expense User"; + begin + // Serialize an exact value so filter operators in user numbers remain literal. + ExpenseUserFilter.SetRange("No.", ExpenseUserNo); + if SubmitterFilter.Length > 0 then + SubmitterFilter.Append('|'); + SubmitterFilter.Append(ExpenseUserFilter.GetFilter("No.")); + end; + var FeatureTelemetry: Codeunit "Feature Telemetry"; ExpenseActivityLogMgt: Codeunit "Expense Activity Log Mgt."; diff --git a/src/Apps/W1/ExpenseAgent/test/src/API/ExpenseActivityLogAPITest.Codeunit.al b/src/Apps/W1/ExpenseAgent/test/src/API/ExpenseActivityLogAPITest.Codeunit.al index 86303ef065c..ec9b195a627 100644 --- a/src/Apps/W1/ExpenseAgent/test/src/API/ExpenseActivityLogAPITest.Codeunit.al +++ b/src/Apps/W1/ExpenseAgent/test/src/API/ExpenseActivityLogAPITest.Codeunit.al @@ -23,7 +23,6 @@ codeunit 148343 "Expense Activity Log API Test" LibraryGraphMgt: Codeunit "Library - Graph Mgt"; LibraryTestInitialize: Codeunit "Library - Test Initialize"; LibrarySetupStorage: Codeunit "Library - Setup Storage"; - APITestAuthHelper: Codeunit "Expense API Test Auth Helper"; IsInitialized: Boolean; ServiceNameTok: Label 'expenseActivityLogEntries', Locked = true; ExpenseReportsServiceNameTok: Label 'expenseReports', Locked = true; @@ -477,11 +476,14 @@ codeunit 148343 "Expense Activity Log API Test" RequestBody.WriteTo(RequestText); ReportURL := LibraryGraphMgt.CreateTargetURLWithSubpage( Format(SubmitterExpenseUser.SystemId), Page::"Expense Users API", ExpenseUsersServiceNameTok, ExpenseReportsServiceNameTok); - ReportURL += '(' + LibraryGraphMgt.StripBrackets(Format(ExpenseReportHeader.SystemId)) + ')'; + ReportURL := LibraryGraphMgt.AppendPathToTargetURL( + ReportURL, '(' + LibraryGraphMgt.StripBrackets(Format(ExpenseReportHeader.SystemId)) + ')'); Commit(); // [WHEN] The standard submission action is requested through the submitting user. - LibraryGraphMgt.PostToWebServiceAndCheckResponseCode(ReportURL + '/' + SubmitWithCommentActionTok, RequestText, ResponseText, 200); + Clear(ResponseText); + LibraryGraphMgt.PostToWebServiceAndCheckResponseCode( + LibraryGraphMgt.AppendPathToTargetURL(ReportURL, '/' + SubmitWithCommentActionTok), RequestText, ResponseText, 200); // [THEN] Exactly one structured snapshot is visible without a new callback or capability. ExpenseActivityLogEntry.SetRange("Subject System ID", ExpenseReportHeader.SystemId); @@ -489,7 +491,8 @@ codeunit 148343 "Expense Activity Log API Test" Assert.RecordCount(ExpenseActivityLogEntry, 1); ExpenseActivityLogEntry.FindFirst(); Clear(ResponseText); - LibraryGraphMgt.GetFromWebServiceAndCheckResponseCode(ResponseText, ReportURL + '/' + ServiceNameTok, 200); + LibraryGraphMgt.GetFromWebServiceAndCheckResponseCode( + ResponseText, LibraryGraphMgt.AppendPathToTargetURL(ReportURL, '/' + ServiceNameTok), 200); VerifyPolicyCategoryCode(ResponseText, ExpenseCategory.Code); ResponseText := LowerCase(ResponseText); Assert.AreNotEqual(0, StrPos(ResponseText, '"eventtype":"policyevaluated"'), 'The event type must identify the policy snapshot.'); @@ -503,7 +506,8 @@ codeunit 148343 "Expense Activity Log API Test" HistoryURL := LibraryGraphMgt.CreateTargetURLWithSubpage( Format(SubmitterExpenseUser.SystemId), Page::"Expense Users API", ExpenseUsersServiceNameTok, ServiceNameTok); Clear(ResponseText); - LibraryGraphMgt.GetFromWebServiceAndCheckResponseCode(ResponseText, HistoryURL + '?$filter=historyActorRole eq ''Submitter''', 200); + LibraryGraphMgt.GetFromWebServiceAndCheckResponseCode( + ResponseText, LibraryGraphMgt.AppendQueryParameterToTargetURL(HistoryURL, '$filter=historyActorRole eq ''Submitter'''), 200); // [THEN] The real submitter sees the agent snapshot in the complete timeline. Assert.AreNotEqual(0, StrPos(LowerCase(ResponseText), LowerCase(LibraryGraphMgt.StripBrackets(Format(ExpenseActivityLogEntry.SystemId)))), 'The submitter timeline must contain the snapshot.'); @@ -512,7 +516,8 @@ codeunit 148343 "Expense Activity Log API Test" HistoryURL := LibraryGraphMgt.CreateTargetURLWithSubpage( Format(ApproverExpenseUser.SystemId), Page::"Expense Users API", ExpenseUsersServiceNameTok, ServiceNameTok); Clear(ResponseText); - LibraryGraphMgt.GetFromWebServiceAndCheckResponseCode(ResponseText, HistoryURL + '?$filter=historyActorRole eq ''Approver''', 200); + LibraryGraphMgt.GetFromWebServiceAndCheckResponseCode( + ResponseText, LibraryGraphMgt.AppendQueryParameterToTargetURL(HistoryURL, '$filter=historyActorRole eq ''Approver'''), 200); // [THEN] The agent event must not grant approver participation. Assert.AreEqual(0, StrPos(LowerCase(ResponseText), LowerCase(LibraryGraphMgt.StripBrackets(Format(ExpenseReportHeader.SystemId)))), 'The agent snapshot must not grant approver history access.'); @@ -804,7 +809,6 @@ codeunit 148343 "Expense Activity Log API Test" if IsInitialized then exit; - BindSubscription(APITestAuthHelper); LibraryTestInitialize.OnBeforeTestSuiteInitialize(Codeunit::"Expense Activity Log API Test"); LibraryERMCountryData.UpdateGeneralLedgerSetup(); if not ExpenseAgentSetup.Get() then begin diff --git a/src/Apps/W1/ExpenseAgent/test/src/API/ExpenseCapabilitiesAPITest.Codeunit.al b/src/Apps/W1/ExpenseAgent/test/src/API/ExpenseCapabilitiesAPITest.Codeunit.al index 5d7ceb83f2d..822bf798e1f 100644 --- a/src/Apps/W1/ExpenseAgent/test/src/API/ExpenseCapabilitiesAPITest.Codeunit.al +++ b/src/Apps/W1/ExpenseAgent/test/src/API/ExpenseCapabilitiesAPITest.Codeunit.al @@ -19,7 +19,6 @@ codeunit 148318 "Expense Capabilities API Test" LibraryExpenseAgent: Codeunit "Library - Expense Agent"; LibraryGraphMgt: Codeunit "Library - Graph Mgt"; LibraryTestInitialize: Codeunit "Library - Test Initialize"; - APITestAuthHelper: Codeunit "Expense API Test Auth Helper"; IsInitialized: Boolean; ServiceNameTok: Label 'expenseCapabilities', Locked = true; ActivityLogCapabilityNameTok: Label 'activityLog', Locked = true; @@ -105,8 +104,6 @@ codeunit 148318 "Expense Capabilities API Test" TargetURL: Text; ResponseText: Text; begin - // Excluded in BCApps CI until authenticated OData execution in a dedicated test company - // with disabled isolation is available; then remove this method's DisabledTest.json entry. // [SCENARIO] Travel requests are advertised when the supporting APIs are installed. Initialize(); @@ -249,7 +246,6 @@ codeunit 148318 "Expense Capabilities API Test" if IsInitialized then exit; - BindSubscription(APITestAuthHelper); LibraryTestInitialize.OnBeforeTestSuiteInitialize(Codeunit::"Expense Capabilities API Test"); IsInitialized := true; Commit(); diff --git a/src/Apps/W1/ExpenseAgent/test/src/API/ExpensePerDiemLocationsTest.Codeunit.al b/src/Apps/W1/ExpenseAgent/test/src/API/ExpensePerDiemLocationsTest.Codeunit.al index bea8a98efa6..ac41f8d1005 100644 --- a/src/Apps/W1/ExpenseAgent/test/src/API/ExpensePerDiemLocationsTest.Codeunit.al +++ b/src/Apps/W1/ExpenseAgent/test/src/API/ExpensePerDiemLocationsTest.Codeunit.al @@ -18,7 +18,6 @@ codeunit 148349 "Expense PerDiem Locations Test" LibraryUtility: Codeunit "Library - Utility"; LibraryGraphMgt: Codeunit "Library - Graph Mgt"; LibraryTestInitialize: Codeunit "Library - Test Initialize"; - APITestAuthHelper: Codeunit "Expense API Test Auth Helper"; IsInitialized: Boolean; [Test] @@ -83,11 +82,11 @@ codeunit 148349 "Expense PerDiem Locations Test" local procedure Initialize() begin + LibraryGraphMgt.SetLicenseSafeWorkDate(); LibraryTestInitialize.OnTestInitialize(Codeunit::"Expense PerDiem Locations Test"); if IsInitialized then exit; - BindSubscription(APITestAuthHelper); LibraryTestInitialize.OnBeforeTestSuiteInitialize(Codeunit::"Expense PerDiem Locations Test"); IsInitialized := true; Commit(); diff --git a/src/Apps/W1/ExpenseAgent/test/src/API/ExpenseProjectsAPITest.Codeunit.al b/src/Apps/W1/ExpenseAgent/test/src/API/ExpenseProjectsAPITest.Codeunit.al index 632c3d77459..93d563eb35d 100644 --- a/src/Apps/W1/ExpenseAgent/test/src/API/ExpenseProjectsAPITest.Codeunit.al +++ b/src/Apps/W1/ExpenseAgent/test/src/API/ExpenseProjectsAPITest.Codeunit.al @@ -25,7 +25,6 @@ codeunit 148331 "Expense Projects API Test" LibraryHumanResource: Codeunit "Library - Human Resource"; LibraryGraphMgt: Codeunit "Library - Graph Mgt"; LibraryTestInitialize: Codeunit "Library - Test Initialize"; - APITestAuthHelper: Codeunit "Expense API Test Auth Helper"; IsInitialized: Boolean; ExpenseUsersServiceNameTok: Label 'expenseUsers', Locked = true; ProjectsServiceNameTok: Label 'expenseProjects', Locked = true; @@ -724,7 +723,6 @@ codeunit 148331 "Expense Projects API Test" if IsInitialized then exit; - BindSubscription(APITestAuthHelper); LibraryTestInitialize.OnBeforeTestSuiteInitialize(Codeunit::"Expense Projects API Test"); if not ExpenseAgentSetup.Get() then begin ExpenseAgentSetup.Init(); diff --git a/src/Apps/W1/ExpenseAgent/test/src/API/ExpenseUsersAPITest.Codeunit.al b/src/Apps/W1/ExpenseAgent/test/src/API/ExpenseUsersAPITest.Codeunit.al index 00fafa3e091..7ed4334beac 100644 --- a/src/Apps/W1/ExpenseAgent/test/src/API/ExpenseUsersAPITest.Codeunit.al +++ b/src/Apps/W1/ExpenseAgent/test/src/API/ExpenseUsersAPITest.Codeunit.al @@ -22,7 +22,6 @@ codeunit 148315 "Expense Users API Test" LibraryUtility: Codeunit "Library - Utility"; LibraryGraphMgt: Codeunit "Library - Graph Mgt"; LibraryTestInitialize: Codeunit "Library - Test Initialize"; - APITestAuthHelper: Codeunit "Expense API Test Auth Helper"; IsInitialized: Boolean; ServiceNameTok: Label 'expenseUsers', Locked = true; EmployeesServiceNameTok: Label 'employees', Locked = true; @@ -126,7 +125,6 @@ codeunit 148315 "Expense Users API Test" if IsInitialized then exit; - BindSubscription(APITestAuthHelper); LibraryTestInitialize.OnBeforeTestSuiteInitialize(Codeunit::"Expense Users API Test"); if not ExpenseAgentSetup.Get() then begin ExpenseAgentSetup.Init(); diff --git a/src/Apps/W1/ExpenseAgent/test/src/API/ExpenseVATSpecAPITest.Codeunit.al b/src/Apps/W1/ExpenseAgent/test/src/API/ExpenseVATSpecAPITest.Codeunit.al index 8a57c7495e5..d036cc53c87 100644 --- a/src/Apps/W1/ExpenseAgent/test/src/API/ExpenseVATSpecAPITest.Codeunit.al +++ b/src/Apps/W1/ExpenseAgent/test/src/API/ExpenseVATSpecAPITest.Codeunit.al @@ -12,6 +12,7 @@ codeunit 148348 "Expense VAT Spec. API Test" Subtype = Test; TestHttpRequestPolicy = AllowAllOutboundRequests; TestType = IntegrationTest; + RequiredTestIsolation = Disabled; TestPermissions = Disabled; var @@ -20,7 +21,6 @@ codeunit 148348 "Expense VAT Spec. API Test" LibraryERM: Codeunit "Library - ERM"; LibraryGraphMgt: Codeunit "Library - Graph Mgt"; LibraryTestInitialize: Codeunit "Library - Test Initialize"; - APITestAuthHelper: Codeunit "Expense API Test Auth Helper"; IsInitialized: Boolean; ServiceNameTok: Label 'expenseVATSpecifications', Locked = true; @@ -90,7 +90,6 @@ codeunit 148348 "Expense VAT Spec. API Test" if IsInitialized then exit; - BindSubscription(APITestAuthHelper); LibraryTestInitialize.OnBeforeTestSuiteInitialize(Codeunit::"Expense VAT Spec. API Test"); LibraryExpense.SetupNumberSeriesInExpenseMgmt(); LibraryERM.CreateVATBusinessPostingGroup(VATBusinessPostingGroup); diff --git a/src/Apps/W1/ExpenseAgent/test/src/API/PoliciesToEvaluateAPITest.Codeunit.al b/src/Apps/W1/ExpenseAgent/test/src/API/PoliciesToEvaluateAPITest.Codeunit.al index 2824ca06a1a..36726ffbccd 100644 --- a/src/Apps/W1/ExpenseAgent/test/src/API/PoliciesToEvaluateAPITest.Codeunit.al +++ b/src/Apps/W1/ExpenseAgent/test/src/API/PoliciesToEvaluateAPITest.Codeunit.al @@ -19,7 +19,6 @@ codeunit 148345 "Policies To Evaluate API Test" LibraryExpense: Codeunit "Library - Expense"; LibraryGraphMgt: Codeunit "Library - Graph Mgt"; LibraryTestInitialize: Codeunit "Library - Test Initialize"; - APITestAuthHelper: Codeunit "Expense API Test Auth Helper"; IsInitialized: Boolean; ExpenseReportLinesServiceNameTok: Label 'expenseReportLines', Locked = true; @@ -118,7 +117,6 @@ codeunit 148345 "Policies To Evaluate API Test" if IsInitialized then exit; - BindSubscription(APITestAuthHelper); LibraryTestInitialize.OnBeforeTestSuiteInitialize(Codeunit::"Policies To Evaluate API Test"); LibraryERMCountryData.CreateVATData(); LibraryERMCountryData.UpdateGeneralPostingSetup(); diff --git a/src/Apps/W1/ExpenseAgent/test/src/API/PolicyEvaluationsAPITest.Codeunit.al b/src/Apps/W1/ExpenseAgent/test/src/API/PolicyEvaluationsAPITest.Codeunit.al index bdc039bde58..f2f7e47f2b7 100644 --- a/src/Apps/W1/ExpenseAgent/test/src/API/PolicyEvaluationsAPITest.Codeunit.al +++ b/src/Apps/W1/ExpenseAgent/test/src/API/PolicyEvaluationsAPITest.Codeunit.al @@ -19,7 +19,6 @@ codeunit 148344 "Policy Evaluations API Test" LibraryExpense: Codeunit "Library - Expense"; LibraryGraphMgt: Codeunit "Library - Graph Mgt"; LibraryTestInitialize: Codeunit "Library - Test Initialize"; - APITestAuthHelper: Codeunit "Expense API Test Auth Helper"; IsInitialized: Boolean; ServiceNameTok: Label 'expensePolicyEvaluations', Locked = true; BadRequestResponseErr: Label 'Response code is 400', Locked = true; @@ -122,7 +121,6 @@ codeunit 148344 "Policy Evaluations API Test" if IsInitialized then exit; - BindSubscription(APITestAuthHelper); LibraryTestInitialize.OnBeforeTestSuiteInitialize(Codeunit::"Policy Evaluations API Test"); LibraryERMCountryData.CreateVATData(); LibraryERMCountryData.UpdateGeneralPostingSetup(); diff --git a/src/Apps/W1/ExpenseAgent/test/src/API/TravelRequestsAPITest.Codeunit.al b/src/Apps/W1/ExpenseAgent/test/src/API/TravelRequestsAPITest.Codeunit.al index 7b802b24cb5..5d845c9a9e3 100644 --- a/src/Apps/W1/ExpenseAgent/test/src/API/TravelRequestsAPITest.Codeunit.al +++ b/src/Apps/W1/ExpenseAgent/test/src/API/TravelRequestsAPITest.Codeunit.al @@ -10,12 +10,6 @@ using Microsoft.Finance.GeneralLedger.Setup; using Microsoft.Finance.SpendRequest; using Microsoft.HumanResources.Employee; -// These HTTP tests remain excluded in Expense_Agent_Tests.DisabledTest.json until the -// authentication prerequisite provides an authenticated OData endpoint and a dedicated -// test company with committed fixtures and disabled test isolation. -// In-process employee filtering, traveler mapping/navigation, lifecycle, date, and scope coverage -// in "Spend Request Test", and restrictive role coverage in "Expense Permissions Test", remain enabled. -// Only the HTTP scenarios are excluded. codeunit 148347 "Travel Requests API Test" { Subtype = Test; @@ -32,7 +26,6 @@ codeunit 148347 "Travel Requests API Test" LibraryHumanResource: Codeunit "Library - Human Resource"; LibraryRandom: Codeunit "Library - Random"; LibraryTestInitialize: Codeunit "Library - Test Initialize"; - APITestAuthHelper: Codeunit "Expense API Test Auth Helper"; IsInitialized: Boolean; ExpenseUsersServiceNameTok: Label 'expenseUsers', Locked = true; #if not CLEAN30 @@ -1292,7 +1285,6 @@ codeunit 148347 "Travel Requests API Test" if IsInitialized then exit; - BindSubscription(APITestAuthHelper); LibraryTestInitialize.OnBeforeTestSuiteInitialize(Codeunit::"Travel Requests API Test"); if not ExpenseAgentSetup.Get() then begin ExpenseAgentSetup.Init(); diff --git a/src/Apps/W1/ExpenseAgent/test/src/ExpensePermissionsTest.Codeunit.al b/src/Apps/W1/ExpenseAgent/test/src/ExpensePermissionsTest.Codeunit.al index 16d7e7ba931..8184e201491 100644 --- a/src/Apps/W1/ExpenseAgent/test/src/ExpensePermissionsTest.Codeunit.al +++ b/src/Apps/W1/ExpenseAgent/test/src/ExpensePermissionsTest.Codeunit.al @@ -32,6 +32,9 @@ codeunit 148338 "Expense Permissions Test" AutomationPermissionSetTok: Label 'Exp. Auto Test', Locked = true; D365BasicPermissionSetTok: Label 'D365 BASIC', Locked = true; ExpenseAgentPermissionSetTok: Label 'Expense Agent', Locked = true; + DetailOnlyPermissionSetTok: Label 'Exp. Detail Test', Locked = true; + HeaderModifyPermissionErr: Label 'TableData %1 %2 IndirectModify', Comment = '%1 = Spend Request table ID, %2 = Spend Request table caption', Locked = true; + RequestMustBeOpenErr: Label 'The %1 %2 must have the status %3.', Comment = '%1 = document type description, %2 = document number, %3 = Open status'; ExpenseAgentAppIdTok: Label '66efe10c-8033-403b-a86d-77c0887178ba', Locked = true; ExpenseMgmtAdminPermissionSetTok: Label 'Expense Mgmt. Admin', Locked = true; SecurityPermissionSetTok: Label 'SECURITY', Locked = true; @@ -63,15 +66,100 @@ codeunit 148338 "Expense Permissions Test" [Test] procedure D365BasicCanUpdateTravelRequestDetailsIndirectly() begin + // [SCENARIO 646383] D365 BASIC applies successive detail amount deltas without direct header or detail writes. + Initialize(); VerifyTravelRequestDetailUpdateIndirectly(D365BasicPermissionSetTok); end; [Test] procedure ExpenseAgentCanUpdateTravelRequestDetailsIndirectly() begin + // [SCENARIO 646383] Expense Agent applies successive detail amount deltas without direct header or detail writes. + Initialize(); VerifyTravelRequestDetailUpdateIndirectly(ExpenseAgentPermissionSetTok); end; + [Test] + procedure DetailAmountUpdateFailsWithoutHeaderModifyPermission() + var + SpendRequest: Record "Spend Request"; + SpendRequestDetail: Record "Spend Request Detail"; + TravelRequestSubform: TestPage "Travel Request Subform"; + SpendRequestCanWrite: Boolean; + SpendRequestDetailCanWrite: Boolean; + PermissionErrorCode: Text; + PermissionErrorText: Text; + begin + // [SCENARIO 646383] A caller with only header read and indirect detail modify cannot update the header through an amount change. + Initialize(); + + // [GIVEN] An open request "R" with a committed detail "D" worth 10. + LibraryExpense.CreateSpendRequest(SpendRequest); + LibraryExpense.CreateSpendRequestDetail(SpendRequestDetail, SpendRequest."No.", 10); + VerifyTravelRequestAmounts(SpendRequest, SpendRequestDetail, 10); + Commit(); + LibraryLowerPermissions.StartLoggingNAVPermissions(); + LibraryLowerPermissions.SetExactPermissionSet(DetailOnlyPermissionSetTok); + SpendRequestCanWrite := SpendRequest.WritePermission(); + SpendRequestDetailCanWrite := SpendRequestDetail.WritePermission(); + TravelRequestSubform.OpenEdit(); + TravelRequestSubform.GoToRecord(SpendRequestDetail); + + // [WHEN] The caller changes the amount through the public page. + asserterror TravelRequestSubform.Amount.SetValue(20); + PermissionErrorCode := GetLastErrorCode(); + PermissionErrorText := GetLastErrorText(); + TravelRequestSubform.Close(); + RestoreFullPermissions(); + LibraryLowerPermissions.StopLoggingNAVPermissions(); + + // [THEN] The page reports the specific header modify denial and neither record changes. + VerifyCapturedPageError(PermissionErrorCode, PermissionErrorText, + StrSubstNo(HeaderModifyPermissionErr, Database::"Spend Request", SpendRequest.TableCaption())); + Assert.IsFalse(SpendRequestCanWrite, 'The caller must not have direct request write permission.'); + Assert.IsFalse(SpendRequestDetailCanWrite, 'The caller must not have direct detail write permission.'); + VerifyTravelRequestAmounts(SpendRequest, SpendRequestDetail, 10); + end; + + [Test] + procedure ReleasedTravelRequestDetailAmountCannotBeUpdatedIndirectly() + var + SpendRequest: Record "Spend Request"; + SpendRequestDetail: Record "Spend Request Detail"; + TravelRequestSubform: TestPage "Travel Request Subform"; + ValidationErrorCode: Text; + ValidationErrorText: Text; + begin + // [SCENARIO 646383] Indirect header modification does not bypass the Open status guard. + Initialize(); + + // [GIVEN] A released request "R" with a committed detail "D" worth 10. + LibraryExpense.CreateSpendRequest(SpendRequest); + LibraryExpense.CreateSpendRequestDetail(SpendRequestDetail, SpendRequest."No.", 10); + VerifyTravelRequestAmounts(SpendRequest, SpendRequestDetail, 10); + LibraryExpense.SetSpendRequestStatus(SpendRequest, SpendRequest.Status::Released); + Commit(); + LibraryLowerPermissions.StartLoggingNAVPermissions(); + LibraryLowerPermissions.SetExactPermissionSet(ExpenseAgentPermissionSetTok); + TravelRequestSubform.OpenEdit(); + TravelRequestSubform.GoToRecord(SpendRequestDetail); + + // [WHEN] The caller changes the amount through the public page. + asserterror TravelRequestSubform.Amount.SetValue(20); + ValidationErrorCode := GetLastErrorCode(); + ValidationErrorText := GetLastErrorText(); + TravelRequestSubform.Close(); + RestoreFullPermissions(); + LibraryLowerPermissions.StopLoggingNAVPermissions(); + + // [THEN] The status guard rejects the change and the released request retains both amounts. + VerifyCapturedPageError(ValidationErrorCode, ValidationErrorText, + StrSubstNo(RequestMustBeOpenErr, SpendRequest.GetDocumentTypeDescription(), SpendRequest."No.", SpendRequest.Status::Open)); + VerifyTravelRequestAmounts(SpendRequest, SpendRequestDetail, 10); + SpendRequest.Get(SpendRequest."No."); + Assert.AreEqual(SpendRequest.Status::Released, SpendRequest.Status, 'The denied amount change must preserve the Released status.'); + end; + [Test] procedure D365BasicCanInsertActivityIndirectly() begin @@ -190,20 +278,29 @@ codeunit 148338 "Expense Permissions Test" ExpenseUser: Record "Expense User"; Approver: Record "Expense User"; TravelRequestApproval: Codeunit "Travel Request Approval"; + ExpenseUserCanRead: Boolean; + PermissionErrorCode: Text; + PermissionErrorText: Text; begin // [SCENARIO] An employee-only caller cannot approve requests without access to Expense User data. Initialize(); CreateTravelRequestApprovalScenario(SpendRequest, ExpenseUser, Approver); + // Preserve the fixture for the post-denial checks when asserterror rolls back. Commit(); LibraryLowerPermissions.StartLoggingNAVPermissions(); - SetCallerPermissions(EmployeeOnlyPermissionSetTok, ExpenseUser); + LibraryLowerPermissions.SetExactPermissionSet(EmployeeOnlyPermissionSetTok); + ExpenseUserCanRead := ExpenseUser.ReadPermission(); asserterror TravelRequestApproval.Approve(SpendRequest, Approver."No."); - Assert.ExpectedErrorCode('DB:ClientReadDenied'); - Assert.ExpectedError(ExpenseUser.TableCaption()); + // Capture the denial before permission cleanup can change the last-error state. + PermissionErrorCode := GetLastErrorCode(); + PermissionErrorText := GetLastErrorText(); RestoreFullPermissions(); LibraryLowerPermissions.StopLoggingNAVPermissions(); + Assert.AreEqual('DB:ClientReadDenied', PermissionErrorCode, 'Approval must fail because Expense User read access is denied.'); + Assert.ExpectedMessage(ExpenseUser.TableCaption(), PermissionErrorText); + Assert.IsFalse(ExpenseUserCanRead, 'The caller must not have direct access to Expense User.'); SpendRequest.Get(SpendRequest."No."); Assert.AreEqual(SpendRequest.Status::Released, SpendRequest.Status, 'A denied approval must preserve the request status.'); ExpenseReportHeader.SetRange("Spend Request No.", SpendRequest."No."); @@ -614,8 +711,7 @@ codeunit 148338 "Expense Permissions Test" SpendRequestDetail: Record "Spend Request Detail"; TravelRequestSubform: TestPage "Travel Request Subform"; begin - // [SCENARIO] Editing a detail through its page can update both the line and its header total. - Initialize(); + // [GIVEN] An open request "R" with a detail "D" worth 10. LibraryExpense.CreateSpendRequest(SpendRequest); LibraryExpense.CreateSpendRequestDetail(SpendRequestDetail, SpendRequest."No.", 10); @@ -634,10 +730,41 @@ codeunit 148338 "Expense Permissions Test" LibraryLowerPermissions.StopLoggingNAVPermissions(); // [THEN] Both the line change and the base table's header update are persisted. + VerifyTravelRequestAmounts(SpendRequest, SpendRequestDetail, 20); + + // [GIVEN] The same exact role still has no direct writes after the first update. + LibraryLowerPermissions.StartLoggingNAVPermissions(); + LibraryLowerPermissions.SetExactPermissionSet(PermissionSetId); + Assert.IsFalse(SpendRequest.WritePermission(), 'The caller must not have direct request write permission.'); + Assert.IsFalse(SpendRequestDetail.WritePermission(), 'The caller must not have direct detail write permission.'); + + // [WHEN] The persisted detail amount is increased again from 20 to 30. + Clear(TravelRequestSubform); + TravelRequestSubform.OpenEdit(); + TravelRequestSubform.GoToRecord(SpendRequestDetail); + TravelRequestSubform.Amount.SetValue(30); + TravelRequestSubform.Close(); + RestoreFullPermissions(); + LibraryLowerPermissions.StopLoggingNAVPermissions(); + + // [THEN] The second update applies only its delta, not the entire new amount. + VerifyTravelRequestAmounts(SpendRequest, SpendRequestDetail, 30); + end; + + local procedure VerifyTravelRequestAmounts(var SpendRequest: Record "Spend Request"; var SpendRequestDetail: Record "Spend Request Detail"; ExpectedAmount: Decimal) + begin SpendRequestDetail.Get(SpendRequestDetail."Spend Request No.", SpendRequestDetail."Line No."); SpendRequest.Get(SpendRequest."No."); - Assert.AreEqual(20, SpendRequestDetail."Expected Amount", 'The detail amount must be updated through indirect permissions.'); - Assert.AreEqual(20, SpendRequest."Total Expected Amount (LCY)", 'The detail update must also update the header total.'); + Assert.AreEqual(ExpectedAmount, SpendRequestDetail."Expected Amount", 'The detail amount must match the page operation.'); + Assert.AreEqual(ExpectedAmount, SpendRequestDetail."Expected Amount (LCY)", 'The LCY detail amount must match the page operation.'); + Assert.AreEqual(ExpectedAmount, SpendRequest."Total Expected Amount", 'The request amount must reflect the detail delta exactly once.'); + Assert.AreEqual(ExpectedAmount, SpendRequest."Total Expected Amount (LCY)", 'The LCY request amount must reflect the detail delta exactly once.'); + end; + + local procedure VerifyCapturedPageError(ErrorCode: Text; ErrorText: Text; ExpectedErrorText: Text) + begin + Assert.AreEqual('TestValidation', ErrorCode, 'The amount field must fail through the TestPage validation wrapper.'); + Assert.ExpectedMessage(ExpectedErrorText, ErrorText); end; local procedure VerifyCompanyEmailSynchronization(PermissionSetId: Code[20]) diff --git a/src/Apps/W1/ExpenseAgent/test/src/Helper/ExpenseAPITestAuthHelper.Codeunit.al b/src/Apps/W1/ExpenseAgent/test/src/Helper/ExpenseAPITestAuthHelper.Codeunit.al deleted file mode 100644 index 22caab107b3..00000000000 --- a/src/Apps/W1/ExpenseAgent/test/src/Helper/ExpenseAPITestAuthHelper.Codeunit.al +++ /dev/null @@ -1,66 +0,0 @@ -// ------------------------------------------------------------------------------------------------ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// ------------------------------------------------------------------------------------------------ -namespace Microsoft.Test.ExpenseAgent; - -using System.Azure.KeyVault; -using System.Environment; -using System.Security.AccessControl; -using System.Text; - -/// -/// Test-only authentication helper for the API test codeunits in this app. -/// -codeunit 148332 "Expense API Test Auth Helper" -{ - Access = Internal; - EventSubscriberInstance = Manual; - - var - NavServerUserPasswordKeyTok: Label 'NavServerUserPassword', Locked = true; - - [EventSubscriber(ObjectType::Codeunit, Codeunit::"Library - Graph Mgt", OnAfterInitializeWebRequestWithURL, '', false, false)] - local procedure OnAfterInitializeWebRequest(var HttpRequestMessage: HttpRequestMessage) - var - Base64Convert: Codeunit "Base64 Convert"; - RequestHeaders: HttpHeaders; - Password: SecretText; - begin - if not ShouldInjectBasicAuth() then - exit; - if not TryGetPassword(Password) then - exit; - HttpRequestMessage.GetHeaders(RequestHeaders); - if RequestHeaders.Contains('Authorization') or RequestHeaders.ContainsSecret('Authorization') then - RequestHeaders.Remove('Authorization'); - RequestHeaders.Add('Authorization', SecretStrSubstNo('Basic %1', Base64Convert.ToBase64(SecretStrSubstNo('%1:%2', UserId(), Password)))); - end; - - local procedure ShouldInjectBasicAuth(): Boolean - var - User: Record User; - EnvironmentInfo: Codeunit "Environment Information"; - begin - if EnvironmentInfo.IsSaaSInfrastructure() then - exit(false); - - // If the current user authenticates via Windows - if not User.Get(UserSecurityId()) then - exit(false); - if User."Windows Security ID" <> '' then - exit(false); - - // Inject Basic auth when using username password authentication. - exit(true); - end; - - [TryFunction] - local procedure TryGetPassword(var Password: SecretText) - var - AzureKeyVault: Codeunit "Azure Key Vault"; - begin - AzureKeyVault.GetAzureKeyVaultSecret(NavServerUserPasswordKeyTok, Password); - end; -} - diff --git a/src/Apps/W1/ExpenseAgent/test/src/Permissions/ExpDetailTest.PermissionSet.al b/src/Apps/W1/ExpenseAgent/test/src/Permissions/ExpDetailTest.PermissionSet.al new file mode 100644 index 00000000000..9b2f1c33517 --- /dev/null +++ b/src/Apps/W1/ExpenseAgent/test/src/Permissions/ExpDetailTest.PermissionSet.al @@ -0,0 +1,20 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.Test.ExpenseAgent; + +using Microsoft.Finance.SpendRequest; +using System.Security.AccessControl; + +permissionset 148303 "Exp. Detail Test" +{ + Access = Internal; + Assignable = false; + IncludedPermissionSets = "D365 READ"; + + // Keep the header read-only, while allowing the page to modify a detail indirectly. + Permissions = tabledata "Spend Request Detail" = m, + codeunit Assert = X, + codeunit "Library - Lower Permissions" = X; +} diff --git a/src/Apps/W1/ExpenseAgent/test/src/SpendRequestTest.Codeunit.al b/src/Apps/W1/ExpenseAgent/test/src/SpendRequestTest.Codeunit.al index b18c4701d05..c93fa9338d1 100644 --- a/src/Apps/W1/ExpenseAgent/test/src/SpendRequestTest.Codeunit.al +++ b/src/Apps/W1/ExpenseAgent/test/src/SpendRequestTest.Codeunit.al @@ -62,6 +62,8 @@ codeunit 148339 "Spend Request Test" UnassignedTravelRequestHiddenMsg: Label 'The approver should not see a travel request assigned to another approver.'; DefaultTravelRequestVisibleMsg: Label 'The default approver should see travel requests without an assigned approver.'; ApproverWithoutRequestsMsg: Label 'An approver without assigned travel requests should receive an empty result.'; + ApproverFilterExpectedRequestErr: Label '%1 Requested For filter: %2. Expected request: %3.', Comment = '%1 = assertion message, %2 = Requested For filter, %3 = expected request number'; + ApproverFilterUnexpectedRequestErr: Label '%1 Requested For filter: %2. Expected request: %3. Unauthorized request: %4.', Comment = '%1 = assertion message, %2 = Requested For filter, %3 = expected request number, %4 = unauthorized request number'; SpendReqNoSetMsg: Label 'The Spend Request No. should be assigned to the expense report line.'; HeaderSpendReqNoSetMsg: Label 'The Spend Request No. should be assigned to the expense report header.'; HeaderCloseFlagMsg: Label 'The header should store the confirmed close flag.'; @@ -1877,21 +1879,108 @@ codeunit 148339 "Spend Request Test" procedure ApproverFilterReturnsDefaultApproverTravelRequests() begin // [SCENARIO] The default approver sees requests without an explicit approval assignment. - VerifyDefaultApproverFilter('', ''); + Initialize(); + + VerifyDefaultApproverFilter('', '', true); end; [Test] procedure DefaultApproverFilterQuotesWildcardUserNo() begin // [SCENARIO] A literal wildcard user number must not expose another approver's requests. - VerifyDefaultApproverFilter('*', 'TR-OTHER'); + Initialize(); + + VerifyDefaultApproverFilter('*', 'TR-OTHER', true); end; [Test] procedure DefaultApproverFilterQuotesPipeUserNo() begin // [SCENARIO] A pipe in a user number must not become an OR filter for other users. - VerifyDefaultApproverFilter('TR-A|TR-B', 'TR-A'); + Initialize(); + + VerifyDefaultApproverFilter('TR-A|TR-B', 'TR-A', true); + end; + + [Test] + procedure ApproverFilterQuotesExplicitWildcardUserNo() + begin + // [SCENARIO] An explicitly assigned literal wildcard user must not expose another approver's requests. + Initialize(); + + VerifyDefaultApproverFilter('*', 'TR-OTHER', false); + end; + + [Test] + procedure ApproverFilterQuotesExplicitPipeUserNo() + begin + // [SCENARIO] An explicitly assigned user with a pipe in its number must not expose another approver's requests. + Initialize(); + + VerifyDefaultApproverFilter('TR-A|TR-B', 'TR-A', false); + end; + + [Test] + procedure ApproverFilterDoesNotIncludeUnassignedUserBetweenAssignedUsers() + var + FirstTravelRequest: Record "Spend Request"; + LastTravelRequest: Record "Spend Request"; + UnassignedTravelRequest: Record "Spend Request"; + FilteredTravelRequest: Record "Spend Request"; + FirstExpenseUser: Record "Expense User"; + LastExpenseUser: Record "Expense User"; + UnassignedExpenseUser: Record "Expense User"; + AssignedApprover: Record "Expense User"; + DefaultApprover: Record "Expense User"; + ExpenseApprovalSetup: Record "Expense Approval Setup"; + TravelRequestApproval: Codeunit "Travel Request Approval"; + begin + // [SCENARIO] Adjacent approval setups must not expose a user between them who belongs to another default approver. + Initialize(); + + // [GIVEN] Approver "A" and default approver "B", with their user numbers outside the tested range. + ExpenseApprovalSetup.DeleteAll(); + LibraryExpense.UpdateEnableAgentInAgentSetup(true); + CreateApprover(AssignedApprover); + AssignedApprover.Rename('FILTER-APP-A'); + CreateApprover(DefaultApprover); + DefaultApprover.Rename('FILTER-APP-B'); + SetDefaultApprover(DefaultApprover."No."); + + // [GIVEN] Released requests for "TR-A" and "TR-C" explicitly assigned to "A". + CreateReleasableSpendRequest(FirstTravelRequest, FirstExpenseUser); + FirstExpenseUser.Rename('TR-A'); + FirstTravelRequest.Get(FirstTravelRequest."No."); + LibraryExpense.SetSpendRequestStatus(FirstTravelRequest, FirstTravelRequest.Status::Released); + ExpenseApprovalSetup.Get(FirstExpenseUser."No."); + ExpenseApprovalSetup.Validate("Approver No.", AssignedApprover."No."); + ExpenseApprovalSetup.Modify(true); + CreateReleasableSpendRequest(LastTravelRequest, LastExpenseUser); + LastExpenseUser.Rename('TR-C'); + LastTravelRequest.Get(LastTravelRequest."No."); + LibraryExpense.SetSpendRequestStatus(LastTravelRequest, LastTravelRequest.Status::Released); + ExpenseApprovalSetup.Get(LastExpenseUser."No."); + ExpenseApprovalSetup.Validate("Approver No.", AssignedApprover."No."); + ExpenseApprovalSetup.Modify(true); + + // [GIVEN] A released request for "TR-B" with no setup, so it belongs to default approver "B". + CreateReleasableSpendRequest(UnassignedTravelRequest, UnassignedExpenseUser); + UnassignedExpenseUser.Rename('TR-B'); + UnassignedTravelRequest.Get(UnassignedTravelRequest."No."); + LibraryExpense.SetSpendRequestStatus(UnassignedTravelRequest, UnassignedTravelRequest.Status::Released); + ExpenseApprovalSetup.Get(UnassignedExpenseUser."No."); + ExpenseApprovalSetup.Delete(true); + VerifyApproverFilterRangeGapSetup( + FirstTravelRequest, LastTravelRequest, UnassignedTravelRequest, AssignedApprover."No.", DefaultApprover."No."); + + // [WHEN] "A"'s filter is applied to pending travel requests. + FilteredTravelRequest.SetRange("Document Type", FilteredTravelRequest."Document Type"::"Travel Request"); + FilteredTravelRequest.SetRange(Status, FilteredTravelRequest.Status::Released); + TravelRequestApproval.ApplyApproverFilter(FilteredTravelRequest, AssignedApprover.SystemId); + + // [THEN] The requests for "TR-A" and "TR-C" are visible, but the request for "TR-B" is hidden. + VerifyApproverFilterRangeGapResults( + FilteredTravelRequest, FirstTravelRequest."No.", LastTravelRequest."No.", UnassignedTravelRequest."No."); end; [Test] @@ -3173,7 +3262,7 @@ codeunit 148339 "Spend Request Test" ExpenseAgentSetup.Modify(true); end; - local procedure VerifyDefaultApproverFilter(DefaultExpenseUserNo: Code[20]; OtherExpenseUserNo: Code[20]) + local procedure VerifyDefaultApproverFilter(DefaultExpenseUserNo: Code[20]; OtherExpenseUserNo: Code[20]; UseDefaultFallback: Boolean) var DefaultTravelRequest: Record "Spend Request"; OtherTravelRequest: Record "Spend Request"; @@ -3182,11 +3271,13 @@ codeunit 148339 "Spend Request Test" OtherExpenseUser: Record "Expense User"; DefaultApprover: Record "Expense User"; OtherApprover: Record "Expense User"; + ExpenseApprovalSetup: Record "Expense Approval Setup"; TravelRequestApproval: Codeunit "Travel Request Approval"; + ExpectedApproverNo: Code[20]; begin - Initialize(); - - // [GIVEN] A default approver, an unassigned request, and a request assigned to another approver. + // [GIVEN] Default approver "A", a request for "U", and another request assigned to approver "B". + // Initialize deletes expense users without their OnDelete trigger, leaving approval setups behind. + ExpenseApprovalSetup.DeleteAll(); LibraryExpense.UpdateEnableAgentInAgentSetup(true); CreateApprover(DefaultApprover); SetDefaultApprover(DefaultApprover."No."); @@ -3194,28 +3285,93 @@ codeunit 148339 "Spend Request Test" if DefaultExpenseUserNo <> '' then begin DefaultExpenseUser.Rename(DefaultExpenseUserNo); DefaultTravelRequest.Get(DefaultTravelRequest."No."); - DefaultTravelRequest.TestField("Requested For", DefaultExpenseUserNo); + Assert.AreEqual(DefaultExpenseUserNo, DefaultTravelRequest."Requested For", 'The request must retain the literal renamed user number.'); end; LibraryExpense.SetSpendRequestStatus(DefaultTravelRequest, DefaultTravelRequest.Status::Released); CreateReleasableSpendRequest(OtherTravelRequest, OtherExpenseUser); if OtherExpenseUserNo <> '' then begin OtherExpenseUser.Rename(OtherExpenseUserNo); OtherTravelRequest.Get(OtherTravelRequest."No."); - OtherTravelRequest.TestField("Requested For", OtherExpenseUserNo); + Assert.AreEqual(OtherExpenseUserNo, OtherTravelRequest."Requested For", 'The other request must retain the literal renamed user number.'); end; CreateApproverForExpenseUser(OtherApprover, OtherExpenseUser); LibraryExpense.SetSpendRequestStatus(OtherTravelRequest, OtherTravelRequest.Status::Released); + // [GIVEN] "U" is either explicitly assigned to "A" or has no setup and must use the default fallback. + // Both setting the default approver and inserting expense users create explicit assignments. + ExpenseApprovalSetup.Get(DefaultExpenseUser."No."); + Assert.AreEqual(DefaultApprover."No.", ExpenseApprovalSetup."Approver No.", 'The initial fixture must exercise the explicit-assignment path.'); + ExpectedApproverNo := DefaultApprover."No."; + if UseDefaultFallback then begin + ExpenseApprovalSetup.Delete(true); + ExpectedApproverNo := ''; + end; + DefaultExpenseUser.CalcFields("Approver No."); + Assert.AreEqual(ExpectedApproverNo, DefaultExpenseUser."Approver No.", 'The fixture must select the intended explicit-assignment or default-fallback path.'); + ExpenseApprovalSetup.Get(OtherExpenseUser."No."); + Assert.AreEqual(OtherApprover."No.", ExpenseApprovalSetup."Approver No.", 'The other request must remain explicitly assigned to another approver.'); + // [WHEN] The default approver's filter is applied to pending travel requests. FilteredTravelRequest.SetRange("Document Type", FilteredTravelRequest."Document Type"::"Travel Request"); FilteredTravelRequest.SetRange(Status, FilteredTravelRequest.Status::Released); TravelRequestApproval.ApplyApproverFilter(FilteredTravelRequest, DefaultApprover.SystemId); - // [THEN] Only the literal unassigned user's request is visible, not the other approver's request. + // [THEN] Only "U"'s literal request is visible, not the request assigned to "B". FilteredTravelRequest.SetRange("No.", DefaultTravelRequest."No."); - Assert.IsFalse(FilteredTravelRequest.IsEmpty(), DefaultTravelRequestVisibleMsg); + Assert.IsFalse( + FilteredTravelRequest.IsEmpty(), + StrSubstNo(ApproverFilterExpectedRequestErr, + DefaultTravelRequestVisibleMsg, FilteredTravelRequest.GetFilter("Requested For"), DefaultTravelRequest."No.")); FilteredTravelRequest.SetRange("No.", OtherTravelRequest."No."); - Assert.IsTrue(FilteredTravelRequest.IsEmpty(), UnassignedTravelRequestHiddenMsg); + Assert.IsTrue( + FilteredTravelRequest.IsEmpty(), + StrSubstNo(ApproverFilterUnexpectedRequestErr, + UnassignedTravelRequestHiddenMsg, FilteredTravelRequest.GetFilter("Requested For"), + DefaultTravelRequest."No.", OtherTravelRequest."No.")); + end; + + local procedure VerifyApproverFilterRangeGapSetup(FirstTravelRequest: Record "Spend Request"; LastTravelRequest: Record "Spend Request"; UnassignedTravelRequest: Record "Spend Request"; AssignedApproverNo: Code[20]; DefaultApproverNo: Code[20]) + var + ExpenseApprovalSetup: Record "Expense Approval Setup"; + ExpenseAgentSetup: Record "Expense Agent Setup"; + ExpenseUser: Record "Expense User"; + begin + Assert.AreEqual('TR-A', FirstTravelRequest."Requested For", 'The first request must use the lower range endpoint.'); + Assert.AreEqual('TR-C', LastTravelRequest."Requested For", 'The last request must use the upper range endpoint.'); + Assert.AreEqual('TR-B', UnassignedTravelRequest."Requested For", 'The unassigned request must lie between the assigned users.'); + ExpenseApprovalSetup.Get(FirstTravelRequest."Requested For"); + Assert.AreEqual(AssignedApproverNo, ExpenseApprovalSetup."Approver No.", 'The first user must be explicitly assigned.'); + ExpenseApprovalSetup.Get(LastTravelRequest."Requested For"); + Assert.AreEqual(AssignedApproverNo, ExpenseApprovalSetup."Approver No.", 'The last user must have the same explicit approver.'); + Assert.IsFalse(ExpenseApprovalSetup.Get(UnassignedTravelRequest."Requested For"), 'The middle user must have no approval setup row.'); + ExpenseUser.Get(UnassignedTravelRequest."Requested For"); + ExpenseUser.CalcFields("Approver No."); + Assert.AreEqual('', ExpenseUser."Approver No.", 'The middle user must use the default approver fallback.'); + ExpenseAgentSetup.Get(); + Assert.AreEqual(DefaultApproverNo, ExpenseAgentSetup."Default Approver No.", 'The middle user must belong to the other default approver.'); + Assert.AreNotEqual(AssignedApproverNo, DefaultApproverNo, 'The explicit and default approvers must differ.'); + ExpenseApprovalSetup.SetRange("Expense User No.", FirstTravelRequest."Requested For", LastTravelRequest."Requested For"); + Assert.AreEqual(2, ExpenseApprovalSetup.Count(), 'Only the two assigned setup rows may exist in the tested range.'); + end; + + local procedure VerifyApproverFilterRangeGapResults(var FilteredTravelRequest: Record "Spend Request"; FirstTravelRequestNo: Code[20]; LastTravelRequestNo: Code[20]; UnassignedTravelRequestNo: Code[20]) + begin + FilteredTravelRequest.SetRange("No.", FirstTravelRequestNo); + Assert.IsFalse( + FilteredTravelRequest.IsEmpty(), + StrSubstNo(ApproverFilterExpectedRequestErr, + AssignedTravelRequestVisibleMsg, FilteredTravelRequest.GetFilter("Requested For"), FirstTravelRequestNo)); + FilteredTravelRequest.SetRange("No.", LastTravelRequestNo); + Assert.IsFalse( + FilteredTravelRequest.IsEmpty(), + StrSubstNo(ApproverFilterExpectedRequestErr, + AssignedTravelRequestVisibleMsg, FilteredTravelRequest.GetFilter("Requested For"), LastTravelRequestNo)); + FilteredTravelRequest.SetRange("No.", UnassignedTravelRequestNo); + Assert.IsTrue( + FilteredTravelRequest.IsEmpty(), + StrSubstNo(ApproverFilterUnexpectedRequestErr, + UnassignedTravelRequestHiddenMsg, FilteredTravelRequest.GetFilter("Requested For"), + FirstTravelRequestNo, UnassignedTravelRequestNo)); end; local procedure VerifyPostedTravelRequestHistory(SpendRequest: Record "Spend Request"; ExpectedPostedExpenseReportHeader: Record "Posted Expense Report Header") diff --git a/src/DisabledTests/E-Document_Core_Tests/E-Document Core Tests.DisabledTest.json b/src/DisabledTests/E-Document_Core_Tests/E-Document Core Tests.DisabledTest.json index 2a0b6b498c3..1db9a8feddd 100644 --- a/src/DisabledTests/E-Document_Core_Tests/E-Document Core Tests.DisabledTest.json +++ b/src/DisabledTests/E-Document_Core_Tests/E-Document Core Tests.DisabledTest.json @@ -314,11 +314,6 @@ "codeunitName": "EDocCopilotPOGeneralHarms", "method": "*" }, - { - "codeunitId": 135575, - "codeunitName": "E-Doc. API Test", - "method": "*" - }, { "codeunitId": 139235, "codeunitName": "PEPPOL30 Management Tests", diff --git a/src/DisabledTests/Expense_Agent_Tests/Expense_Agent_Tests.DisabledTest.json b/src/DisabledTests/Expense_Agent_Tests/Expense_Agent_Tests.DisabledTest.json index b23129476de..27a0e065b84 100644 --- a/src/DisabledTests/Expense_Agent_Tests/Expense_Agent_Tests.DisabledTest.json +++ b/src/DisabledTests/Expense_Agent_Tests/Expense_Agent_Tests.DisabledTest.json @@ -1,254 +1,14 @@ [ - { - "codeunitId": 148315, - "codeunitName": "Expense Users API Test", - "method": "EmployeesAPICanFilterExpenseUsers" - }, - { - "codeunitId": 148315, - "codeunitName": "Expense Users API Test", - "method": "UnlinkedExpenseUserIsHiddenFromAPI" - }, - { - "codeunitId": 148347, - "codeunitName": "Travel Requests API Test", - "method": "TravelersAPIMapsEmployeeNumberToExpenseUser" - }, - { - "codeunitId": 148347, - "codeunitName": "Travel Requests API Test", - "method": "TravelersAPIRejectsEmployeeWithoutExpenseUser" - }, - { - "codeunitId": 148347, - "codeunitName": "Travel Requests API Test", - "method": "CreateExpenseReportActionRecreatesDeletedReport" - }, - { - "codeunitId": 148347, - "codeunitName": "Travel Requests API Test", - "method": "ApproveTravelRequestActionCreatesExpenseReport" - }, - { - "codeunitId": 148347, - "codeunitName": "Travel Requests API Test", - "method": "TravelRequestsAPINormalizesCurrency" - }, - { - "codeunitId": 148347, - "codeunitName": "Travel Requests API Test", - "method": "TravelRequestDetailsAPINormalizesCurrency" - }, - { - "codeunitId": 148347, - "codeunitName": "Travel Requests API Test", - "method": "TravelRequestsAPIPreservesAndUpdatesDates" - }, - { - "codeunitId": 148347, - "codeunitName": "Travel Requests API Test", - "method": "TravelRequestsAreScopedByEmployeeNumber" - }, - { - "codeunitId": 148347, - "codeunitName": "Travel Requests API Test", - "method": "ExpenseReportAPIExposesLinkedTravelRequest" - }, - { - "codeunitId": 148347, - "codeunitName": "Travel Requests API Test", - "method": "TravelRequestDetailsAPIExposesTypeAndCategory" - }, - { - "codeunitId": 148347, - "codeunitName": "Travel Requests API Test", - "method": "ApproverViewReturnsOnlyAssignedTravelRequests" - }, - { - "codeunitId": 148347, - "codeunitName": "Travel Requests API Test", - "method": "TravelRequestsAPIAllowsOwnerOnInsertAndUnchangedPatch" - }, - { - "codeunitId": 148347, - "codeunitName": "Travel Requests API Test", - "method": "TravelRequestsAPIRejectsLifecycleFieldChanges" - }, - { - "codeunitId": 148347, - "codeunitName": "Travel Requests API Test", - "method": "TravelRequestsAPIRejectsRequestedForChange" - }, - { - "codeunitId": 148347, - "codeunitName": "Travel Requests API Test", - "method": "LegacySpendRequestsAPIAllowsUnchangedOwner" - }, - { - "codeunitId": 148347, - "codeunitName": "Travel Requests API Test", - "method": "LegacySpendRequestsAPIRejectsTravelRequestOwnerChange" - }, { "codeunitId": 148318, "codeunitName": "Expense Capabilities API Test", "method": "CapabilitiesProjectsEnabledViaAPI" }, - { - "codeunitId": 148318, - "codeunitName": "Expense Capabilities API Test", - "method": "CapabilitiesProjectsDisabledViaAPI" - }, { "codeunitId": 148318, "codeunitName": "Expense Capabilities API Test", "method": "CapabilitiesConsolidatedProjectsFollowsProjectFieldsViaAPI" }, - { - "codeunitId": 148318, - "codeunitName": "Expense Capabilities API Test", - "method": "ActivityLogCapabilityEnabledViaAPI" - }, - { - "codeunitId": 148318, - "codeunitName": "Expense Capabilities API Test", - "method": "TravelRequestCapabilityEnabledViaAPI" - }, - { - "codeunitId": 148343, - "codeunitName": "Expense Activity Log API Test", - "method": "ActivityLogEntryIsExposedThroughReadOnlyAPI" - }, - { - "codeunitId": 148343, - "codeunitName": "Expense Activity Log API Test", - "method": "ActivityLogAPIRejectsWrites" - }, - { - "codeunitId": 148343, - "codeunitName": "Expense Activity Log API Test", - "method": "NonSnapshotActivityDoesNotExposeCurrencies" - }, - { - "codeunitId": 148343, - "codeunitName": "Expense Activity Log API Test", - "method": "UnscopedActivityAPIHidesEntries" - }, - { - "codeunitId": 148343, - "codeunitName": "Expense Activity Log API Test", - "method": "SubmitterHistoryReturnsCompleteTimelinesForSubmittedReports" - }, - { - "codeunitId": 148343, - "codeunitName": "Expense Activity Log API Test", - "method": "ApproverHistoryReturnsCompleteTimelinesForActedOnReports" - }, - { - "codeunitId": 148343, - "codeunitName": "Expense Activity Log API Test", - "method": "E2EActivityLogScenario" - }, - { - "codeunitId": 148333, - "codeunitName": "Expense Agent Setup API Test", - "method": "EmailAddressFieldIsExposedThroughAPI" - }, - { - "codeunitId": 148349, - "codeunitName": "Expense PerDiem Locations Test", - "method": "PerDiemLocationsReturnsLinkedLocationViaAPI" - }, - { - "codeunitId": 148349, - "codeunitName": "Expense PerDiem Locations Test", - "method": "PerDiemLocationsExcludesNonPerDiemCategoryViaAPI" - }, - { - "codeunitId": 148331, - "codeunitName": "Expense Projects API Test", - "method": "AssignedByPersonResponsibleReturnsWholeProjectViaAPI" - }, - { - "codeunitId": 148331, - "codeunitName": "Expense Projects API Test", - "method": "AssignedByProjectManagerReturnsWholeProjectViaAPI" - }, - { - "codeunitId": 148331, - "codeunitName": "Expense Projects API Test", - "method": "AssignedByProjectLevelResourceReturnsWholeProjectViaAPI" - }, - { - "codeunitId": 148331, - "codeunitName": "Expense Projects API Test", - "method": "AssignedByTaskLevelResourceReturnsOnlyThatTaskViaAPI" - }, - { - "codeunitId": 148331, - "codeunitName": "Expense Projects API Test", - "method": "AssignedByPlanningLineReturnsOnlyThatTaskViaAPI" - }, - { - "codeunitId": 148331, - "codeunitName": "Expense Projects API Test", - "method": "WholeProjectSignalSupersedesTaskLevelViaAPI" - }, - { - "codeunitId": 148331, - "codeunitName": "Expense Projects API Test", - "method": "OverlappingSignalsForSameResourceAreDeduplicatedViaAPI" - }, - { - "codeunitId": 148331, - "codeunitName": "Expense Projects API Test", - "method": "CompletedProjectExcludedEvenWhenAssignedViaAPI" - }, - { - "codeunitId": 148331, - "codeunitName": "Expense Projects API Test", - "method": "EmptyResourceUserMatchesNothingViaAPI" - }, - { - "codeunitId": 148331, - "codeunitName": "Expense Projects API Test", - "method": "BlankUserIdDoesNotMatchBlankProjectManagerViaAPI" - }, - { - "codeunitId": 148331, - "codeunitName": "Expense Projects API Test", - "method": "ProjectManagerMatchWithBlankResourceReturnsProjectViaAPI" - }, - { - "codeunitId": 148331, - "codeunitName": "Expense Projects API Test", - "method": "TasklessProjectExcludedViaAPI" - }, - { - "codeunitId": 148331, - "codeunitName": "Expense Projects API Test", - "method": "WholeProjectAndTaskLevelAcrossProjectsNoLeakageViaAPI" - }, - { - "codeunitId": 148331, - "codeunitName": "Expense Projects API Test", - "method": "AllProjectsVisibilityReturnsAllProjectsViaAPI" - }, - { - "codeunitId": 148331, - "codeunitName": "Expense Projects API Test", - "method": "AllProjectsVisibilityIncludesActiveStatusesAndPostingTasksViaAPI" - }, - { - "codeunitId": 148331, - "codeunitName": "Expense Projects API Test", - "method": "AssignedProjectsRequiresScopeFilterViaAPI" - }, - { - "codeunitId": 148331, - "codeunitName": "Expense Projects API Test", - "method": "AssignedProjectsBlockedWhenProjectFieldsDisabledViaAPI" - }, { "codeunitId": 148305, "codeunitName": "Expense Test", diff --git a/src/DisabledTests/_Exclude_APIV1__Tests/_Exclude_APIV1__Tests.DisabledTest.json b/src/DisabledTests/_Exclude_APIV1__Tests/_Exclude_APIV1__Tests.DisabledTest.json index ad692000a56..628d3d7f82f 100644 --- a/src/DisabledTests/_Exclude_APIV1__Tests/_Exclude_APIV1__Tests.DisabledTest.json +++ b/src/DisabledTests/_Exclude_APIV1__Tests/_Exclude_APIV1__Tests.DisabledTest.json @@ -1,84 +1,4 @@ [ - { - "codeunitId": 139701, - "codeunitName": "APIV1 - Accounts E2E", - "method": "TestGetAccounts" - }, - { - "codeunitId": 139704, - "codeunitName": "APIV1 - Payment Terms E2E", - "method": "TestGetPaymentTerms" - }, - { - "codeunitId": 139705, - "codeunitName": "APIV1 - Shipment Methods E2E", - "method": "TestGetShipmentMethods" - }, - { - "codeunitId": 139706, - "codeunitName": "APIV1 - Company Info. E2E", - "method": "TestGetCompanyInformationWithComplexType" - }, - { - "codeunitId": 139706, - "codeunitName": "APIV1 - Company Info. E2E", - "method": "TestModifyCompanyInformation" - }, - { - "codeunitId": 139706, - "codeunitName": "APIV1 - Company Info. E2E", - "method": "TestModifyCompanyInformationWithComplexType" - }, - { - "codeunitId": 139706, - "codeunitName": "APIV1 - Company Info. E2E", - "method": "TestRemoveComplexTypeFromCompanyInformation" - }, - { - "codeunitId": 139707, - "codeunitName": "APIV1 - Item Categories E2E", - "method": "TestCreateItemCategory" - }, - { - "codeunitId": 139707, - "codeunitName": "APIV1 - Item Categories E2E", - "method": "TestDeleteItemCategory" - }, - { - "codeunitId": 139707, - "codeunitName": "APIV1 - Item Categories E2E", - "method": "TestGetItemCategories" - }, - { - "codeunitId": 139707, - "codeunitName": "APIV1 - Item Categories E2E", - "method": "TestModifyItemCategory" - }, - { - "codeunitId": 139708, - "codeunitName": "Tax Groups E2E", - "method": "TestCreateTaxGroup" - }, - { - "codeunitId": 139708, - "codeunitName": "Tax Groups E2E", - "method": "TestDeleteTaxGroup" - }, - { - "codeunitId": 139708, - "codeunitName": "Tax Groups E2E", - "method": "TestGetTaxGroup" - }, - { - "codeunitId": 139708, - "codeunitName": "Tax Groups E2E", - "method": "TestGetTaxGroups" - }, - { - "codeunitId": 139708, - "codeunitName": "Tax Groups E2E", - "method": "TestModifyTaxGroup" - }, { "codeunitId": 139709, "codeunitName": "Sales Invoices E2E", @@ -89,1250 +9,115 @@ "codeunitName": "Sales Invoices E2E", "method": "TestActionCancelInvoice" }, - { - "codeunitId": 139709, - "codeunitName": "Sales Invoices E2E", - "method": "TestActionMakeCorrectiveCreditMemo" - }, - { - "codeunitId": 139709, - "codeunitName": "Sales Invoices E2E", - "method": "TestActionPostAndSendInvoice" - }, - { - "codeunitId": 139709, - "codeunitName": "Sales Invoices E2E", - "method": "TestActionPostInvoice" - }, { "codeunitId": 139709, "codeunitName": "Sales Invoices E2E", "method": "TestActionSendCancelledInvoice" }, - { - "codeunitId": 139709, - "codeunitName": "Sales Invoices E2E", - "method": "TestActionSendDraftInvoice" - }, - { - "codeunitId": 139709, - "codeunitName": "Sales Invoices E2E", - "method": "TestActionSendPostedInvoice" - }, - { - "codeunitId": 139709, - "codeunitName": "Sales Invoices E2E", - "method": "TestClearingManualDiscounts" - }, { "codeunitId": 139709, "codeunitName": "Sales Invoices E2E", "method": "TestCreateInvoiceThroughPageAndAPI" }, - { - "codeunitId": 139709, - "codeunitName": "Sales Invoices E2E", - "method": "TestDeleteInvoice" - }, - { - "codeunitId": 139709, - "codeunitName": "Sales Invoices E2E", - "method": "TestEmptyModifyInvoices" - }, - { - "codeunitId": 139709, - "codeunitName": "Sales Invoices E2E", - "method": "TestGetInvoices" - }, { "codeunitId": 139709, "codeunitName": "Sales Invoices E2E", "method": "TestGetInvoicesAppliesDiscountPct" }, - { - "codeunitId": 139709, - "codeunitName": "Sales Invoices E2E", - "method": "TestGetInvoicesRedistributesDiscountAmt" - }, - { - "codeunitId": 139709, - "codeunitName": "Sales Invoices E2E", - "method": "TestModifyingWithBlankIdEmptiesTheCodeAndTheId" - }, - { - "codeunitId": 139709, - "codeunitName": "Sales Invoices E2E", - "method": "TestModifyInvoiceNumberForDraftInvoice" - }, - { - "codeunitId": 139709, - "codeunitName": "Sales Invoices E2E", - "method": "TestModifyInvoices" - }, - { - "codeunitId": 139709, - "codeunitName": "Sales Invoices E2E", - "method": "TestModifyInvoiceSetManualDiscount" - }, - { - "codeunitId": 139709, - "codeunitName": "Sales Invoices E2E", - "method": "TestPartialModifyInvoices" - }, - { - "codeunitId": 139709, - "codeunitName": "Sales Invoices E2E", - "method": "TestPostInvoices" - }, - { - "codeunitId": 139709, - "codeunitName": "Sales Invoices E2E", - "method": "TestPostInvoiceWithCurrency" - }, - { - "codeunitId": 139709, - "codeunitName": "Sales Invoices E2E", - "method": "TestPostInvoiceWithDates" - }, - { - "codeunitId": 139709, - "codeunitName": "Sales Invoices E2E", - "method": "TestPostInvoiceWithEmail" - }, - { - "codeunitId": 139710, - "codeunitName": "Countries/Regions E2E", - "method": "TestCreateCountriesRegions" - }, - { - "codeunitId": 139710, - "codeunitName": "Countries/Regions E2E", - "method": "TestDeleteCountriesRegions" - }, - { - "codeunitId": 139710, - "codeunitName": "Countries/Regions E2E", - "method": "TestGetCountriesRegions" - }, - { - "codeunitId": 139710, - "codeunitName": "Countries/Regions E2E", - "method": "TestModifyCountriesRegions" - }, - { - "codeunitId": 139711, - "codeunitName": "APIV1 - Sales Orders E2E", - "method": "TestActionShipAndInvoice" - }, - { - "codeunitId": 139711, - "codeunitName": "APIV1 - Sales Orders E2E", - "method": "TestClearingManualDiscounts" - }, { "codeunitId": 139711, "codeunitName": "APIV1 - Sales Orders E2E", "method": "TestCreateOrderThroughPageAndAPI" }, { - "codeunitId": 139711, - "codeunitName": "APIV1 - Sales Orders E2E", - "method": "TestDeleteOrders" - }, - { - "codeunitId": 139711, - "codeunitName": "APIV1 - Sales Orders E2E", - "method": "TestEmptyModifyOrders" - }, - { - "codeunitId": 139711, - "codeunitName": "APIV1 - Sales Orders E2E", - "method": "TestGetOrders" - }, - { - "codeunitId": 139711, - "codeunitName": "APIV1 - Sales Orders E2E", - "method": "TestGetOrdersAppliesDiscountPct" - }, - { - "codeunitId": 139711, - "codeunitName": "APIV1 - Sales Orders E2E", - "method": "TestGetOrdersRedistributesDiscountAmt" - }, - { - "codeunitId": 139711, - "codeunitName": "APIV1 - Sales Orders E2E", - "method": "TestModifyOrders" - }, - { - "codeunitId": 139711, - "codeunitName": "APIV1 - Sales Orders E2E", - "method": "TestModifyOrderSetManualDiscount" - }, - { - "codeunitId": 139711, - "codeunitName": "APIV1 - Sales Orders E2E", - "method": "TestPartialModifyOrders" - }, - { - "codeunitId": 139711, - "codeunitName": "APIV1 - Sales Orders E2E", - "method": "TestPostOrderForCustomerWithLocationCode" - }, - { - "codeunitId": 139711, - "codeunitName": "APIV1 - Sales Orders E2E", - "method": "TestPostOrders" - }, - { - "codeunitId": 139711, - "codeunitName": "APIV1 - Sales Orders E2E", - "method": "TestPostOrderWithCurrency" - }, - { - "codeunitId": 139712, - "codeunitName": "APIV1 - UofM E2E", - "method": "TestDeleteUnitOfMeasure" - }, - { - "codeunitId": 139712, - "codeunitName": "APIV1 - UofM E2E", - "method": "TestGetUnitOfMeasure" - }, - { - "codeunitId": 139712, - "codeunitName": "APIV1 - UofM E2E", - "method": "TestInsertUnitOfMeasure" - }, - { - "codeunitId": 139712, - "codeunitName": "APIV1 - UofM E2E", - "method": "TestModifyUnitOfMeasure" - }, - { - "codeunitId": 139713, - "codeunitName": "APIV1 - Currencies E2E", - "method": "TestCreateCurrency" - }, - { - "codeunitId": 139713, - "codeunitName": "APIV1 - Currencies E2E", - "method": "TestDeleteCurrency" - }, - { - "codeunitId": 139713, - "codeunitName": "APIV1 - Currencies E2E", - "method": "TestGetCurrencies" - }, - { - "codeunitId": 139713, - "codeunitName": "APIV1 - Currencies E2E", - "method": "TestModifyCurrency" - }, - { - "codeunitId": 139714, - "codeunitName": "Payment Methods E2E", - "method": "TestCreatePaymentMethods" - }, - { - "codeunitId": 139714, - "codeunitName": "Payment Methods E2E", - "method": "TestDeletePaymentMethods" - }, - { - "codeunitId": 139714, - "codeunitName": "Payment Methods E2E", - "method": "TestGetPaymentMethods" + "codeunitId": 139723, + "codeunitName": "APIV1 - Sales Quotes E2E", + "method": "TestActionMakeOrderFromQuote" }, { - "codeunitId": 139714, - "codeunitName": "Payment Methods E2E", - "method": "TestModifyPaymentMethods" + "codeunitId": 139723, + "codeunitName": "APIV1 - Sales Quotes E2E", + "method": "TestCreateQuoteThroughPageAndAPI" }, { - "codeunitId": 139715, - "codeunitName": "APIV1 - Balance Sheet E2E", - "method": "TestGetBalanceSheetRecords" + "codeunitId": 139728, + "codeunitName": "APIV1 - Sales Credit Memos E2E", + "method": "TestActionCancelAndSendCorrectiveCreditMemo" }, { - "codeunitId": 139716, - "codeunitName": "APIV1 - Income Statement E2E", - "method": "TestGetIncomeStatementRecords" + "codeunitId": 139728, + "codeunitName": "APIV1 - Sales Credit Memos E2E", + "method": "TestActionCancelCorrectiveCreditMemo" }, { - "codeunitId": 139717, - "codeunitName": "APIV1 - CashFlow Statement E2E", - "method": "TestGetCashFlowRecords" + "codeunitId": 139728, + "codeunitName": "APIV1 - Sales Credit Memos E2E", + "method": "TestCreateCreditMemoThroughPageAndAPI" }, { - "codeunitId": 139718, - "codeunitName": "APIV1 - Trial Balance E2E", - "method": "TestGetTrialBalanceRecords" + "codeunitId": 139729, + "codeunitName": "APIV1 - Purchase Invoices E2E", + "method": "TestPurchaseInvoiceWithPaymentDiscount" }, { - "codeunitId": 139719, - "codeunitName": "APIV1 - Aged AP E2E", - "method": "TestGetAgedAPRecords" + "codeunitId": 139730, + "codeunitName": "APIV1 - GLEntries E2E", + "method": "TestGetGLEntries" }, { - "codeunitId": 139720, - "codeunitName": "APIV1 - Aged AR E2E", - "method": "TestGetAgedARRecords" + "codeunitId": 139731, + "codeunitName": "APIV1 - Automation RS Package", + "method": "TestApplyRSPackage" }, { - "codeunitId": 139721, - "codeunitName": "APIV1 - Ret. Earnings E2E", - "method": "TestRetainedEarningsStatementRecords" + "codeunitId": 139731, + "codeunitName": "APIV1 - Automation RS Package", + "method": "TestImportRSPackage" }, { - "codeunitId": 139722, - "codeunitName": "APIV1 - Employees E2E", - "method": "TestCreateEmployee" + "codeunitId": 139731, + "codeunitName": "APIV1 - Automation RS Package", + "method": "TestImportWrongRSPackage" }, { - "codeunitId": 139722, - "codeunitName": "APIV1 - Employees E2E", - "method": "TestDeleteEmployee" + "codeunitId": 139734, + "codeunitName": "APIV1 - Sales Inv. Lines E2E", + "method": "TestGettingLinesWithDifferentTypes" }, { - "codeunitId": 139722, - "codeunitName": "APIV1 - Employees E2E", - "method": "TestGetEmployee" + "codeunitId": 139734, + "codeunitName": "APIV1 - Sales Inv. Lines E2E", + "method": "TestPatchingTheIdToItemChangesLineType" }, { - "codeunitId": 139722, - "codeunitName": "APIV1 - Employees E2E", - "method": "TestModifyEmployee" + "codeunitId": 139734, + "codeunitName": "APIV1 - Sales Inv. Lines E2E", + "method": "TestPostingBlankLineDefaultsToItemType" }, { - "codeunitId": 139723, - "codeunitName": "APIV1 - Sales Quotes E2E", - "method": "TestActionMakeInvoiceFromQuote" + "codeunitId": 139735, + "codeunitName": "APIV1 - Sales Order Lines E2E", + "method": "TestGettingLinesWithDifferentTypes" }, { - "codeunitId": 139723, - "codeunitName": "APIV1 - Sales Quotes E2E", - "method": "TestActionMakeOrderFromQuote" + "codeunitId": 139735, + "codeunitName": "APIV1 - Sales Order Lines E2E", + "method": "TestPatchingTheIdToItemChangesLineType" }, { - "codeunitId": 139723, - "codeunitName": "APIV1 - Sales Quotes E2E", - "method": "TestActionSendQuote" + "codeunitId": 139735, + "codeunitName": "APIV1 - Sales Order Lines E2E", + "method": "TestPostingBlankLineDefaultsToItemType" }, { - "codeunitId": 139723, - "codeunitName": "APIV1 - Sales Quotes E2E", - "method": "TestClearingManualDiscounts" + "codeunitId": 139736, + "codeunitName": "APIV1 - Sales Quote Lines E2E", + "method": "TestPostingBlankLineDefaultsToItemType" }, { - "codeunitId": 139723, - "codeunitName": "APIV1 - Sales Quotes E2E", - "method": "TestCreateQuoteThroughPageAndAPI" - }, - { - "codeunitId": 139723, - "codeunitName": "APIV1 - Sales Quotes E2E", - "method": "TestDeleteQuotes" - }, - { - "codeunitId": 139723, - "codeunitName": "APIV1 - Sales Quotes E2E", - "method": "TestEmptyModifyQuotes" - }, - { - "codeunitId": 139723, - "codeunitName": "APIV1 - Sales Quotes E2E", - "method": "TestGetQuotes" - }, - { - "codeunitId": 139723, - "codeunitName": "APIV1 - Sales Quotes E2E", - "method": "TestGetQuotesAppliesDiscountPct" - }, - { - "codeunitId": 139723, - "codeunitName": "APIV1 - Sales Quotes E2E", - "method": "TestGetQuotesRedistributesDiscountAmt" - }, - { - "codeunitId": 139723, - "codeunitName": "APIV1 - Sales Quotes E2E", - "method": "TestModifyQuotes" - }, - { - "codeunitId": 139723, - "codeunitName": "APIV1 - Sales Quotes E2E", - "method": "TestModifyQuoteSetManualDiscount" - }, - { - "codeunitId": 139723, - "codeunitName": "APIV1 - Sales Quotes E2E", - "method": "TestPartialModifyQuotes" - }, - { - "codeunitId": 139723, - "codeunitName": "APIV1 - Sales Quotes E2E", - "method": "TestPostQuotes" - }, - { - "codeunitId": 139723, - "codeunitName": "APIV1 - Sales Quotes E2E", - "method": "TestPostQuoteWithCurrency" - }, - { - "codeunitId": 139724, - "codeunitName": "APIV1 - Dimensions E2E", - "method": "TestGetDimensions" - }, - { - "codeunitId": 139724, - "codeunitName": "APIV1 - Dimensions E2E", - "method": "TestGetDimensionValues" - }, - { - "codeunitId": 139727, - "codeunitName": "APIV1 - Journals E2E", - "method": "TestActionPostGenJournalBatch" - }, - { - "codeunitId": 139727, - "codeunitName": "APIV1 - Journals E2E", - "method": "TestCreateJournal" - }, - { - "codeunitId": 139727, - "codeunitName": "APIV1 - Journals E2E", - "method": "TestDeleteJournal" - }, - { - "codeunitId": 139727, - "codeunitName": "APIV1 - Journals E2E", - "method": "TestGetJournals" - }, - { - "codeunitId": 139727, - "codeunitName": "APIV1 - Journals E2E", - "method": "TestModifyJournal" - }, - { - "codeunitId": 139728, - "codeunitName": "APIV1 - Sales Credit Memos E2E", - "method": "TestActionCancelAndSendCorrectiveCreditMemo" - }, - { - "codeunitId": 139728, - "codeunitName": "APIV1 - Sales Credit Memos E2E", - "method": "TestActionCancelCorrectiveCreditMemo" - }, - { - "codeunitId": 139728, - "codeunitName": "APIV1 - Sales Credit Memos E2E", - "method": "TestActionPostAndSendCreditMemo" - }, - { - "codeunitId": 139728, - "codeunitName": "APIV1 - Sales Credit Memos E2E", - "method": "TestActionPostCreditMemo" - }, - { - "codeunitId": 139728, - "codeunitName": "APIV1 - Sales Credit Memos E2E", - "method": "TestActionSendCancelledCreditMemo" - }, - { - "codeunitId": 139728, - "codeunitName": "APIV1 - Sales Credit Memos E2E", - "method": "TestActionSendPostedCreditMemo" - }, - { - "codeunitId": 139728, - "codeunitName": "APIV1 - Sales Credit Memos E2E", - "method": "TestClearingManualDiscounts" - }, - { - "codeunitId": 139728, - "codeunitName": "APIV1 - Sales Credit Memos E2E", - "method": "TestCreateCreditMemoThroughPageAndAPI" - }, - { - "codeunitId": 139728, - "codeunitName": "APIV1 - Sales Credit Memos E2E", - "method": "TestDeleteCreditMemo" - }, - { - "codeunitId": 139728, - "codeunitName": "APIV1 - Sales Credit Memos E2E", - "method": "TestEmptyModifyCreditMemos" - }, - { - "codeunitId": 139728, - "codeunitName": "APIV1 - Sales Credit Memos E2E", - "method": "TestGetCreditMemos" - }, - { - "codeunitId": 139728, - "codeunitName": "APIV1 - Sales Credit Memos E2E", - "method": "TestGetCreditMemosAppliesDiscountPct" - }, - { - "codeunitId": 139728, - "codeunitName": "APIV1 - Sales Credit Memos E2E", - "method": "TestGetCreditMemosRedistributesDiscountAmt" - }, - { - "codeunitId": 139728, - "codeunitName": "APIV1 - Sales Credit Memos E2E", - "method": "TestModifyCreditMemos" - }, - { - "codeunitId": 139728, - "codeunitName": "APIV1 - Sales Credit Memos E2E", - "method": "TestModifyCreditMemoSetManualDiscount" - }, - { - "codeunitId": 139728, - "codeunitName": "APIV1 - Sales Credit Memos E2E", - "method": "TestPartialModifyCreditMemos" - }, - { - "codeunitId": 139728, - "codeunitName": "APIV1 - Sales Credit Memos E2E", - "method": "TestPostCreditMemos" - }, - { - "codeunitId": 139728, - "codeunitName": "APIV1 - Sales Credit Memos E2E", - "method": "TestPostCreditMemoWithCurrency" - }, - { - "codeunitId": 139729, - "codeunitName": "APIV1 - Purchase Invoices E2E", - "method": "TestActionPostPurchaseInvoice" - }, - { - "codeunitId": 139729, - "codeunitName": "APIV1 - Purchase Invoices E2E", - "method": "TestCreateInvoiceThroughPageAndAPI" - }, - { - "codeunitId": 139729, - "codeunitName": "APIV1 - Purchase Invoices E2E", - "method": "TestDeleteInvoice" - }, - { - "codeunitId": 139729, - "codeunitName": "APIV1 - Purchase Invoices E2E", - "method": "TestEmptyModifyInvoices" - }, - { - "codeunitId": 139729, - "codeunitName": "APIV1 - Purchase Invoices E2E", - "method": "TestGetInvoices" - }, - { - "codeunitId": 139729, - "codeunitName": "APIV1 - Purchase Invoices E2E", - "method": "TestModifyInvoices" - }, - { - "codeunitId": 139729, - "codeunitName": "APIV1 - Purchase Invoices E2E", - "method": "TestPartialModifyInvoices" - }, - { - "codeunitId": 139729, - "codeunitName": "APIV1 - Purchase Invoices E2E", - "method": "TestPostInvoices" - }, - { - "codeunitId": 139729, - "codeunitName": "APIV1 - Purchase Invoices E2E", - "method": "TestPostPurchaseInvoiceWithCurrency" - }, - { - "codeunitId": 139729, - "codeunitName": "APIV1 - Purchase Invoices E2E", - "method": "TestPurchaseInvoiceWithPaymentDiscount" - }, - { - "codeunitId": 139730, - "codeunitName": "APIV1 - GLEntries E2E", - "method": "TestGetGLEntries" - }, - { - "codeunitId": 139731, - "codeunitName": "APIV1 - Automation RS Package", - "method": "TestApplyRSPackage" - }, - { - "codeunitId": 139731, - "codeunitName": "APIV1 - Automation RS Package", - "method": "TestCreateRSPackage" - }, - { - "codeunitId": 139731, - "codeunitName": "APIV1 - Automation RS Package", - "method": "TestImportRSPackage" - }, - { - "codeunitId": 139731, - "codeunitName": "APIV1 - Automation RS Package", - "method": "TestImportWrongRSPackage" - }, - { - "codeunitId": 139731, - "codeunitName": "APIV1 - Automation RS Package", - "method": "TestUploadRSPackageFile" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestCreateDraftInvoiceAttachment" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestCreateDraftPurchaseInvoiceAttachment" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestCreateGLEntryAttachment" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestCreateJournalLineAttachment" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestCreatePostedInvoiceAttachment" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestCreatePostedPurchaseInvoiceAttachment" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestCreateQuoteAttachment" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestDeleteDraftInvoiceAttachment" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestDeleteDraftPurchaseInvoiceAttachment" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestDeleteGLEntryAttachment" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestDeleteJournalLineAttachment" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestDeletePostedInvoiceAttachment" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestDeletePostedPurchaseInvoiceAttachment" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestDeleteQuoteAttachment" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestGetDraftInvoiceAttachment" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestGetDraftInvoiceAttachments" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestGetDraftPurchaseInvoiceAttachments" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestGetGLEntryAttachment" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestGetGLEntryAttachments" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestGetJournalAttachment" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestGetJournalLineAttachment" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestGetJournalLineAttachments" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestGetPostedInvoiceAttachment" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestGetPostedInvoiceAttachments" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestGetPostedPurchaseInvoiceAttachments" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestGetQuoteAttachment" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestGetQuoteAttachments" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestLinkedAttachmentContentChangeKeepsOtherFieldsUnchanged" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestLinkedAttachmentDocumentIdChangeNotAllowed" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestLinkedAttachmentFileNameChangeKeepsOtherFieldsUnchanged" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestLinkedAttachmentIdChangeNotAllowed" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestTransferAttachmentFromDraftToPostedInvoice" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestTransferAttachmentFromDraftToPostedPurchaseInvoice" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestUpdateGenJournalLineAttachmentBinaryContent" - }, - { - "codeunitId": 139733, - "codeunitName": "APIV1 - Attachments E2E", - "method": "TestUpdateGLEntryAttachmentBinaryContent" - }, - { - "codeunitId": 139734, - "codeunitName": "APIV1 - Sales Inv. Lines E2E", - "method": "TestCreateLineThroughPageAndAPI" - }, - { - "codeunitId": 139734, - "codeunitName": "APIV1 - Sales Inv. Lines E2E", - "method": "TestDeleteInvoiceLine" - }, - { - "codeunitId": 139734, - "codeunitName": "APIV1 - Sales Inv. Lines E2E", - "method": "TestDeletingLineKeepsInvoiceDiscountAmt" - }, - { - "codeunitId": 139734, - "codeunitName": "APIV1 - Sales Inv. Lines E2E", - "method": "TestDeletingLineMovesInvoiceDiscountPct" - }, - { - "codeunitId": 139734, - "codeunitName": "APIV1 - Sales Inv. Lines E2E", - "method": "TestDeletingLineRemovesInvoiceDiscountPct" - }, - { - "codeunitId": 139734, - "codeunitName": "APIV1 - Sales Inv. Lines E2E", - "method": "TestGetInvoiceLineDirectly" - }, - { - "codeunitId": 139734, - "codeunitName": "APIV1 - Sales Inv. Lines E2E", - "method": "TestGetInvoiceLines" - }, - { - "codeunitId": 139734, - "codeunitName": "APIV1 - Sales Inv. Lines E2E", - "method": "TestGetInvoiceLinesDirectlyWithDocumentIdFilter" - }, - { - "codeunitId": 139734, - "codeunitName": "APIV1 - Sales Inv. Lines E2E", - "method": "TestGetPostedInvoiceLines" - }, - { - "codeunitId": 139734, - "codeunitName": "APIV1 - Sales Inv. Lines E2E", - "method": "TestGettingLinesWithDifferentTypes" - }, - { - "codeunitId": 139734, - "codeunitName": "APIV1 - Sales Inv. Lines E2E", - "method": "TestInsertingLineUpdatesInvoiceDiscountPct" - }, - { - "codeunitId": 139734, - "codeunitName": "APIV1 - Sales Inv. Lines E2E", - "method": "TestModifyingLineKeepsInvoiceDiscountAmt" - }, - { - "codeunitId": 139734, - "codeunitName": "APIV1 - Sales Inv. Lines E2E", - "method": "TestModifyingLineUpdatesInvoiceDiscountPct" - }, - { - "codeunitId": 139734, - "codeunitName": "APIV1 - Sales Inv. Lines E2E", - "method": "TestModifyInvoiceLine" - }, - { - "codeunitId": 139734, - "codeunitName": "APIV1 - Sales Inv. Lines E2E", - "method": "TestModifyInvoiceLineWithUoM" - }, - { - "codeunitId": 139734, - "codeunitName": "APIV1 - Sales Inv. Lines E2E", - "method": "TestPatchingTheIdToAccountChangesLineType" - }, - { - "codeunitId": 139734, - "codeunitName": "APIV1 - Sales Inv. Lines E2E", - "method": "TestPatchingTheIdToItemChangesLineType" - }, - { - "codeunitId": 139734, - "codeunitName": "APIV1 - Sales Inv. Lines E2E", - "method": "TestPatchingTheTypeBlanksIds" - }, - { - "codeunitId": 139734, - "codeunitName": "APIV1 - Sales Inv. Lines E2E", - "method": "TestPostingBlankLineDefaultsToItemType" - }, - { - "codeunitId": 139734, - "codeunitName": "APIV1 - Sales Inv. Lines E2E", - "method": "TestPostingCommentLine" - }, - { - "codeunitId": 139734, - "codeunitName": "APIV1 - Sales Inv. Lines E2E", - "method": "TestPostInvoiceLines" - }, - { - "codeunitId": 139734, - "codeunitName": "APIV1 - Sales Inv. Lines E2E", - "method": "TestPostInvoiceLinesWithItemVariant" - }, - { - "codeunitId": 139734, - "codeunitName": "APIV1 - Sales Inv. Lines E2E", - "method": "TestPostInvoiceLinesWithUoM" - }, - { - "codeunitId": 139734, - "codeunitName": "APIV1 - Sales Inv. Lines E2E", - "method": "TestPostInvoiceLineWithSequence" - }, - { - "codeunitId": 139735, - "codeunitName": "APIV1 - Sales Order Lines E2E", - "method": "TestCreateLineThroughPageAndAPI" - }, - { - "codeunitId": 139735, - "codeunitName": "APIV1 - Sales Order Lines E2E", - "method": "TestDeleteOrderLine" - }, - { - "codeunitId": 139735, - "codeunitName": "APIV1 - Sales Order Lines E2E", - "method": "TestDeletingLineKeepsOrderDiscountAmt" - }, - { - "codeunitId": 139735, - "codeunitName": "APIV1 - Sales Order Lines E2E", - "method": "TestDeletingLineMovesOrderDiscountPct" - }, - { - "codeunitId": 139735, - "codeunitName": "APIV1 - Sales Order Lines E2E", - "method": "TestDeletingLineRemovesOrderDiscountPct" - }, - { - "codeunitId": 139735, - "codeunitName": "APIV1 - Sales Order Lines E2E", - "method": "TestGetOrderLineDirectly" - }, - { - "codeunitId": 139735, - "codeunitName": "APIV1 - Sales Order Lines E2E", - "method": "TestGetOrderLines" - }, - { - "codeunitId": 139735, - "codeunitName": "APIV1 - Sales Order Lines E2E", - "method": "TestGetOrderLinesDirectlyWithDocumentIdFilter" - }, - { - "codeunitId": 139735, - "codeunitName": "APIV1 - Sales Order Lines E2E", - "method": "TestGettingLinesWithDifferentTypes" - }, - { - "codeunitId": 139735, - "codeunitName": "APIV1 - Sales Order Lines E2E", - "method": "TestInsertingLineUpdatesOrderDiscountPct" - }, - { - "codeunitId": 139735, - "codeunitName": "APIV1 - Sales Order Lines E2E", - "method": "TestModifyingLineKeepsOrderDiscountAmt" - }, - { - "codeunitId": 139735, - "codeunitName": "APIV1 - Sales Order Lines E2E", - "method": "TestModifyingLineUpdatesOrderDiscountPct" - }, - { - "codeunitId": 139735, - "codeunitName": "APIV1 - Sales Order Lines E2E", - "method": "TestModifyOrderLines" - }, - { - "codeunitId": 139735, - "codeunitName": "APIV1 - Sales Order Lines E2E", - "method": "TestPatchingTheIdToAccountChangesLineType" - }, - { - "codeunitId": 139735, - "codeunitName": "APIV1 - Sales Order Lines E2E", - "method": "TestPatchingTheIdToItemChangesLineType" - }, - { - "codeunitId": 139735, - "codeunitName": "APIV1 - Sales Order Lines E2E", - "method": "TestPatchingTheTypeBlanksIds" - }, - { - "codeunitId": 139735, - "codeunitName": "APIV1 - Sales Order Lines E2E", - "method": "TestPostingBlankLineDefaultsToItemType" - }, - { - "codeunitId": 139735, - "codeunitName": "APIV1 - Sales Order Lines E2E", - "method": "TestPostingCommentLine" - }, - { - "codeunitId": 139735, - "codeunitName": "APIV1 - Sales Order Lines E2E", - "method": "TestPostOrderLines" - }, - { - "codeunitId": 139735, - "codeunitName": "APIV1 - Sales Order Lines E2E", - "method": "TestPostOrderLineWithItemVariant" - }, - { - "codeunitId": 139736, - "codeunitName": "APIV1 - Sales Quote Lines E2E", - "method": "TestDeleteQuoteLine" - }, - { - "codeunitId": 139736, - "codeunitName": "APIV1 - Sales Quote Lines E2E", - "method": "TestDeletingLineKeepsQuoteDiscountAmt" - }, - { - "codeunitId": 139736, - "codeunitName": "APIV1 - Sales Quote Lines E2E", - "method": "TestDeletingLineMovesQuoteDiscountPct" - }, - { - "codeunitId": 139736, - "codeunitName": "APIV1 - Sales Quote Lines E2E", - "method": "TestDeletingLineRemovesQuoteDiscountPct" - }, - { - "codeunitId": 139736, - "codeunitName": "APIV1 - Sales Quote Lines E2E", - "method": "TestGetQuoteLineDirectly" - }, - { - "codeunitId": 139736, - "codeunitName": "APIV1 - Sales Quote Lines E2E", - "method": "TestGetQuoteLines" - }, - { - "codeunitId": 139736, - "codeunitName": "APIV1 - Sales Quote Lines E2E", - "method": "TestGetQuoteLinesDirectlyWithDocumentIdFilter" - }, - { - "codeunitId": 139736, - "codeunitName": "APIV1 - Sales Quote Lines E2E", - "method": "TestInsertingLineKeepsQuoteDiscountAmt" - }, - { - "codeunitId": 139736, - "codeunitName": "APIV1 - Sales Quote Lines E2E", - "method": "TestInsertingLineUpdatesQuoteDiscountPct" - }, - { - "codeunitId": 139736, - "codeunitName": "APIV1 - Sales Quote Lines E2E", - "method": "TestModifyingLineKeepsQuoteDiscountAmt" - }, - { - "codeunitId": 139736, - "codeunitName": "APIV1 - Sales Quote Lines E2E", - "method": "TestModifyingLineUpdatesQuoteDiscountPct" - }, - { - "codeunitId": 139736, - "codeunitName": "APIV1 - Sales Quote Lines E2E", - "method": "TestModifyQuoteLines" - }, - { - "codeunitId": 139736, - "codeunitName": "APIV1 - Sales Quote Lines E2E", - "method": "TestPatchingTheTypeBlanksIds" - }, - { - "codeunitId": 139736, - "codeunitName": "APIV1 - Sales Quote Lines E2E", - "method": "TestPostingBlankLineDefaultsToItemType" - }, - { - "codeunitId": 139736, - "codeunitName": "APIV1 - Sales Quote Lines E2E", - "method": "TestPostingCommentLine" - }, - { - "codeunitId": 139736, - "codeunitName": "APIV1 - Sales Quote Lines E2E", - "method": "TestPostQuoteLines" - }, - { - "codeunitId": 139736, - "codeunitName": "APIV1 - Sales Quote Lines E2E", - "method": "TestPostQuoteLinesWithItemVariant" - }, - { - "codeunitId": 139737, - "codeunitName": "APIV1 - Sales CrMemo Lines E2E", - "method": "TestCreateLineThroughPageAndAPI" - }, - { - "codeunitId": 139737, - "codeunitName": "APIV1 - Sales CrMemo Lines E2E", - "method": "TestDeleteCreditMemoLine" - }, - { - "codeunitId": 139737, - "codeunitName": "APIV1 - Sales CrMemo Lines E2E", - "method": "TestDeletePostedCreditMemoLine" - }, - { - "codeunitId": 139737, - "codeunitName": "APIV1 - Sales CrMemo Lines E2E", - "method": "TestDeletingLineKeepsCreditMemoDiscountAmt" - }, - { - "codeunitId": 139737, - "codeunitName": "APIV1 - Sales CrMemo Lines E2E", - "method": "TestDeletingLineMovesCreditMemoDiscountPct" - }, - { - "codeunitId": 139737, - "codeunitName": "APIV1 - Sales CrMemo Lines E2E", - "method": "TestDeletingLineRemovesCreditMemoDiscountPct" - }, - { - "codeunitId": 139737, - "codeunitName": "APIV1 - Sales CrMemo Lines E2E", - "method": "TestGetCreditMemoLineDirectly" - }, - { - "codeunitId": 139737, - "codeunitName": "APIV1 - Sales CrMemo Lines E2E", - "method": "TestGetCreditMemoLines" - }, - { - "codeunitId": 139737, - "codeunitName": "APIV1 - Sales CrMemo Lines E2E", - "method": "TestGetCreditMemoLinesDirectlyWithDocumentIdFilter" - }, - { - "codeunitId": 139737, - "codeunitName": "APIV1 - Sales CrMemo Lines E2E", - "method": "TestGetPostedCreditMemoLines" - }, - { - "codeunitId": 139737, - "codeunitName": "APIV1 - Sales CrMemo Lines E2E", - "method": "TestGettingLinesWithDifferentTypes" - }, - { - "codeunitId": 139737, - "codeunitName": "APIV1 - Sales CrMemo Lines E2E", - "method": "TestInsertingLineUpdatesCreditMemoDiscountPct" - }, - { - "codeunitId": 139737, - "codeunitName": "APIV1 - Sales CrMemo Lines E2E", - "method": "TestModifyCreditMemoLines" - }, - { - "codeunitId": 139737, - "codeunitName": "APIV1 - Sales CrMemo Lines E2E", - "method": "TestModifyingLineKeepsCreditMemoDiscountAmt" - }, - { - "codeunitId": 139737, - "codeunitName": "APIV1 - Sales CrMemo Lines E2E", - "method": "TestModifyingLineUpdatesCreditMemoDiscountPct" - }, - { - "codeunitId": 139737, - "codeunitName": "APIV1 - Sales CrMemo Lines E2E", - "method": "TestPatchingTheIdToAccountChangesLineType" - }, - { - "codeunitId": 139737, - "codeunitName": "APIV1 - Sales CrMemo Lines E2E", - "method": "TestPatchingTheIdToItemChangesLineType" - }, - { - "codeunitId": 139737, - "codeunitName": "APIV1 - Sales CrMemo Lines E2E", - "method": "TestPatchingTheTypeBlanksIds" - }, - { - "codeunitId": 139737, - "codeunitName": "APIV1 - Sales CrMemo Lines E2E", - "method": "TestPostCreditMemoLines" - }, - { - "codeunitId": 139737, - "codeunitName": "APIV1 - Sales CrMemo Lines E2E", - "method": "TestPostCreditMemoLinesWithItemVariant" - }, - { - "codeunitId": 139737, - "codeunitName": "APIV1 - Sales CrMemo Lines E2E", - "method": "TestPostCreditMemoLineWithSequence" - }, - { - "codeunitId": 139737, - "codeunitName": "APIV1 - Sales CrMemo Lines E2E", - "method": "TestPostingBlankLineDefaultsToItemType" - }, - { - "codeunitId": 139737, - "codeunitName": "APIV1 - Sales CrMemo Lines E2E", - "method": "TestPostingCommentLine" - }, - { - "codeunitId": 139738, - "codeunitName": "APIV1 - Purchase Inv Lines E2E", - "method": "TestCreateLineThroughPageAndAPI" - }, - { - "codeunitId": 139738, - "codeunitName": "APIV1 - Purchase Inv Lines E2E", - "method": "TestDeleteInvoiceLine" - }, - { - "codeunitId": 139738, - "codeunitName": "APIV1 - Purchase Inv Lines E2E", - "method": "TestDeletingLineRemovesInvoiceDiscountPct" - }, - { - "codeunitId": 139738, - "codeunitName": "APIV1 - Purchase Inv Lines E2E", - "method": "TestGetInvoiceLineDirectly" - }, - { - "codeunitId": 139738, - "codeunitName": "APIV1 - Purchase Inv Lines E2E", - "method": "TestGetInvoiceLines" - }, - { - "codeunitId": 139738, - "codeunitName": "APIV1 - Purchase Inv Lines E2E", - "method": "TestGetInvoiceLinesDirectlyWithDocumentIdFilter" - }, - { - "codeunitId": 139738, - "codeunitName": "APIV1 - Purchase Inv Lines E2E", - "method": "TestGetPostedInvoiceLines" - }, - { - "codeunitId": 139738, - "codeunitName": "APIV1 - Purchase Inv Lines E2E", - "method": "TestInsertingLineUpdatesInvoiceDiscountPct" - }, - { - "codeunitId": 139738, - "codeunitName": "APIV1 - Purchase Inv Lines E2E", - "method": "TestModifyingLineUpdatesInvoiceDiscountPct" - }, - { - "codeunitId": 139738, - "codeunitName": "APIV1 - Purchase Inv Lines E2E", - "method": "TestModifyInvoiceLines" - }, - { - "codeunitId": 139738, - "codeunitName": "APIV1 - Purchase Inv Lines E2E", - "method": "TestPatchingTheTypeBlanksIds" + "codeunitId": 139737, + "codeunitName": "APIV1 - Sales CrMemo Lines E2E", + "method": "TestPostingBlankLineDefaultsToItemType" }, { "codeunitId": 139738, @@ -1340,118 +125,8 @@ "method": "TestPostingBlankLineDefaultsToItemType" }, { - "codeunitId": 139738, - "codeunitName": "APIV1 - Purchase Inv Lines E2E", - "method": "TestPostingCommentLine" - }, - { - "codeunitId": 139738, - "codeunitName": "APIV1 - Purchase Inv Lines E2E", - "method": "TestPostInvoiceLines" - }, - { - "codeunitId": 139738, - "codeunitName": "APIV1 - Purchase Inv Lines E2E", - "method": "TestPostInvoiceLinesWithItemVariant" - }, - { - "codeunitId": 139738, - "codeunitName": "APIV1 - Purchase Inv Lines E2E", - "method": "TestPostInvoiceLineWithSequence" - }, - { - "codeunitId": 139743, - "codeunitName": "APIV1 - Customer Payments E2E", - "method": "TestAppliesToInvoiceNoAndIdSync" - }, - { - "codeunitId": 139743, - "codeunitName": "APIV1 - Customer Payments E2E", - "method": "TestCreateCustomerPayment" - }, - { - "codeunitId": 139743, - "codeunitName": "APIV1 - Customer Payments E2E", - "method": "TestCreateCustomerPaymentWithInvoiceId" - }, - { - "codeunitId": 139743, - "codeunitName": "APIV1 - Customer Payments E2E", - "method": "TestCreateCustomerPaymentWithoutDocNo" - }, - { - "codeunitId": 139743, - "codeunitName": "APIV1 - Customer Payments E2E", - "method": "TestCustomerAutofillDoesNotOverwrite" - }, - { - "codeunitId": 139743, - "codeunitName": "APIV1 - Customer Payments E2E", - "method": "TestCustomerAutofillWhenGivingInvoiceNumber" - }, - { - "codeunitId": 139743, - "codeunitName": "APIV1 - Customer Payments E2E", - "method": "TestCustomerNoAndIdSync" - }, - { - "codeunitId": 139743, - "codeunitName": "APIV1 - Customer Payments E2E", - "method": "TestDeleteCustomerPayment" - }, - { - "codeunitId": 139743, - "codeunitName": "APIV1 - Customer Payments E2E", - "method": "TestGetCustomerPayment" - }, - { - "codeunitId": 139743, - "codeunitName": "APIV1 - Customer Payments E2E", - "method": "TestModifyCustomerPayment" - }, - { - "codeunitId": 139743, - "codeunitName": "APIV1 - Customer Payments E2E", - "method": "TestModifyCustomerPaymentWithRandomDocNo" - }, - { - "codeunitId": 139744, - "codeunitName": "APIV1 - PDF Document E2E", - "method": "TestGetPDFPurchaseInvoice" - }, - { - "codeunitId": 139744, - "codeunitName": "APIV1 - PDF Document E2E", - "method": "TestGetPDFSalesCreditMemo" - }, - { - "codeunitId": 139744, - "codeunitName": "APIV1 - PDF Document E2E", - "method": "TestGetPDFSalesInvoice" - }, - { - "codeunitId": 139744, - "codeunitName": "APIV1 - PDF Document E2E", - "method": "TestGetPDFSalesQuote" - }, - { - "codeunitId": 139745, - "codeunitName": "APIV1 - Journal Lines E2E", - "method": "TestCreateJournalLineWithDimensionsOnAccountWithDimensionSetup" - }, - { - "codeunitId": 139745, - "codeunitName": "APIV1 - Journal Lines E2E", - "method": "TestCreateJournalLineWithDisabledCopyVATSetup" - }, - { - "codeunitId": 139745, - "codeunitName": "APIV1 - Journal Lines E2E", - "method": "TestCreateJournalLineWithoutDimensionsOnAccountWithDimensionSetup" - }, - { - "codeunitId": 139745, - "codeunitName": "APIV1 - Journal Lines E2E", - "method": "TestCreateJournalLineWithOverridenDefaultDimension" + "codeunitId": 139739, + "codeunitName": "APIV1 - Item Variants E2E", + "method": "TestDeleteInUse" } ] diff --git a/src/DisabledTests/_Exclude_APIV2__Tests/_Exclude_APIV2__Tests.DisabledTest.json b/src/DisabledTests/_Exclude_APIV2__Tests/_Exclude_APIV2__Tests.DisabledTest.json index 2a73423912e..de6890cb93e 100644 --- a/src/DisabledTests/_Exclude_APIV2__Tests/_Exclude_APIV2__Tests.DisabledTest.json +++ b/src/DisabledTests/_Exclude_APIV2__Tests/_Exclude_APIV2__Tests.DisabledTest.json @@ -1,119 +1,4 @@ [ - { - "codeunitId": 139800, - "codeunitName": "APIV2 - Items E2E", - "method": "TestCreateItemWithCategoryCode" - }, - { - "codeunitId": 139800, - "codeunitName": "APIV2 - Items E2E", - "method": "TestCreateItemWithCategoryId" - }, - { - "codeunitId": 139800, - "codeunitName": "APIV2 - Items E2E", - "method": "TestCreateItemWithTemplate" - }, - { - "codeunitId": 139800, - "codeunitName": "APIV2 - Items E2E", - "method": "TestCreateItemWithTemplateIgnoresFieldsSet" - }, - { - "codeunitId": 139800, - "codeunitName": "APIV2 - Items E2E", - "method": "TestCreateItemWithUoMCode" - }, - { - "codeunitId": 139800, - "codeunitName": "APIV2 - Items E2E", - "method": "TestCreateItemWithUoMId" - }, - { - "codeunitId": 139800, - "codeunitName": "APIV2 - Items E2E", - "method": "TestCreateSimpleItem" - }, - { - "codeunitId": 139800, - "codeunitName": "APIV2 - Items E2E", - "method": "TestDeleteItem" - }, - { - "codeunitId": 139800, - "codeunitName": "APIV2 - Items E2E", - "method": "TestGetItemWithCategory" - }, - { - "codeunitId": 139800, - "codeunitName": "APIV2 - Items E2E", - "method": "TestGetRelatedEntities" - }, - { - "codeunitId": 139800, - "codeunitName": "APIV2 - Items E2E", - "method": "TestGetSimpleItem" - }, - { - "codeunitId": 139800, - "codeunitName": "APIV2 - Items E2E", - "method": "TestModifyItem" - }, - { - "codeunitId": 139800, - "codeunitName": "APIV2 - Items E2E", - "method": "TestModifyItemInventory" - }, - { - "codeunitId": 139800, - "codeunitName": "APIV2 - Items E2E", - "method": "TestPatchItemWithCategoryCode" - }, - { - "codeunitId": 139800, - "codeunitName": "APIV2 - Items E2E", - "method": "TestPatchItemWithCategoryId" - }, - { - "codeunitId": 139800, - "codeunitName": "APIV2 - Items E2E", - "method": "TestPatchItemWithGenProdPostingGroup" - }, - { - "codeunitId": 139800, - "codeunitName": "APIV2 - Items E2E", - "method": "TestPatchItemWithInventoryPostingGroup" - }, - { - "codeunitId": 139800, - "codeunitName": "APIV2 - Items E2E", - "method": "TestUnassignGenProdPostingGroup" - }, - { - "codeunitId": 139800, - "codeunitName": "APIV2 - Items E2E", - "method": "TestUnassignInventoryPostingGroup" - }, - { - "codeunitId": 139801, - "codeunitName": "APIV2 - Accounts E2E", - "method": "TestGetAccounts" - }, - { - "codeunitId": 139804, - "codeunitName": "APIV2 - Payment Terms E2E", - "method": "TestGetPaymentTerms" - }, - { - "codeunitId": 139805, - "codeunitName": "APIV2 - Shipment Methods E2E", - "method": "TestGetShipmentMethods" - }, - { - "codeunitId": 139806, - "codeunitName": "APIV2 - Company Info. E2E", - "method": "TestGetCompanyInformation" - }, { "codeunitId": 139806, "codeunitName": "APIV2 - Company Info. E2E", @@ -124,61 +9,6 @@ "codeunitName": "APIV2 - Company Info. E2E", "method": "TestModifyCompanyInformation" }, - { - "codeunitId": 139806, - "codeunitName": "APIV2 - Company Info. E2E", - "method": "TestModifyInvalidExperinceTier" - }, - { - "codeunitId": 139806, - "codeunitName": "APIV2 - Company Info. E2E", - "method": "TestModifyValidExperinceTier" - }, - { - "codeunitId": 139807, - "codeunitName": "APIV2 - Item Categories E2E", - "method": "TestCreateItemCategory" - }, - { - "codeunitId": 139807, - "codeunitName": "APIV2 - Item Categories E2E", - "method": "TestDeleteItemCategory" - }, - { - "codeunitId": 139807, - "codeunitName": "APIV2 - Item Categories E2E", - "method": "TestGetItemCategories" - }, - { - "codeunitId": 139807, - "codeunitName": "APIV2 - Item Categories E2E", - "method": "TestModifyItemCategory" - }, - { - "codeunitId": 139808, - "codeunitName": "APIV2 - Tax Groups E2E", - "method": "TestCreateTaxGroup" - }, - { - "codeunitId": 139808, - "codeunitName": "APIV2 - Tax Groups E2E", - "method": "TestDeleteTaxGroup" - }, - { - "codeunitId": 139808, - "codeunitName": "APIV2 - Tax Groups E2E", - "method": "TestGetTaxGroup" - }, - { - "codeunitId": 139808, - "codeunitName": "APIV2 - Tax Groups E2E", - "method": "TestGetTaxGroups" - }, - { - "codeunitId": 139808, - "codeunitName": "APIV2 - Tax Groups E2E", - "method": "TestModifyTaxGroup" - }, { "codeunitId": 139809, "codeunitName": "APIV2 - Sales Invoices E2E", @@ -189,3396 +19,111 @@ "codeunitName": "APIV2 - Sales Invoices E2E", "method": "TestActionCancelInvoice" }, - { - "codeunitId": 139809, - "codeunitName": "APIV2 - Sales Invoices E2E", - "method": "TestActionMakeCorrectiveCreditMemo" - }, - { - "codeunitId": 139809, - "codeunitName": "APIV2 - Sales Invoices E2E", - "method": "TestActionPostAndSendInvoice" - }, - { - "codeunitId": 139809, - "codeunitName": "APIV2 - Sales Invoices E2E", - "method": "TestActionPostInvoice" - }, { "codeunitId": 139809, "codeunitName": "APIV2 - Sales Invoices E2E", "method": "TestActionSendCancelledInvoice" }, - { - "codeunitId": 139809, - "codeunitName": "APIV2 - Sales Invoices E2E", - "method": "TestActionSendDraftInvoice" - }, - { - "codeunitId": 139809, - "codeunitName": "APIV2 - Sales Invoices E2E", - "method": "TestActionSendPostedInvoice" - }, - { - "codeunitId": 139809, - "codeunitName": "APIV2 - Sales Invoices E2E", - "method": "TestClearingManualDiscounts" - }, { "codeunitId": 139809, "codeunitName": "APIV2 - Sales Invoices E2E", "method": "TestCreateInvoiceThroughPageAndAPI" }, - { - "codeunitId": 139809, - "codeunitName": "APIV2 - Sales Invoices E2E", - "method": "TestDeleteInvoice" - }, - { - "codeunitId": 139809, - "codeunitName": "APIV2 - Sales Invoices E2E", - "method": "TestEmptyModifyInvoices" - }, - { - "codeunitId": 139809, - "codeunitName": "APIV2 - Sales Invoices E2E", - "method": "TestGetInvoiceFromPostedOrderCorrectOrderIdAndNo" - }, - { - "codeunitId": 139809, - "codeunitName": "APIV2 - Sales Invoices E2E", - "method": "TestGetInvoices" - }, - { - "codeunitId": 139809, - "codeunitName": "APIV2 - Sales Invoices E2E", - "method": "TestGetInvoicesAppliesDiscountPct" - }, - { - "codeunitId": 139809, - "codeunitName": "APIV2 - Sales Invoices E2E", - "method": "TestGetInvoicesRedistributesDiscountAmt" - }, - { - "codeunitId": 139809, - "codeunitName": "APIV2 - Sales Invoices E2E", - "method": "TestGetSalesInvoiceFromDraftId" - }, - { - "codeunitId": 139809, - "codeunitName": "APIV2 - Sales Invoices E2E", - "method": "TestModifyingWithBlankIdEmptiesTheCodeAndTheId" - }, - { - "codeunitId": 139809, - "codeunitName": "APIV2 - Sales Invoices E2E", - "method": "TestModifyInvoiceNumberForDraftInvoice" - }, - { - "codeunitId": 139809, - "codeunitName": "APIV2 - Sales Invoices E2E", - "method": "TestModifyInvoices" - }, - { - "codeunitId": 139809, - "codeunitName": "APIV2 - Sales Invoices E2E", - "method": "TestModifyInvoiceSetManualDiscount" - }, - { - "codeunitId": 139809, - "codeunitName": "APIV2 - Sales Invoices E2E", - "method": "TestPartialModifyInvoices" - }, - { - "codeunitId": 139809, - "codeunitName": "APIV2 - Sales Invoices E2E", - "method": "TestPostInvoices" - }, - { - "codeunitId": 139809, - "codeunitName": "APIV2 - Sales Invoices E2E", - "method": "TestPostInvoiceWithCurrency" - }, - { - "codeunitId": 139809, - "codeunitName": "APIV2 - Sales Invoices E2E", - "method": "TestPostInvoiceWithDates" - }, - { - "codeunitId": 139809, - "codeunitName": "APIV2 - Sales Invoices E2E", - "method": "TestPostInvoiceWithEmail" - }, - { - "codeunitId": 139810, - "codeunitName": "APIV2 - Countries/Regions E2E", - "method": "TestCreateCountriesRegions" - }, - { - "codeunitId": 139810, - "codeunitName": "APIV2 - Countries/Regions E2E", - "method": "TestDeleteCountriesRegions" - }, - { - "codeunitId": 139810, - "codeunitName": "APIV2 - Countries/Regions E2E", - "method": "TestGetCountriesRegions" - }, - { - "codeunitId": 139810, - "codeunitName": "APIV2 - Countries/Regions E2E", - "method": "TestModifyCountriesRegions" - }, - { - "codeunitId": 139811, - "codeunitName": "APIV2 - Sales Orders E2E", - "method": "TestActionShipAndInvoice" - }, - { - "codeunitId": 139811, - "codeunitName": "APIV2 - Sales Orders E2E", - "method": "TestClearingManualDiscounts" - }, { "codeunitId": 139811, "codeunitName": "APIV2 - Sales Orders E2E", "method": "TestCreateOrderThroughPageAndAPI" }, { - "codeunitId": 139811, - "codeunitName": "APIV2 - Sales Orders E2E", - "method": "TestDeleteOrders" - }, - { - "codeunitId": 139811, - "codeunitName": "APIV2 - Sales Orders E2E", - "method": "TestEmptyModifyOrders" - }, - { - "codeunitId": 139811, - "codeunitName": "APIV2 - Sales Orders E2E", - "method": "TestGetOrders" + "codeunitId": 139823, + "codeunitName": "APIV2 - Sales Quotes E2E", + "method": "TestActionMakeOrderFromQuote" }, { - "codeunitId": 139811, - "codeunitName": "APIV2 - Sales Orders E2E", - "method": "TestGetOrdersAppliesDiscountPct" + "codeunitId": 139823, + "codeunitName": "APIV2 - Sales Quotes E2E", + "method": "TestCreateQuoteThroughPageAndAPI" }, { - "codeunitId": 139811, - "codeunitName": "APIV2 - Sales Orders E2E", - "method": "TestGetOrdersRedistributesDiscountAmt" + "codeunitId": 139828, + "codeunitName": "APIV2 - Sales Credit Memos E2E", + "method": "TestActionCancelAndSendCorrectiveCreditMemo" }, { - "codeunitId": 139811, - "codeunitName": "APIV2 - Sales Orders E2E", - "method": "TestModifyOrders" + "codeunitId": 139828, + "codeunitName": "APIV2 - Sales Credit Memos E2E", + "method": "TestActionCancelCorrectiveCreditMemo" }, { - "codeunitId": 139811, - "codeunitName": "APIV2 - Sales Orders E2E", - "method": "TestModifyOrderSetManualDiscount" + "codeunitId": 139828, + "codeunitName": "APIV2 - Sales Credit Memos E2E", + "method": "TestCreateCreditMemoThroughPageAndAPI" }, { - "codeunitId": 139811, - "codeunitName": "APIV2 - Sales Orders E2E", - "method": "TestPartialModifyOrders" + "codeunitId": 139834, + "codeunitName": "APIV2 - Sales Inv. Lines E2E", + "method": "TestGettingLinesWithDifferentTypes" }, { - "codeunitId": 139811, - "codeunitName": "APIV2 - Sales Orders E2E", - "method": "TestPostOrderForCustomerWithLocationCode" + "codeunitId": 139834, + "codeunitName": "APIV2 - Sales Inv. Lines E2E", + "method": "TestPatchingTheIdToItemChangesLineType" }, { - "codeunitId": 139811, - "codeunitName": "APIV2 - Sales Orders E2E", - "method": "TestPostOrders" + "codeunitId": 139835, + "codeunitName": "APIV2 - Sales Order Lines E2E", + "method": "TestGettingLinesWithDifferentTypes" }, { - "codeunitId": 139811, - "codeunitName": "APIV2 - Sales Orders E2E", - "method": "TestPostOrderWithCurrency" + "codeunitId": 139835, + "codeunitName": "APIV2 - Sales Order Lines E2E", + "method": "TestPatchingTheIdToItemChangesLineType" }, { - "codeunitId": 139812, - "codeunitName": "APIV2 - UofM E2E", - "method": "TestDeleteUnitOfMeasure" + "codeunitId": 139839, + "codeunitName": "APIV2 - Item Variants E2E", + "method": "TestDeleteInUse" }, { - "codeunitId": 139812, - "codeunitName": "APIV2 - UofM E2E", - "method": "TestGetUnitOfMeasure" + "codeunitId": 139843, + "codeunitName": "APIV2 - Vendor Payments E2E", + "method": "TestCreateVendorPaymentWithoutDocNo" }, { - "codeunitId": 139812, - "codeunitName": "APIV2 - UofM E2E", - "method": "TestInsertUnitOfMeasure" + "codeunitId": 139851, + "codeunitName": "APIV2 - Purchase Orders E2E", + "method": "TestCreateOrderThroughPageAndAPI" }, { - "codeunitId": 139812, - "codeunitName": "APIV2 - UofM E2E", - "method": "TestModifyUnitOfMeasure" + "codeunitId": 139852, + "codeunitName": "APIV2 - Purch. Order Lines E2E", + "method": "TestGettingLinesWithDifferentTypes" }, { - "codeunitId": 139813, - "codeunitName": "APIV2 - Currencies E2E", - "method": "TestCreateCurrency" + "codeunitId": 139852, + "codeunitName": "APIV2 - Purch. Order Lines E2E", + "method": "TestPatchingTheIdToItemChangesLineType" }, { - "codeunitId": 139813, - "codeunitName": "APIV2 - Currencies E2E", - "method": "TestDeleteCurrency" + "codeunitId": 139865, + "codeunitName": "APIV2 - Purch. Cr. Memos E2E", + "method": "TestCreateCreditMemoThroughPageAndAPI" }, { - "codeunitId": 139813, - "codeunitName": "APIV2 - Currencies E2E", - "method": "TestGetCurrencies" + "codeunitId": 139867, + "codeunitName": "APIV2 - Apply Vendor Ent. E2E", + "method": "TestApplyVendorEntryAppliesPayment" }, { - "codeunitId": 139813, - "codeunitName": "APIV2 - Currencies E2E", - "method": "TestModifyCurrency" - }, - { - "codeunitId": 139814, - "codeunitName": "APIV2 - Payment Methods E2E", - "method": "TestCreatePaymentMethods" - }, - { - "codeunitId": 139814, - "codeunitName": "APIV2 - Payment Methods E2E", - "method": "TestDeletePaymentMethods" - }, - { - "codeunitId": 139814, - "codeunitName": "APIV2 - Payment Methods E2E", - "method": "TestGetPaymentMethods" - }, - { - "codeunitId": 139814, - "codeunitName": "APIV2 - Payment Methods E2E", - "method": "TestModifyPaymentMethods" - }, - { - "codeunitId": 139815, - "codeunitName": "APIV2 - Balance Sheet E2E", - "method": "TestGetBalanceSheetRecords" - }, - { - "codeunitId": 139816, - "codeunitName": "APIV2 - Income Statement E2E", - "method": "TestGetIncomeStatementRecords" - }, - { - "codeunitId": 139817, - "codeunitName": "APIV2 - CashFlow Statement E2E", - "method": "TestGetCashFlowRecords" - }, - { - "codeunitId": 139818, - "codeunitName": "APIV2 - Trial Balance E2E", - "method": "TestGetTrialBalanceRecords" - }, - { - "codeunitId": 139819, - "codeunitName": "APIV2 - Aged AP E2E", - "method": "TestGetAgedAPRecords" - }, - { - "codeunitId": 139820, - "codeunitName": "APIV2 - Aged AR E2E", - "method": "TestGetAgedARRecords" - }, - { - "codeunitId": 139821, - "codeunitName": "APIV2 - Ret. Earnings E2E", - "method": "TestRetainedEarningsStatementRecords" - }, - { - "codeunitId": 139822, - "codeunitName": "APIV2 - Employees E2E", - "method": "TestCreateEmployee" - }, - { - "codeunitId": 139822, - "codeunitName": "APIV2 - Employees E2E", - "method": "TestDeleteEmployee" - }, - { - "codeunitId": 139822, - "codeunitName": "APIV2 - Employees E2E", - "method": "TestGetEmployee" - }, - { - "codeunitId": 139822, - "codeunitName": "APIV2 - Employees E2E", - "method": "TestModifyEmployee" - }, - { - "codeunitId": 139823, - "codeunitName": "APIV2 - Sales Quotes E2E", - "method": "TestActionMakeInvoiceFromQuote" - }, - { - "codeunitId": 139823, - "codeunitName": "APIV2 - Sales Quotes E2E", - "method": "TestActionMakeOrderFromQuote" - }, - { - "codeunitId": 139823, - "codeunitName": "APIV2 - Sales Quotes E2E", - "method": "TestActionSendQuote" - }, - { - "codeunitId": 139823, - "codeunitName": "APIV2 - Sales Quotes E2E", - "method": "TestClearingManualDiscounts" - }, - { - "codeunitId": 139823, - "codeunitName": "APIV2 - Sales Quotes E2E", - "method": "TestCreateQuoteThroughPageAndAPI" - }, - { - "codeunitId": 139823, - "codeunitName": "APIV2 - Sales Quotes E2E", - "method": "TestDeleteQuotes" - }, - { - "codeunitId": 139823, - "codeunitName": "APIV2 - Sales Quotes E2E", - "method": "TestEmptyModifyQuotes" - }, - { - "codeunitId": 139823, - "codeunitName": "APIV2 - Sales Quotes E2E", - "method": "TestGetQuotes" - }, - { - "codeunitId": 139823, - "codeunitName": "APIV2 - Sales Quotes E2E", - "method": "TestGetQuotesAppliesDiscountPct" - }, - { - "codeunitId": 139823, - "codeunitName": "APIV2 - Sales Quotes E2E", - "method": "TestGetQuotesRedistributesDiscountAmt" - }, - { - "codeunitId": 139823, - "codeunitName": "APIV2 - Sales Quotes E2E", - "method": "TestModifyQuotes" - }, - { - "codeunitId": 139823, - "codeunitName": "APIV2 - Sales Quotes E2E", - "method": "TestModifyQuoteSetManualDiscount" - }, - { - "codeunitId": 139823, - "codeunitName": "APIV2 - Sales Quotes E2E", - "method": "TestPartialModifyQuotes" - }, - { - "codeunitId": 139823, - "codeunitName": "APIV2 - Sales Quotes E2E", - "method": "TestPostQuotes" - }, - { - "codeunitId": 139823, - "codeunitName": "APIV2 - Sales Quotes E2E", - "method": "TestPostQuoteWithCurrency" - }, - { - "codeunitId": 139824, - "codeunitName": "APIV2 - Dimensions E2E", - "method": "TestGetDimensions" - }, - { - "codeunitId": 139824, - "codeunitName": "APIV2 - Dimensions E2E", - "method": "TestGetDimensionValues" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestCreateDoesntWorkWithAlreadyExistingCode" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestCreateJournalLineDimensionSetLine" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestCreatePurchaseCrMemoDimensionSetLine" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestCreatePurchaseInvoiceDimensionSetLine" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestCreatePurchaseOrderDimensionSetLine" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestCreateSalesCrMemoDimensionSetLine" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestCreateSalesInvoiceDimensionSetLine" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestCreateSalesOrderDimensionSetLine" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestCreateSalesQuoteDimensionSetLine" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestCreateTimeRegEntryDimensionSetLine" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestDeleteDimensionSetLineOfGenJournalLines" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestDeletePurchaseCrMemoDimensionSetLine" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestDeletePurchaseInvoiceDimensionSetLine" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestDeletePurchaseOrderDimensionSetLine" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestDeleteSalesCrMemoDimensionSetLine" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestDeleteSalesInvoiceDimensionSetLine" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestDeleteSalesOrderDimensionSetLine" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestDeleteSalesQuoteDimensionSetLine" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestDeleteTimeRegEntryDimensionSetLine" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestGetDimensionSetLinesOfGLEntry" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestGetDimensionSetLinesOfJournalLines" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestGetDimensionSetLinesOfPurchaseCrMemo" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestGetDimensionSetLinesOfPurchaseInvoice" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestGetDimensionSetLinesOfPurchaseOrder" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestGetDimensionSetLinesOfSalesCrMemo" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestGetDimensionSetLinesOfSalesInvoice" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestGetDimensionSetLinesOfSalesOrder" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestGetDimensionSetLinesOfSalesQuote" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestGetDimensionSetLinesOfTimeRegEntry" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestModifyDimensionSetLineOfGenJournalLine" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestModifyDimensionSetLineOfSalesOrder" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestModifyDimensionSetLineOfSalesQuote" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestModifyOfDimensionCodeDoesntWork" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestModifyPurchaseCrMemoDimensionSetLine" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestModifyPurchaseInvoiceDimensionSetLine" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestModifyPurchaseOrderDimensionSetLine" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestModifySalesCrMemoDimensionSetLine" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestModifySalesInvoiceDimensionSetLine" - }, - { - "codeunitId": 139825, - "codeunitName": "APIV2 - Dim. Set Lines E2E", - "method": "TestModifyTimeRegEntryDimensionSetLine" - }, - { - "codeunitId": 139827, - "codeunitName": "APIV2 - Journals E2E", - "method": "TestActionPostGenJournalBatch" - }, - { - "codeunitId": 139827, - "codeunitName": "APIV2 - Journals E2E", - "method": "TestCreateJournal" - }, - { - "codeunitId": 139827, - "codeunitName": "APIV2 - Journals E2E", - "method": "TestDeleteJournal" - }, - { - "codeunitId": 139827, - "codeunitName": "APIV2 - Journals E2E", - "method": "TestGetJournals" - }, - { - "codeunitId": 139827, - "codeunitName": "APIV2 - Journals E2E", - "method": "TestModifyJournal" - }, - { - "codeunitId": 139828, - "codeunitName": "APIV2 - Sales Credit Memos E2E", - "method": "TestActionCancelAndSendCorrectiveCreditMemo" - }, - { - "codeunitId": 139828, - "codeunitName": "APIV2 - Sales Credit Memos E2E", - "method": "TestActionCancelCorrectiveCreditMemo" - }, - { - "codeunitId": 139828, - "codeunitName": "APIV2 - Sales Credit Memos E2E", - "method": "TestActionPostAndSendCreditMemo" - }, - { - "codeunitId": 139828, - "codeunitName": "APIV2 - Sales Credit Memos E2E", - "method": "TestActionPostCreditMemo" - }, - { - "codeunitId": 139828, - "codeunitName": "APIV2 - Sales Credit Memos E2E", - "method": "TestActionSendCancelledCreditMemo" - }, - { - "codeunitId": 139828, - "codeunitName": "APIV2 - Sales Credit Memos E2E", - "method": "TestActionSendPostedCreditMemo" - }, - { - "codeunitId": 139828, - "codeunitName": "APIV2 - Sales Credit Memos E2E", - "method": "TestClearingManualDiscounts" - }, - { - "codeunitId": 139828, - "codeunitName": "APIV2 - Sales Credit Memos E2E", - "method": "TestCreateCreditMemoThroughPageAndAPI" - }, - { - "codeunitId": 139828, - "codeunitName": "APIV2 - Sales Credit Memos E2E", - "method": "TestDeleteCreditMemo" - }, - { - "codeunitId": 139828, - "codeunitName": "APIV2 - Sales Credit Memos E2E", - "method": "TestEmptyModifyCreditMemos" - }, - { - "codeunitId": 139828, - "codeunitName": "APIV2 - Sales Credit Memos E2E", - "method": "TestGetCreditMemos" - }, - { - "codeunitId": 139828, - "codeunitName": "APIV2 - Sales Credit Memos E2E", - "method": "TestGetCreditMemosAppliesDiscountPct" - }, - { - "codeunitId": 139828, - "codeunitName": "APIV2 - Sales Credit Memos E2E", - "method": "TestGetCreditMemosRedistributesDiscountAmt" - }, - { - "codeunitId": 139828, - "codeunitName": "APIV2 - Sales Credit Memos E2E", - "method": "TestModifyCreditMemos" - }, - { - "codeunitId": 139828, - "codeunitName": "APIV2 - Sales Credit Memos E2E", - "method": "TestModifyCreditMemoSetManualDiscount" - }, - { - "codeunitId": 139828, - "codeunitName": "APIV2 - Sales Credit Memos E2E", - "method": "TestPartialModifyCreditMemos" - }, - { - "codeunitId": 139828, - "codeunitName": "APIV2 - Sales Credit Memos E2E", - "method": "TestPostCreditMemos" - }, - { - "codeunitId": 139828, - "codeunitName": "APIV2 - Sales Credit Memos E2E", - "method": "TestPostCreditMemoWithCurrency" - }, - { - "codeunitId": 139829, - "codeunitName": "APIV2 - Purchase Invoices E2E", - "method": "TestActionPostPurchaseInvoice" - }, - { - "codeunitId": 139829, - "codeunitName": "APIV2 - Purchase Invoices E2E", - "method": "TestCreateInvoiceThroughPageAndAPI" - }, - { - "codeunitId": 139829, - "codeunitName": "APIV2 - Purchase Invoices E2E", - "method": "TestDeleteInvoice" - }, - { - "codeunitId": 139829, - "codeunitName": "APIV2 - Purchase Invoices E2E", - "method": "TestEmptyModifyInvoices" - }, - { - "codeunitId": 139829, - "codeunitName": "APIV2 - Purchase Invoices E2E", - "method": "TestGetInvoiceFromPostedOrderCorrectOrderIdAndNo" - }, - { - "codeunitId": 139829, - "codeunitName": "APIV2 - Purchase Invoices E2E", - "method": "TestGetInvoices" - }, - { - "codeunitId": 139829, - "codeunitName": "APIV2 - Purchase Invoices E2E", - "method": "TestGetPurchaseInvoiceFromDraftId" - }, - { - "codeunitId": 139829, - "codeunitName": "APIV2 - Purchase Invoices E2E", - "method": "TestModifyInvoices" - }, - { - "codeunitId": 139829, - "codeunitName": "APIV2 - Purchase Invoices E2E", - "method": "TestPartialModifyInvoices" - }, - { - "codeunitId": 139829, - "codeunitName": "APIV2 - Purchase Invoices E2E", - "method": "TestPostInvoices" - }, - { - "codeunitId": 139829, - "codeunitName": "APIV2 - Purchase Invoices E2E", - "method": "TestPostPurchaseInvoiceWithCurrency" - }, - { - "codeunitId": 139830, - "codeunitName": "APIV2 - GLEntries E2E", - "method": "TestGetGLEntries" - }, - { - "codeunitId": 139831, - "codeunitName": "APIV2 - Automation RS Package", - "method": "TestApplyRSPackage" - }, - { - "codeunitId": 139831, - "codeunitName": "APIV2 - Automation RS Package", - "method": "TestCreateRSPackage" - }, - { - "codeunitId": 139831, - "codeunitName": "APIV2 - Automation RS Package", - "method": "TestImportRSPackage" - }, - { - "codeunitId": 139831, - "codeunitName": "APIV2 - Automation RS Package", - "method": "TestImportWrongRSPackage" - }, - { - "codeunitId": 139831, - "codeunitName": "APIV2 - Automation RS Package", - "method": "TestUploadRSPackageFile" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestCreateDraftInvoiceAttachment" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestCreateDraftOrderAttachment" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestCreateDraftPurchaseCreditMemoAttachment" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestCreateDraftPurchaseInvoiceAttachment" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestCreateDraftPurchaseOrderAttachment" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestCreateGLEntryAttachment" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestCreateJournalLineAttachment" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestCreatePostedInvoiceAttachment" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestCreatePostedPurchaseCreditMemoAttachment" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestCreatePostedPurchaseInvoiceAttachment" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestCreateQuoteAttachment" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestDeleteDraftInvoiceAttachment" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestDeleteDraftPurchaseCreditMemoAttachment" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestDeleteDraftPurchaseInvoiceAttachment" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestDeleteGLEntryAttachment" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestDeleteJournalLineAttachment" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestDeletePostedInvoiceAttachment" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestDeletePostedPurchaseCreditMemoAttachment" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestDeletePostedPurchaseInvoiceAttachment" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestDeleteQuoteAttachment" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestGetDraftInvoiceAttachment" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestGetDraftInvoiceAttachments" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestGetDraftOrderAttachment" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestGetDraftOrderAttachments" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestGetDraftPurchaseCreditMemoAttachments" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestGetDraftPurchaseInvoiceAttachments" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestGetDraftPurchaseOrderAttachments" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestGetGLEntryAttachment" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestGetGLEntryAttachments" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestGetJournalAttachment" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestGetJournalLineAttachment" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestGetJournalLineAttachments" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestGetPostedInvoiceAttachment" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestGetPostedInvoiceAttachments" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestGetPostedPurchaseCreditMemoAttachments" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestGetPostedPurchaseInvoiceAttachments" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestGetQuoteAttachment" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestGetQuoteAttachments" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestLinkedAttachmentContentChangeKeepsOtherFieldsUnchanged" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestLinkedAttachmentDocumentIdChangeNotAllowed" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestLinkedAttachmentFileNameChangeKeepsOtherFieldsUnchanged" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestTransferAttachmentFromDraftToPostedInvoice" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestTransferAttachmentFromDraftToPostedPurchaseCreditMemo" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestTransferAttachmentFromDraftToPostedPurchaseInvoice" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestUpdateGenJournalLineAttachmentBinaryContent" - }, - { - "codeunitId": 139833, - "codeunitName": "APIV2 - Attachments E2E", - "method": "TestUpdateGLEntryAttachmentBinaryContent" - }, - { - "codeunitId": 139834, - "codeunitName": "APIV2 - Sales Inv. Lines E2E", - "method": "TestCreateLineThroughPageAndAPI" - }, - { - "codeunitId": 139834, - "codeunitName": "APIV2 - Sales Inv. Lines E2E", - "method": "TestDeleteInvoiceLine" - }, - { - "codeunitId": 139834, - "codeunitName": "APIV2 - Sales Inv. Lines E2E", - "method": "TestDeletingLineKeepsInvoiceDiscountAmt" - }, - { - "codeunitId": 139834, - "codeunitName": "APIV2 - Sales Inv. Lines E2E", - "method": "TestDeletingLineMovesInvoiceDiscountPct" - }, - { - "codeunitId": 139834, - "codeunitName": "APIV2 - Sales Inv. Lines E2E", - "method": "TestDeletingLineRemovesInvoiceDiscountPct" - }, - { - "codeunitId": 139834, - "codeunitName": "APIV2 - Sales Inv. Lines E2E", - "method": "TestGetInvoiceLineDirectly" - }, - { - "codeunitId": 139834, - "codeunitName": "APIV2 - Sales Inv. Lines E2E", - "method": "TestGetInvoiceLines" - }, - { - "codeunitId": 139834, - "codeunitName": "APIV2 - Sales Inv. Lines E2E", - "method": "TestGetInvoiceLinesDirectlyWithDocumentIdFilter" - }, - { - "codeunitId": 139834, - "codeunitName": "APIV2 - Sales Inv. Lines E2E", - "method": "TestGetPostedInvoiceLines" - }, - { - "codeunitId": 139834, - "codeunitName": "APIV2 - Sales Inv. Lines E2E", - "method": "TestGettingLinesWithDifferentTypes" - }, - { - "codeunitId": 139834, - "codeunitName": "APIV2 - Sales Inv. Lines E2E", - "method": "TestInsertingLineKeepsInvoiceDiscountAmt" - }, - { - "codeunitId": 139834, - "codeunitName": "APIV2 - Sales Inv. Lines E2E", - "method": "TestInsertingLineUpdatesInvoiceDiscountPct" - }, - { - "codeunitId": 139834, - "codeunitName": "APIV2 - Sales Inv. Lines E2E", - "method": "TestModifyingLineKeepsInvoiceDiscountAmt" - }, - { - "codeunitId": 139834, - "codeunitName": "APIV2 - Sales Inv. Lines E2E", - "method": "TestModifyingLineUpdatesInvoiceDiscountPct" - }, - { - "codeunitId": 139834, - "codeunitName": "APIV2 - Sales Inv. Lines E2E", - "method": "TestModifyInvoiceLine" - }, - { - "codeunitId": 139834, - "codeunitName": "APIV2 - Sales Inv. Lines E2E", - "method": "TestModifyInvoiceLineWithUoM" - }, - { - "codeunitId": 139834, - "codeunitName": "APIV2 - Sales Inv. Lines E2E", - "method": "TestPatchingTheIdToAccountChangesLineType" - }, - { - "codeunitId": 139834, - "codeunitName": "APIV2 - Sales Inv. Lines E2E", - "method": "TestPatchingTheIdToItemChangesLineType" - }, - { - "codeunitId": 139834, - "codeunitName": "APIV2 - Sales Inv. Lines E2E", - "method": "TestPatchingTheTypeBlanksIds" - }, - { - "codeunitId": 139834, - "codeunitName": "APIV2 - Sales Inv. Lines E2E", - "method": "TestPostingBlankLineDefaultsToCommentType" - }, - { - "codeunitId": 139834, - "codeunitName": "APIV2 - Sales Inv. Lines E2E", - "method": "TestPostingCommentLine" - }, - { - "codeunitId": 139834, - "codeunitName": "APIV2 - Sales Inv. Lines E2E", - "method": "TestPostInvoiceLines" - }, - { - "codeunitId": 139834, - "codeunitName": "APIV2 - Sales Inv. Lines E2E", - "method": "TestPostInvoiceLinesWithItemVariant" - }, - { - "codeunitId": 139834, - "codeunitName": "APIV2 - Sales Inv. Lines E2E", - "method": "TestPostInvoiceLinesWithUoM" - }, - { - "codeunitId": 139834, - "codeunitName": "APIV2 - Sales Inv. Lines E2E", - "method": "TestPostInvoiceLineWithSequence" - }, - { - "codeunitId": 139835, - "codeunitName": "APIV2 - Sales Order Lines E2E", - "method": "TestCreateLineThroughPageAndAPI" - }, - { - "codeunitId": 139835, - "codeunitName": "APIV2 - Sales Order Lines E2E", - "method": "TestCreatingOrderLineWithAssemblyBOM" - }, - { - "codeunitId": 139835, - "codeunitName": "APIV2 - Sales Order Lines E2E", - "method": "TestDeleteOrderLine" - }, - { - "codeunitId": 139835, - "codeunitName": "APIV2 - Sales Order Lines E2E", - "method": "TestDeletingLineKeepsOrderDiscountAmt" - }, - { - "codeunitId": 139835, - "codeunitName": "APIV2 - Sales Order Lines E2E", - "method": "TestDeletingLineMovesOrderDiscountPct" - }, - { - "codeunitId": 139835, - "codeunitName": "APIV2 - Sales Order Lines E2E", - "method": "TestDeletingLineRemovesOrderDiscountPct" - }, - { - "codeunitId": 139835, - "codeunitName": "APIV2 - Sales Order Lines E2E", - "method": "TestExpandReturnsCorrectDocumentLines" - }, - { - "codeunitId": 139835, - "codeunitName": "APIV2 - Sales Order Lines E2E", - "method": "TestExpandReturnsCorrectDocumentLinesWithMultipleDocuments" - }, - { - "codeunitId": 139835, - "codeunitName": "APIV2 - Sales Order Lines E2E", - "method": "TestGetOrderLineDirectly" - }, - { - "codeunitId": 139835, - "codeunitName": "APIV2 - Sales Order Lines E2E", - "method": "TestGetOrderLines" - }, - { - "codeunitId": 139835, - "codeunitName": "APIV2 - Sales Order Lines E2E", - "method": "TestGetOrderLinesDirectlyWithDocumentIdFilter" - }, - { - "codeunitId": 139835, - "codeunitName": "APIV2 - Sales Order Lines E2E", - "method": "TestGettingLinesWithDifferentTypes" - }, - { - "codeunitId": 139835, - "codeunitName": "APIV2 - Sales Order Lines E2E", - "method": "TestInsertingLineKeepsOrderDiscountAmt" - }, - { - "codeunitId": 139835, - "codeunitName": "APIV2 - Sales Order Lines E2E", - "method": "TestInsertingLineUpdatesOrderDiscountPct" - }, - { - "codeunitId": 139835, - "codeunitName": "APIV2 - Sales Order Lines E2E", - "method": "TestModifyingLineKeepsOrderDiscountAmt" - }, - { - "codeunitId": 139835, - "codeunitName": "APIV2 - Sales Order Lines E2E", - "method": "TestModifyingLineUpdatesOrderDiscountPct" - }, - { - "codeunitId": 139835, - "codeunitName": "APIV2 - Sales Order Lines E2E", - "method": "TestModifyOrderLines" - }, - { - "codeunitId": 139835, - "codeunitName": "APIV2 - Sales Order Lines E2E", - "method": "TestPatchingTheIdToAccountChangesLineType" - }, - { - "codeunitId": 139835, - "codeunitName": "APIV2 - Sales Order Lines E2E", - "method": "TestPatchingTheIdToItemChangesLineType" - }, - { - "codeunitId": 139835, - "codeunitName": "APIV2 - Sales Order Lines E2E", - "method": "TestPatchingTheTypeBlanksIds" - }, - { - "codeunitId": 139835, - "codeunitName": "APIV2 - Sales Order Lines E2E", - "method": "TestPostingBlankLineDefaultsToCommentType" - }, - { - "codeunitId": 139835, - "codeunitName": "APIV2 - Sales Order Lines E2E", - "method": "TestPostingCommentLine" - }, - { - "codeunitId": 139835, - "codeunitName": "APIV2 - Sales Order Lines E2E", - "method": "TestPostOrderLines" - }, - { - "codeunitId": 139835, - "codeunitName": "APIV2 - Sales Order Lines E2E", - "method": "TestPostOrderLineWithItemVariant" - }, - { - "codeunitId": 139836, - "codeunitName": "APIV2 - Sales Quote Lines E2E", - "method": "TestDeleteQuoteLine" - }, - { - "codeunitId": 139836, - "codeunitName": "APIV2 - Sales Quote Lines E2E", - "method": "TestDeletingLineKeepsQuoteDiscountAmt" - }, - { - "codeunitId": 139836, - "codeunitName": "APIV2 - Sales Quote Lines E2E", - "method": "TestDeletingLineMovesQuoteDiscountPct" - }, - { - "codeunitId": 139836, - "codeunitName": "APIV2 - Sales Quote Lines E2E", - "method": "TestDeletingLineRemovesQuoteDiscountPct" - }, - { - "codeunitId": 139836, - "codeunitName": "APIV2 - Sales Quote Lines E2E", - "method": "TestGetQuoteLineDirectly" - }, - { - "codeunitId": 139836, - "codeunitName": "APIV2 - Sales Quote Lines E2E", - "method": "TestGetQuoteLines" - }, - { - "codeunitId": 139836, - "codeunitName": "APIV2 - Sales Quote Lines E2E", - "method": "TestGetQuoteLinesDirectlyWithDocumentIdFilter" - }, - { - "codeunitId": 139836, - "codeunitName": "APIV2 - Sales Quote Lines E2E", - "method": "TestInsertingLineKeepsQuoteDiscountAmt" - }, - { - "codeunitId": 139836, - "codeunitName": "APIV2 - Sales Quote Lines E2E", - "method": "TestInsertingLineUpdatesQuoteDiscountPct" - }, - { - "codeunitId": 139836, - "codeunitName": "APIV2 - Sales Quote Lines E2E", - "method": "TestModifyingLineKeepsQuoteDiscountAmt" - }, - { - "codeunitId": 139836, - "codeunitName": "APIV2 - Sales Quote Lines E2E", - "method": "TestModifyingLineUpdatesQuoteDiscountPct" - }, - { - "codeunitId": 139836, - "codeunitName": "APIV2 - Sales Quote Lines E2E", - "method": "TestModifyQuoteLines" - }, - { - "codeunitId": 139836, - "codeunitName": "APIV2 - Sales Quote Lines E2E", - "method": "TestPatchingTheTypeBlanksIds" - }, - { - "codeunitId": 139836, - "codeunitName": "APIV2 - Sales Quote Lines E2E", - "method": "TestPostingBlankLineDefaultsToCommentType" - }, - { - "codeunitId": 139836, - "codeunitName": "APIV2 - Sales Quote Lines E2E", - "method": "TestPostingCommentLine" - }, - { - "codeunitId": 139836, - "codeunitName": "APIV2 - Sales Quote Lines E2E", - "method": "TestPostQuoteLines" - }, - { - "codeunitId": 139836, - "codeunitName": "APIV2 - Sales Quote Lines E2E", - "method": "TestPostQuoteLinesWithItemVariant" - }, - { - "codeunitId": 139837, - "codeunitName": "APIV2 - Sales CrMemo Lines E2E", - "method": "TestCreateLineThroughPageAndAPI" - }, - { - "codeunitId": 139837, - "codeunitName": "APIV2 - Sales CrMemo Lines E2E", - "method": "TestDeleteCreditMemoLine" - }, - { - "codeunitId": 139837, - "codeunitName": "APIV2 - Sales CrMemo Lines E2E", - "method": "TestDeletePostedCreditMemoLine" - }, - { - "codeunitId": 139837, - "codeunitName": "APIV2 - Sales CrMemo Lines E2E", - "method": "TestDeletingLineKeepsCreditMemoDiscountAmt" - }, - { - "codeunitId": 139837, - "codeunitName": "APIV2 - Sales CrMemo Lines E2E", - "method": "TestDeletingLineMovesCreditMemoDiscountPct" - }, - { - "codeunitId": 139837, - "codeunitName": "APIV2 - Sales CrMemo Lines E2E", - "method": "TestDeletingLineRemovesCreditMemoDiscountPct" - }, - { - "codeunitId": 139837, - "codeunitName": "APIV2 - Sales CrMemo Lines E2E", - "method": "TestGetCreditMemoLineDirectly" - }, - { - "codeunitId": 139837, - "codeunitName": "APIV2 - Sales CrMemo Lines E2E", - "method": "TestGetCreditMemoLines" - }, - { - "codeunitId": 139837, - "codeunitName": "APIV2 - Sales CrMemo Lines E2E", - "method": "TestGetCreditMemoLinesDirectlyWithDocumentIdFilter" - }, - { - "codeunitId": 139837, - "codeunitName": "APIV2 - Sales CrMemo Lines E2E", - "method": "TestGetPostedCreditMemoLines" - }, - { - "codeunitId": 139837, - "codeunitName": "APIV2 - Sales CrMemo Lines E2E", - "method": "TestGettingLinesWithDifferentTypes" - }, - { - "codeunitId": 139837, - "codeunitName": "APIV2 - Sales CrMemo Lines E2E", - "method": "TestInsertingLineKeepsCreditMemoDiscountAmt" - }, - { - "codeunitId": 139837, - "codeunitName": "APIV2 - Sales CrMemo Lines E2E", - "method": "TestInsertingLineUpdatesCreditMemoDiscountPct" - }, - { - "codeunitId": 139837, - "codeunitName": "APIV2 - Sales CrMemo Lines E2E", - "method": "TestModifyCreditMemoLines" - }, - { - "codeunitId": 139837, - "codeunitName": "APIV2 - Sales CrMemo Lines E2E", - "method": "TestModifyingLineKeepsCreditMemoDiscountAmt" - }, - { - "codeunitId": 139837, - "codeunitName": "APIV2 - Sales CrMemo Lines E2E", - "method": "TestModifyingLineUpdatesCreditMemoDiscountPct" - }, - { - "codeunitId": 139837, - "codeunitName": "APIV2 - Sales CrMemo Lines E2E", - "method": "TestPatchingTheIdToAccountChangesLineType" - }, - { - "codeunitId": 139837, - "codeunitName": "APIV2 - Sales CrMemo Lines E2E", - "method": "TestPatchingTheIdToItemChangesLineType" - }, - { - "codeunitId": 139837, - "codeunitName": "APIV2 - Sales CrMemo Lines E2E", - "method": "TestPatchingTheTypeBlanksIds" - }, - { - "codeunitId": 139837, - "codeunitName": "APIV2 - Sales CrMemo Lines E2E", - "method": "TestPostCreditMemoLines" - }, - { - "codeunitId": 139837, - "codeunitName": "APIV2 - Sales CrMemo Lines E2E", - "method": "TestPostCreditMemoLinesWithItemVariant" - }, - { - "codeunitId": 139837, - "codeunitName": "APIV2 - Sales CrMemo Lines E2E", - "method": "TestPostCreditMemoLineWithSequence" - }, - { - "codeunitId": 139837, - "codeunitName": "APIV2 - Sales CrMemo Lines E2E", - "method": "TestPostingBlankLineDefaultsToCommentType" - }, - { - "codeunitId": 139837, - "codeunitName": "APIV2 - Sales CrMemo Lines E2E", - "method": "TestPostingCommentLine" - }, - { - "codeunitId": 139838, - "codeunitName": "APIV2 - Purchase Inv Lines E2E", - "method": "TestCreateLineThroughPageAndAPI" - }, - { - "codeunitId": 139838, - "codeunitName": "APIV2 - Purchase Inv Lines E2E", - "method": "TestDeleteInvoiceLine" - }, - { - "codeunitId": 139838, - "codeunitName": "APIV2 - Purchase Inv Lines E2E", - "method": "TestDeletingLineRemovesInvoiceDiscountPct" - }, - { - "codeunitId": 139838, - "codeunitName": "APIV2 - Purchase Inv Lines E2E", - "method": "TestGetInvoiceLineDirectly" - }, - { - "codeunitId": 139838, - "codeunitName": "APIV2 - Purchase Inv Lines E2E", - "method": "TestGetInvoiceLines" - }, - { - "codeunitId": 139838, - "codeunitName": "APIV2 - Purchase Inv Lines E2E", - "method": "TestGetInvoiceLinesDirectlyWithDocumentIdFilter" - }, - { - "codeunitId": 139838, - "codeunitName": "APIV2 - Purchase Inv Lines E2E", - "method": "TestGetPostedInvoiceLines" - }, - { - "codeunitId": 139838, - "codeunitName": "APIV2 - Purchase Inv Lines E2E", - "method": "TestInsertingLineKeepsInvoiceDiscountAmt" - }, - { - "codeunitId": 139838, - "codeunitName": "APIV2 - Purchase Inv Lines E2E", - "method": "TestInsertingLineUpdatesInvoiceDiscountPct" - }, - { - "codeunitId": 139838, - "codeunitName": "APIV2 - Purchase Inv Lines E2E", - "method": "TestModifyingLineUpdatesInvoiceDiscountPct" - }, - { - "codeunitId": 139838, - "codeunitName": "APIV2 - Purchase Inv Lines E2E", - "method": "TestModifyInvoiceLines" - }, - { - "codeunitId": 139838, - "codeunitName": "APIV2 - Purchase Inv Lines E2E", - "method": "TestPatchingTheTypeBlanksIds" - }, - { - "codeunitId": 139838, - "codeunitName": "APIV2 - Purchase Inv Lines E2E", - "method": "TestPostingBlankLineDefaultsToCommentType" - }, - { - "codeunitId": 139838, - "codeunitName": "APIV2 - Purchase Inv Lines E2E", - "method": "TestPostingCommentLine" - }, - { - "codeunitId": 139838, - "codeunitName": "APIV2 - Purchase Inv Lines E2E", - "method": "TestPostInvoiceLines" - }, - { - "codeunitId": 139838, - "codeunitName": "APIV2 - Purchase Inv Lines E2E", - "method": "TestPostInvoiceLinesWithItemVariant" - }, - { - "codeunitId": 139838, - "codeunitName": "APIV2 - Purchase Inv Lines E2E", - "method": "TestPostInvoiceLineWithSequence" - }, - { - "codeunitId": 139839, - "codeunitName": "APIV2 - Item Variants E2E", - "method": "TestCreateItemVariantWithItemId" - }, - { - "codeunitId": 139839, - "codeunitName": "APIV2 - Item Variants E2E", - "method": "TestCreateItemVariantWithItemNumber" - }, - { - "codeunitId": 139839, - "codeunitName": "APIV2 - Item Variants E2E", - "method": "TestCreateItemVariantWithItemNumberAndItemId" - }, - { - "codeunitId": 139839, - "codeunitName": "APIV2 - Item Variants E2E", - "method": "TestDeleteInUse" - }, - { - "codeunitId": 139839, - "codeunitName": "APIV2 - Item Variants E2E", - "method": "TestDeleteItemVariant" - }, - { - "codeunitId": 139839, - "codeunitName": "APIV2 - Item Variants E2E", - "method": "TestGetItemVariant" - }, - { - "codeunitId": 139839, - "codeunitName": "APIV2 - Item Variants E2E", - "method": "TestModifyItemVariant" - }, - { - "codeunitId": 139839, - "codeunitName": "APIV2 - Item Variants E2E", - "method": "TestModifyItemVariantItemId" - }, - { - "codeunitId": 139839, - "codeunitName": "APIV2 - Item Variants E2E", - "method": "TestModifyItemVariantItemNumber" - }, - { - "codeunitId": 139840, - "codeunitName": "APIV2 - Customer Payments E2E", - "method": "TestAppliesToInvoiceNoAndIdSync" - }, - { - "codeunitId": 139840, - "codeunitName": "APIV2 - Customer Payments E2E", - "method": "TestCreateCustomerPayment" - }, - { - "codeunitId": 139840, - "codeunitName": "APIV2 - Customer Payments E2E", - "method": "TestCreateCustomerPaymentWithInvoiceId" - }, - { - "codeunitId": 139840, - "codeunitName": "APIV2 - Customer Payments E2E", - "method": "TestCreateCustomerPaymentWithoutDocNo" - }, - { - "codeunitId": 139840, - "codeunitName": "APIV2 - Customer Payments E2E", - "method": "TestCustomerAutofillDoesNotOverwrite" - }, - { - "codeunitId": 139840, - "codeunitName": "APIV2 - Customer Payments E2E", - "method": "TestCustomerAutofillWhenGivingInvoiceNumber" - }, - { - "codeunitId": 139840, - "codeunitName": "APIV2 - Customer Payments E2E", - "method": "TestCustomerNoAndIdSync" - }, - { - "codeunitId": 139840, - "codeunitName": "APIV2 - Customer Payments E2E", - "method": "TestDeleteCustomerPayment" - }, - { - "codeunitId": 139840, - "codeunitName": "APIV2 - Customer Payments E2E", - "method": "TestGetCustomerPayment" - }, - { - "codeunitId": 139840, - "codeunitName": "APIV2 - Customer Payments E2E", - "method": "TestModifyCustomerPayment" - }, - { - "codeunitId": 139840, - "codeunitName": "APIV2 - Customer Payments E2E", - "method": "TestModifyCustomerPaymentWithRandomDocNo" - }, - { - "codeunitId": 139841, - "codeunitName": "APIV2 - PDF Document E2E", - "method": "TestGetPDFPurchaseCreditMemo" - }, - { - "codeunitId": 139841, - "codeunitName": "APIV2 - PDF Document E2E", - "method": "TestGetPDFPurchaseInvoice" - }, - { - "codeunitId": 139841, - "codeunitName": "APIV2 - PDF Document E2E", - "method": "TestGetPDFSalesCreditMemo" - }, - { - "codeunitId": 139841, - "codeunitName": "APIV2 - PDF Document E2E", - "method": "TestGetPDFSalesInvoice" - }, - { - "codeunitId": 139841, - "codeunitName": "APIV2 - PDF Document E2E", - "method": "TestGetPDFSalesOrder" - }, - { - "codeunitId": 139841, - "codeunitName": "APIV2 - PDF Document E2E", - "method": "TestGetPDFSalesQuote" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestGetPictureMetadataContact" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestGetPictureMetadataContactWithoutPicture" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestGetPictureMetadataCustomer" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestGetPictureMetadataCustomerWithoutPicture" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestGetPictureMetadataEmployee" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestGetPictureMetadataEmployeeWithoutPicture" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestGetPictureMetadataItem" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestGetPictureMetadataVendor" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestGetPictureMetadataVendorWithoutPicture" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestGetPictureMetadatItemWithoutPicture" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestGetPictureValueContact" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestGetPictureValueContactWithoutPicture" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestGetPictureValueCustomer" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestGetPictureValueCustomerWithoutPicture" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestGetPictureValueEmployee" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestGetPictureValueEmployeeWithoutPicture" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestGetPictureValueItem" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestGetPictureValueItemWithoutPicture" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestGetPictureValueVendor" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestGetPictureValueVendorWithoutPicture" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestPictureDeleteContact" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestPictureDeleteCustomer" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestPictureDeleteEmployee" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestPictureDeleteItem" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestPictureDeleteVendor" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestPictureReplaceContact" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestPictureReplaceCustomer" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestPictureReplaceEmployee" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestPictureReplaceItem" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestPictureReplaceVendor" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestPictureUploadContact" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestPictureUploadCustomer" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestPictureUploadEmployee" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestPictureUploadItem" - }, - { - "codeunitId": 139842, - "codeunitName": "APIV2 - Pictures E2E", - "method": "TestPictureUploadVendor" - }, - { - "codeunitId": 139843, - "codeunitName": "APIV2 - Vendor Payments E2E", - "method": "TestAppliesToInvoiceNoAndIdSync" - }, - { - "codeunitId": 139843, - "codeunitName": "APIV2 - Vendor Payments E2E", - "method": "TestAppliesToInvoiceNumberEmptyForNonInvoiceApplication" - }, - { - "codeunitId": 139843, - "codeunitName": "APIV2 - Vendor Payments E2E", - "method": "TestCreateVendorPayment" - }, - { - "codeunitId": 139843, - "codeunitName": "APIV2 - Vendor Payments E2E", - "method": "TestCreateVendorPaymentWithInvoiceId" - }, - { - "codeunitId": 139843, - "codeunitName": "APIV2 - Vendor Payments E2E", - "method": "TestCreateVendorPaymentWithoutDocNo" - }, - { - "codeunitId": 139843, - "codeunitName": "APIV2 - Vendor Payments E2E", - "method": "TestDeleteVendorPayment" - }, - { - "codeunitId": 139843, - "codeunitName": "APIV2 - Vendor Payments E2E", - "method": "TestGetVendorPayment" - }, - { - "codeunitId": 139843, - "codeunitName": "APIV2 - Vendor Payments E2E", - "method": "TestGetVendorPaymentWithoutInvoiceApplicationIsVisible" - }, - { - "codeunitId": 139843, - "codeunitName": "APIV2 - Vendor Payments E2E", - "method": "TestModifyVendorPayment" - }, - { - "codeunitId": 139843, - "codeunitName": "APIV2 - Vendor Payments E2E", - "method": "TestModifyVendorPaymentWithRandomDocNo" - }, - { - "codeunitId": 139843, - "codeunitName": "APIV2 - Vendor Payments E2E", - "method": "TestVendorAutofillDoesNotOverwrite" - }, - { - "codeunitId": 139843, - "codeunitName": "APIV2 - Vendor Payments E2E", - "method": "TestVendorAutofillWhenGivingInvoiceNumber" - }, - { - "codeunitId": 139843, - "codeunitName": "APIV2 - Vendor Payments E2E", - "method": "TestVendorNoAndIdSync" - }, - { - "codeunitId": 139847, - "codeunitName": "APIV2 - Sales Shipments E2E", - "method": "TestExpandDimensions" - }, - { - "codeunitId": 139847, - "codeunitName": "APIV2 - Sales Shipments E2E", - "method": "TestGetSalesShipments" - }, - { - "codeunitId": 139848, - "codeunitName": "APIV2 - Sales Ship. Lines E2E", - "method": "TestExpandDimensions" - }, - { - "codeunitId": 139848, - "codeunitName": "APIV2 - Sales Ship. Lines E2E", - "method": "TestGetLineDirectly" - }, - { - "codeunitId": 139848, - "codeunitName": "APIV2 - Sales Ship. Lines E2E", - "method": "TestGetShipmentLines" - }, - { - "codeunitId": 139848, - "codeunitName": "APIV2 - Sales Ship. Lines E2E", - "method": "TestGetShipmentLinesDirectlyWithDocumentIdFilter" - }, - { - "codeunitId": 139849, - "codeunitName": "APIV2 - Purchase Receipts E2E", - "method": "TestExpandDimensions" - }, - { - "codeunitId": 139849, - "codeunitName": "APIV2 - Purchase Receipts E2E", - "method": "TestGetPurchaseReceipts" - }, - { - "codeunitId": 139850, - "codeunitName": "APIV2 - Purch. Rcpt. Lines E2E", - "method": "TestExpandDimensions" - }, - { - "codeunitId": 139850, - "codeunitName": "APIV2 - Purch. Rcpt. Lines E2E", - "method": "TestGetLineDirectly" - }, - { - "codeunitId": 139850, - "codeunitName": "APIV2 - Purch. Rcpt. Lines E2E", - "method": "TestGetReceiptLines" - }, - { - "codeunitId": 139850, - "codeunitName": "APIV2 - Purch. Rcpt. Lines E2E", - "method": "TestGetReceiptLinesDirectlyWithDocumentIdFilter" - }, - { - "codeunitId": 139851, - "codeunitName": "APIV2 - Purchase Orders E2E", - "method": "TestActionRecieveAndInvoice" - }, - { - "codeunitId": 139851, - "codeunitName": "APIV2 - Purchase Orders E2E", - "method": "TestClearingManualDiscounts" - }, - { - "codeunitId": 139851, - "codeunitName": "APIV2 - Purchase Orders E2E", - "method": "TestCreateOrderThroughPageAndAPI" - }, - { - "codeunitId": 139851, - "codeunitName": "APIV2 - Purchase Orders E2E", - "method": "TestDeleteOrders" - }, - { - "codeunitId": 139851, - "codeunitName": "APIV2 - Purchase Orders E2E", - "method": "TestEmptyModifyOrders" - }, - { - "codeunitId": 139851, - "codeunitName": "APIV2 - Purchase Orders E2E", - "method": "TestGetOrders" - }, - { - "codeunitId": 139851, - "codeunitName": "APIV2 - Purchase Orders E2E", - "method": "TestGetOrdersAppliesDiscountPct" - }, - { - "codeunitId": 139851, - "codeunitName": "APIV2 - Purchase Orders E2E", - "method": "TestGetOrdersRedistributesDiscountAmt" - }, - { - "codeunitId": 139851, - "codeunitName": "APIV2 - Purchase Orders E2E", - "method": "TestModifyOrders" - }, - { - "codeunitId": 139851, - "codeunitName": "APIV2 - Purchase Orders E2E", - "method": "TestModifyOrderSetManualDiscount" - }, - { - "codeunitId": 139851, - "codeunitName": "APIV2 - Purchase Orders E2E", - "method": "TestPartialModifyOrders" - }, - { - "codeunitId": 139851, - "codeunitName": "APIV2 - Purchase Orders E2E", - "method": "TestPostOrderForCustomerWithLocationCode" - }, - { - "codeunitId": 139851, - "codeunitName": "APIV2 - Purchase Orders E2E", - "method": "TestPostOrders" - }, - { - "codeunitId": 139851, - "codeunitName": "APIV2 - Purchase Orders E2E", - "method": "TestPostOrdersWithEmptyShippingAddress" - }, - { - "codeunitId": 139851, - "codeunitName": "APIV2 - Purchase Orders E2E", - "method": "TestPostOrderWithCurrency" - }, - { - "codeunitId": 139852, - "codeunitName": "APIV2 - Purch. Order Lines E2E", - "method": "TestCreateLineThroughPageAndAPI" - }, - { - "codeunitId": 139852, - "codeunitName": "APIV2 - Purch. Order Lines E2E", - "method": "TestDeleteOrderLine" - }, - { - "codeunitId": 139852, - "codeunitName": "APIV2 - Purch. Order Lines E2E", - "method": "TestDeletingLineKeepsOrderDiscountAmt" - }, - { - "codeunitId": 139852, - "codeunitName": "APIV2 - Purch. Order Lines E2E", - "method": "TestDeletingLineMovesOrderDiscountPct" - }, - { - "codeunitId": 139852, - "codeunitName": "APIV2 - Purch. Order Lines E2E", - "method": "TestDeletingLineRemovesOrderDiscountPct" - }, - { - "codeunitId": 139852, - "codeunitName": "APIV2 - Purch. Order Lines E2E", - "method": "TestGetOrderLineDirectly" - }, - { - "codeunitId": 139852, - "codeunitName": "APIV2 - Purch. Order Lines E2E", - "method": "TestGetOrderLines" - }, - { - "codeunitId": 139852, - "codeunitName": "APIV2 - Purch. Order Lines E2E", - "method": "TestGetOrderLinesDirectlyWithDocumentIdFilter" - }, - { - "codeunitId": 139852, - "codeunitName": "APIV2 - Purch. Order Lines E2E", - "method": "TestGettingLinesWithDifferentTypes" - }, - { - "codeunitId": 139852, - "codeunitName": "APIV2 - Purch. Order Lines E2E", - "method": "TestInsertingLineKeepsOrderDiscountAmt" - }, - { - "codeunitId": 139852, - "codeunitName": "APIV2 - Purch. Order Lines E2E", - "method": "TestInsertingLineUpdatesOrderDiscountPct" - }, - { - "codeunitId": 139852, - "codeunitName": "APIV2 - Purch. Order Lines E2E", - "method": "TestModifyingLineKeepsOrderDiscountAmt" - }, - { - "codeunitId": 139852, - "codeunitName": "APIV2 - Purch. Order Lines E2E", - "method": "TestModifyingLineUpdatesOrderDiscountPct" - }, - { - "codeunitId": 139852, - "codeunitName": "APIV2 - Purch. Order Lines E2E", - "method": "TestModifyOrderLines" - }, - { - "codeunitId": 139852, - "codeunitName": "APIV2 - Purch. Order Lines E2E", - "method": "TestPatchingTheIdToAccountChangesLineType" - }, - { - "codeunitId": 139852, - "codeunitName": "APIV2 - Purch. Order Lines E2E", - "method": "TestPatchingTheIdToItemChangesLineType" - }, - { - "codeunitId": 139852, - "codeunitName": "APIV2 - Purch. Order Lines E2E", - "method": "TestPatchingTheTypeBlanksIds" - }, - { - "codeunitId": 139852, - "codeunitName": "APIV2 - Purch. Order Lines E2E", - "method": "TestPostingBlankLineDefaultsToCommentType" - }, - { - "codeunitId": 139852, - "codeunitName": "APIV2 - Purch. Order Lines E2E", - "method": "TestPostingCommentLine" - }, - { - "codeunitId": 139852, - "codeunitName": "APIV2 - Purch. Order Lines E2E", - "method": "TestPostOrderLines" - }, - { - "codeunitId": 139852, - "codeunitName": "APIV2 - Purch. Order Lines E2E", - "method": "TestPostOrderLineWithItemVariant" - }, - { - "codeunitId": 139853, - "codeunitName": "APIV2 - Contacts Inf. E2E", - "method": "TestGetCustomerContactInformation" - }, - { - "codeunitId": 139853, - "codeunitName": "APIV2 - Contacts Inf. E2E", - "method": "TestGetCustomerContactsInformation" - }, - { - "codeunitId": 139853, - "codeunitName": "APIV2 - Contacts Inf. E2E", - "method": "TestGetVendorContactInformation" - }, - { - "codeunitId": 139853, - "codeunitName": "APIV2 - Contacts Inf. E2E", - "method": "TestGetVendorContactsInformation" - }, - { - "codeunitId": 139854, - "codeunitName": "APIV2 - Item Ledg. Entries E2E", - "method": "TestGetItemLedgerEntries" - }, - { - "codeunitId": 139855, - "codeunitName": "APIV2 - Opportunities E2E", - "method": "TestCannotPatchContactNoOfWonOpportunity" - }, - { - "codeunitId": 139855, - "codeunitName": "APIV2 - Opportunities E2E", - "method": "TestCannotPatchSPCodeOfWonOpportunity" - }, - { - "codeunitId": 139855, - "codeunitName": "APIV2 - Opportunities E2E", - "method": "TestCreateOpportunity" - }, - { - "codeunitId": 139855, - "codeunitName": "APIV2 - Opportunities E2E", - "method": "TestCreateOpportunityContactNo" - }, - { - "codeunitId": 139855, - "codeunitName": "APIV2 - Opportunities E2E", - "method": "TestGetOpportunities" - }, - { - "codeunitId": 139855, - "codeunitName": "APIV2 - Opportunities E2E", - "method": "TestPatchOpportunity" - }, - { - "codeunitId": 139856, - "codeunitName": "APIV2 - GenProdPostGroup E2E", - "method": "TestGetGenProdPostGroups" - }, - { - "codeunitId": 139857, - "codeunitName": "APIV2 - InventoryPostGroup E2E", - "method": "TestGetInventoryPostGroups" - }, - { - "codeunitId": 139858, - "codeunitName": "APIV2 Currency Exch. Rate E2E", - "method": "TestGetCurrencyExchangeRates" - }, - { - "codeunitId": 139858, - "codeunitName": "APIV2 Currency Exch. Rate E2E", - "method": "TestSingleGetCurrencyExchangeRate" - }, - { - "codeunitId": 139859, - "codeunitName": "APIV2 - Accounting Periods E2E", - "method": "TestGetAccountingPeriods" - }, - { - "codeunitId": 139860, - "codeunitName": "APIV2 - G/L Setup E2E", - "method": "TestGetGLSetup" - }, - { - "codeunitId": 139861, - "codeunitName": "APIV2JobQueueLogEntriesE2E", - "method": "TestGetJobQueueLogEntry" - }, - { - "codeunitId": 139862, - "codeunitName": "APIV2JobQueueEntriesE2E", - "method": "TestGetCorrespondingJobQueueLogEntryFromExpand" - }, - { - "codeunitId": 139862, - "codeunitName": "APIV2JobQueueEntriesE2E", - "method": "TestGetCorrespondingJobQueueLogEntryFromSubPage" - }, - { - "codeunitId": 139862, - "codeunitName": "APIV2JobQueueEntriesE2E", - "method": "TestGetJobQueueEntry" - }, - { - "codeunitId": 139862, - "codeunitName": "APIV2JobQueueEntriesE2E", - "method": "TestRescheduleJobQueueEntry" - }, - { - "codeunitId": 139865, - "codeunitName": "APIV2 - Purch. Cr. Memos E2E", - "method": "TestActionCancelCorrectiveCreditMemo" - }, - { - "codeunitId": 139865, - "codeunitName": "APIV2 - Purch. Cr. Memos E2E", - "method": "TestActionPostCreditMemo" - }, - { - "codeunitId": 139865, - "codeunitName": "APIV2 - Purch. Cr. Memos E2E", - "method": "TestClearingManualDiscounts" - }, - { - "codeunitId": 139865, - "codeunitName": "APIV2 - Purch. Cr. Memos E2E", - "method": "TestCreateCreditMemoThroughPageAndAPI" - }, - { - "codeunitId": 139865, - "codeunitName": "APIV2 - Purch. Cr. Memos E2E", - "method": "TestDeleteCreditMemo" - }, - { - "codeunitId": 139865, - "codeunitName": "APIV2 - Purch. Cr. Memos E2E", - "method": "TestEmptyModifyCreditMemos" - }, - { - "codeunitId": 139865, - "codeunitName": "APIV2 - Purch. Cr. Memos E2E", - "method": "TestGetCreditMemos" - }, - { - "codeunitId": 139865, - "codeunitName": "APIV2 - Purch. Cr. Memos E2E", - "method": "TestModifyCreditMemos" - }, - { - "codeunitId": 139865, - "codeunitName": "APIV2 - Purch. Cr. Memos E2E", - "method": "TestModifyCreditMemoSetManualDiscount" - }, - { - "codeunitId": 139865, - "codeunitName": "APIV2 - Purch. Cr. Memos E2E", - "method": "TestPartialModifyCreditMemos" - }, - { - "codeunitId": 139865, - "codeunitName": "APIV2 - Purch. Cr. Memos E2E", - "method": "TestPostCreditMemos" - }, - { - "codeunitId": 139865, - "codeunitName": "APIV2 - Purch. Cr. Memos E2E", - "method": "TestPostCreditMemoWithCurrency" - }, - { - "codeunitId": 139865, - "codeunitName": "APIV2 - Purch. Cr. Memos E2E", - "method": "TestPostCreditMemoWithVendorCreditMemoNo" - }, - { - "codeunitId": 139866, - "codeunitName": "APIV2 - Contacts E2E", - "method": "TestDeleteContact" - }, - { - "codeunitId": 139866, - "codeunitName": "APIV2 - Contacts E2E", - "method": "TestGetContactWithAddressAndSpecialCharacters" - }, - { - "codeunitId": 139866, - "codeunitName": "APIV2 - Contacts E2E", - "method": "TestGetSimpleContact" - }, - { - "codeunitId": 139866, - "codeunitName": "APIV2 - Contacts E2E", - "method": "TestModifyContactWithAddress" - }, - { - "codeunitId": 139867, - "codeunitName": "APIV2 - Apply Vendor Ent. E2E", - "method": "TestApplyVendorEntryAppliesPayment" - }, - { - "codeunitId": 139867, - "codeunitName": "APIV2 - Apply Vendor Ent. E2E", - "method": "TestGetApplyVendorEntriesFailsWhenNoVendor" - }, - { - "codeunitId": 139867, - "codeunitName": "APIV2 - Apply Vendor Ent. E2E", - "method": "TestGetApplyVendorEntriesReturnsOpenEntries" - }, - { - "codeunitId": 139868, - "codeunitName": "APIV2 - Locations E2E", - "method": "TestCreateLocation" - }, - { - "codeunitId": 139868, - "codeunitName": "APIV2 - Locations E2E", - "method": "TestCreateSalesOrderLineWithLocation" - }, - { - "codeunitId": 139868, - "codeunitName": "APIV2 - Locations E2E", - "method": "TestDeleteLocation" - }, - { - "codeunitId": 139868, - "codeunitName": "APIV2 - Locations E2E", - "method": "TestGetLocation" - }, - { - "codeunitId": 139868, - "codeunitName": "APIV2 - Locations E2E", - "method": "TestModifyLocationWithAddress" - }, - { - "codeunitId": 139869, - "codeunitName": "APIV2 - Cust. Ret. Reasons E2E", - "method": "TestCreateReasonCode" - }, - { - "codeunitId": 139869, - "codeunitName": "APIV2 - Cust. Ret. Reasons E2E", - "method": "TestDeleteReasonCode" - }, - { - "codeunitId": 139869, - "codeunitName": "APIV2 - Cust. Ret. Reasons E2E", - "method": "TestGetReasonCode" - }, - { - "codeunitId": 139869, - "codeunitName": "APIV2 - Cust. Ret. Reasons E2E", - "method": "TestModifyReasonCode" - }, - { - "codeunitId": 139874, - "codeunitName": "APIV2 - Purch. Cr.M. Lines E2E", - "method": "TestCreateLineThroughPageAndAPI" - }, - { - "codeunitId": 139874, - "codeunitName": "APIV2 - Purch. Cr.M. Lines E2E", - "method": "TestDeleteCreditMemoLine" - }, - { - "codeunitId": 139874, - "codeunitName": "APIV2 - Purch. Cr.M. Lines E2E", - "method": "TestDeletePostedCreditMemoLine" - }, - { - "codeunitId": 139874, - "codeunitName": "APIV2 - Purch. Cr.M. Lines E2E", - "method": "TestGetCreditMemoLineDirectly" - }, - { - "codeunitId": 139874, - "codeunitName": "APIV2 - Purch. Cr.M. Lines E2E", - "method": "TestGetCreditMemoLines" - }, - { - "codeunitId": 139874, - "codeunitName": "APIV2 - Purch. Cr.M. Lines E2E", - "method": "TestGetCreditMemoLinesDirectlyWithDocumentIdFilter" - }, - { - "codeunitId": 139874, - "codeunitName": "APIV2 - Purch. Cr.M. Lines E2E", - "method": "TestGetPostedCreditMemoLines" - }, - { - "codeunitId": 139874, - "codeunitName": "APIV2 - Purch. Cr.M. Lines E2E", - "method": "TestGettingLinesWithDifferentTypes" - }, - { - "codeunitId": 139874, - "codeunitName": "APIV2 - Purch. Cr.M. Lines E2E", - "method": "TestModifyCreditMemoLines" - }, - { - "codeunitId": 139874, - "codeunitName": "APIV2 - Purch. Cr.M. Lines E2E", - "method": "TestPatchingTheIdToAccountChangesLineType" - }, - { - "codeunitId": 139874, - "codeunitName": "APIV2 - Purch. Cr.M. Lines E2E", - "method": "TestPatchingTheIdToItemChangesLineType" - }, - { - "codeunitId": 139874, - "codeunitName": "APIV2 - Purch. Cr.M. Lines E2E", - "method": "TestPatchingTheTypeBlanksIds" - }, - { - "codeunitId": 139874, - "codeunitName": "APIV2 - Purch. Cr.M. Lines E2E", - "method": "TestPostCreditMemoLines" - }, - { - "codeunitId": 139874, - "codeunitName": "APIV2 - Purch. Cr.M. Lines E2E", - "method": "TestPostCreditMemoLinesWithItemVariant" - }, - { - "codeunitId": 139874, - "codeunitName": "APIV2 - Purch. Cr.M. Lines E2E", - "method": "TestPostCreditMemoLineWithSequence" - }, - { - "codeunitId": 139874, - "codeunitName": "APIV2 - Purch. Cr.M. Lines E2E", - "method": "TestPostingBlankLineDefaultsToCommentType" - }, - { - "codeunitId": 139874, - "codeunitName": "APIV2 - Purch. Cr.M. Lines E2E", - "method": "TestPostingCommentLine" - }, - { - "codeunitId": 139882, - "codeunitName": "APIV2 - Salesperson/Purch E2E", - "method": "CreateSalespersonPurchaser" - }, - { - "codeunitId": 139882, - "codeunitName": "APIV2 - Salesperson/Purch E2E", - "method": "DeleteSalespersonPurchaser" - }, - { - "codeunitId": 139882, - "codeunitName": "APIV2 - Salesperson/Purch E2E", - "method": "GetSalespersonPurchaser" - }, - { - "codeunitId": 139882, - "codeunitName": "APIV2 - Salesperson/Purch E2E", - "method": "ModifySalespersonPurchaserJobTitle" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestCreateCustomerAttachment" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestCreateDraftInvoiceAttachment" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestCreateDraftOrderAttachment" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestCreateDraftPurchaseCreditMemoAttachment" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestCreateDraftPurchaseInvoiceAttachment" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestCreateDraftPurchaseOrderAttachment" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestCreatePostedInvoiceAttachment" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestCreatePostedPurchaseCreditMemoAttachment" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestCreatePostedPurchaseInvoiceAttachment" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestCreateQuoteAttachment" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestCreateVendorAttachment" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestDeleteDraftInvoiceAttachment" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestDeleteDraftPurchaseCreditMemoAttachment" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestDeleteDraftPurchaseInvoiceAttachment" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestDeleteEmployeeAttachment" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestDeleteJobAttachment" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestDeletePostedInvoiceAttachment" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestDeletePostedPurchaseCreditMemoAttachment" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestDeletePostedPurchaseInvoiceAttachment" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestDeleteQuoteAttachment" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestDeleteVendorAttachment" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestGetCustomerAttachments" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestGetDraftInvoiceAttachment" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestGetDraftInvoiceAttachments" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestGetDraftOrderAttachment" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestGetDraftPurchaseCreditMemoAttachments" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestGetDraftPurchaseInvoiceAttachments" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestGetDraftPurchaseOrderAttachments" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestGetEmployeeAttachments" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestGetItemAttachments" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestGetJobAttachments" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestGetPostedInvoiceAttachment" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestGetPostedInvoiceAttachments" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestGetPostedPurchaseCreditMemoAttachments" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestGetPostedPurchaseInvoiceAttachments" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestGetQuoteAttachment" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestGetQuoteAttachments" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestGetVendorAttachments" - }, - { - "codeunitId": 139899, - "codeunitName": "APIV2 - Document Attach. E2E", - "method": "TestUpdateCustomerAttachmentBinaryContent" - }, - { - "codeunitId": 139906, - "codeunitName": "APIV2 - FA Locations E2E", - "method": "TestCreateFALocation" - }, - { - "codeunitId": 139906, - "codeunitName": "APIV2 - FA Locations E2E", - "method": "TestDeleteFALocation" - }, - { - "codeunitId": 139906, - "codeunitName": "APIV2 - FA Locations E2E", - "method": "TestGetFALocation" - }, - { - "codeunitId": 139906, - "codeunitName": "APIV2 - FA Locations E2E", - "method": "TestModifyFALocation" - }, - { - "codeunitId": 139907, - "codeunitName": "APIV2 - Fixed Assets E2E", - "method": "TestCreateFixedAsset" - }, - { - "codeunitId": 139907, - "codeunitName": "APIV2 - Fixed Assets E2E", - "method": "TestDeleteFixedAsset" - }, - { - "codeunitId": 139907, - "codeunitName": "APIV2 - Fixed Assets E2E", - "method": "TestGetFixedAsset" - }, - { - "codeunitId": 139907, - "codeunitName": "APIV2 - Fixed Assets E2E", - "method": "TestModifyFixedAsset" - }, - { - "codeunitId": 139908, - "method": "TestGetBlanketPurchaseOrders", - "codeunitName": "APIV2 - Bl. Purch. Orders E2E" - }, - { - "codeunitId": 139908, - "method": "TestGetBlanketPurchaseOrderById", - "codeunitName": "APIV2 - Bl. Purch. Orders E2E" - }, - { - "codeunitId": 139908, - "method": "TestExpandDimensionSetLines", - "codeunitName": "APIV2 - Bl. Purch. Orders E2E" - }, - { - "codeunitId": 139908, - "method": "TestExpandAttachments", - "codeunitName": "APIV2 - Bl. Purch. Orders E2E" - }, - { - "codeunitId": 139908, - "method": "TestExpandDocumentAttachments", - "codeunitName": "APIV2 - Bl. Purch. Orders E2E" - }, - { - "codeunitId": 139908, - "method": "TestExpandPdfDocument", - "codeunitName": "APIV2 - Bl. Purch. Orders E2E" - }, - { - "codeunitId": 139908, - "method": "TestExpandLines", - "codeunitName": "APIV2 - Bl. Purch. Orders E2E" - }, - { - "codeunitId": 139909, - "method": "TestGetBlanketSalesOrders", - "codeunitName": "APIV2 - Bl. Sales Orders E2E" - }, - { - "codeunitId": 139909, - "method": "TestGetBlanketSalesOrderById", - "codeunitName": "APIV2 - Bl. Sales Orders E2E" - }, - { - "codeunitId": 139909, - "method": "TestExpandDimensionSetLines", - "codeunitName": "APIV2 - Bl. Sales Orders E2E" - }, - { - "codeunitId": 139909, - "method": "TestExpandAttachments", - "codeunitName": "APIV2 - Bl. Sales Orders E2E" - }, - { - "codeunitId": 139909, - "method": "TestExpandDocumentAttachments", - "codeunitName": "APIV2 - Bl. Sales Orders E2E" - }, - { - "codeunitId": 139909, - "method": "TestExpandPdfDocument", - "codeunitName": "APIV2 - Bl. Sales Orders E2E" - }, - { - "codeunitId": 139909, - "method": "TestExpandLines", - "codeunitName": "APIV2 - Bl. Sales Orders E2E" - }, - { - "codeunitId": 139917, - "method": "TestGetApprovalEntries", - "codeunitName": "APIV2 - Approval Entries E2E" - }, - { - "codeunitId": 139918, - "method": "TestGetApprovalUserSetup", - "codeunitName": "APIV2 - Approval UserSetup E2E" - }, - { - "codeunitId": 139919, - "method": "TestGetPostedApprovalEntries", - "codeunitName": "APIV2 PstdApprovalEntries E2E" - }, - { - "codeunitId": 139920, - "method": "TestGetApprovalEntries", - "codeunitName": "APIV2 - Workflow Approvers E2E" - }, - { - "codeunitId": 139921, - "method": "TestGetApprovalEntries", - "codeunitName": "APIV2 - Workflows E2E" - }, - { - "codeunitId": 139922, - "method": "TestGetPurchaseQuotes", - "codeunitName": "APIV2 - Purch. Quotes E2E" - }, - { - "codeunitId": 139922, - "method": "TestGetPurchaseQuoteById", - "codeunitName": "APIV2 - Purch. Quotes E2E" - }, - { - "codeunitId": 139922, - "method": "TestExpandDimensionSetLines", - "codeunitName": "APIV2 - Purch. Quotes E2E" - }, - { - "codeunitId": 139922, - "method": "TestExpandAttachments", - "codeunitName": "APIV2 - Purch. Quotes E2E" - }, - { - "codeunitId": 139922, - "method": "TestExpandDocumentAttachments", - "codeunitName": "APIV2 - Purch. Quotes E2E" - }, - { - "codeunitId": 139922, - "method": "TestExpandPdfDocument", - "codeunitName": "APIV2 - Purch. Quotes E2E" - }, - { - "codeunitId": 139922, - "method": "TestExpandLines", - "codeunitName": "APIV2 - Purch. Quotes E2E" - }, - { - "codeunitId": 139923, - "method": "TestGetPurchaseReturnOrders", - "codeunitName": "APIV2 - Purch. Ret. Orders E2E" - }, - { - "codeunitId": 139923, - "method": "TestGetPurchaseReturnOrderById", - "codeunitName": "APIV2 - Purch. Ret. Orders E2E" - }, - { - "codeunitId": 139923, - "method": "TestExpandDimensionSetLines", - "codeunitName": "APIV2 - Purch. Ret. Orders E2E" - }, - { - "codeunitId": 139923, - "method": "TestExpandAttachments", - "codeunitName": "APIV2 - Purch. Ret. Orders E2E" - }, - { - "codeunitId": 139923, - "method": "TestExpandDocumentAttachments", - "codeunitName": "APIV2 - Purch. Ret. Orders E2E" - }, - { - "codeunitId": 139923, - "method": "TestExpandPdfDocument", - "codeunitName": "APIV2 - Purch. Ret. Orders E2E" - }, - { - "codeunitId": 139923, - "method": "TestExpandLines", - "codeunitName": "APIV2 - Purch. Ret. Orders E2E" - }, - { - "codeunitId": 139924, - "method": "TestGetSalesReturnOrders", - "codeunitName": "APIV2 - Sales Ret. Orders E2E" - }, - { - "codeunitId": 139924, - "method": "TestGetSalesReturnOrderById", - "codeunitName": "APIV2 - Sales Ret. Orders E2E" - }, - { - "codeunitId": 139924, - "method": "TestExpandDimensionSetLines", - "codeunitName": "APIV2 - Sales Ret. Orders E2E" - }, - { - "codeunitId": 139924, - "method": "TestExpandAttachments", - "codeunitName": "APIV2 - Sales Ret. Orders E2E" - }, - { - "codeunitId": 139924, - "method": "TestExpandDocumentAttachments", - "codeunitName": "APIV2 - Sales Ret. Orders E2E" - }, - { - "codeunitId": 139924, - "method": "TestExpandPdfDocument", - "codeunitName": "APIV2 - Sales Ret. Orders E2E" - }, - { - "codeunitId": 139924, - "method": "TestExpandLines", - "codeunitName": "APIV2 - Sales Ret. Orders E2E" - }, - { - "codeunitId": 139925, - "method": "TestGetAssemblyOrders", - "codeunitName": "APIV2 - Assembly Orders E2E" - }, - { - "codeunitId": 139925, - "method": "TestGetAssemblyOrderById", - "codeunitName": "APIV2 - Assembly Orders E2E" - }, - { - "codeunitId": 139925, - "method": "TestExpandDimensionSetLines", - "codeunitName": "APIV2 - Assembly Orders E2E" - }, - { - "codeunitId": 139925, - "method": "TestExpandAttachments", - "codeunitName": "APIV2 - Assembly Orders E2E" - }, - { - "codeunitId": 139925, - "method": "TestExpandDocumentAttachments", - "codeunitName": "APIV2 - Assembly Orders E2E" - }, - { - "codeunitId": 139925, - "method": "TestExpandPdfDocument", - "codeunitName": "APIV2 - Assembly Orders E2E" - }, - { - "codeunitId": 139925, - "method": "TestExpandLines", - "codeunitName": "APIV2 - Assembly Orders E2E" - }, - { - "codeunitId": 139926, - "method": "TestGetTransferOrders", - "codeunitName": "APIV2 - Transfer Orders E2E" - }, - { - "codeunitId": 139926, - "method": "TestGetTransferOrderById", - "codeunitName": "APIV2 - Transfer Orders E2E" - }, - { - "codeunitId": 139926, - "method": "TestExpandDimensionSetLines", - "codeunitName": "APIV2 - Transfer Orders E2E" - }, - { - "codeunitId": 139926, - "method": "TestExpandAttachments", - "codeunitName": "APIV2 - Transfer Orders E2E" - }, - { - "codeunitId": 139926, - "method": "TestExpandDocumentAttachments", - "codeunitName": "APIV2 - Transfer Orders E2E" - }, - { - "codeunitId": 139926, - "method": "TestExpandPdfDocument", - "codeunitName": "APIV2 - Transfer Orders E2E" - }, - { - "codeunitId": 139926, - "method": "TestExpandLines", - "codeunitName": "APIV2 - Transfer Orders E2E" - }, - { - "codeunitId": 139927, - "method": "TestGetSalesOrderArchives", - "codeunitName": "APIV2 - Sales Ord. Arch. E2E" - }, - { - "codeunitId": 139927, - "method": "TestExpandDimensionSetLines", - "codeunitName": "APIV2 - Sales Ord. Arch. E2E" - }, - { - "codeunitId": 139927, - "method": "TestExpandAttachments", - "codeunitName": "APIV2 - Sales Ord. Arch. E2E" - }, - { - "codeunitId": 139927, - "method": "TestExpandDocumentAttachments", - "codeunitName": "APIV2 - Sales Ord. Arch. E2E" - }, - { - "codeunitId": 139928, - "method": "TestGetPurchaseReturnShipments", - "codeunitName": "APIV2 - Purch. Ret. Shpts. E2E" - }, - { - "codeunitId": 139928, - "method": "TestExpandAttachments", - "codeunitName": "APIV2 - Purch. Ret. Shpts. E2E" - }, - { - "codeunitId": 139928, - "method": "TestExpandDocumentAttachments", - "codeunitName": "APIV2 - Purch. Ret. Shpts. E2E" - }, - { - "codeunitId": 139928, - "method": "TestExpandPdfDocument", - "codeunitName": "APIV2 - Purch. Ret. Shpts. E2E" - }, - { - "codeunitId": 139908, - "method": "TestGetBlanketPurchaseOrders", - "codeunitName": "APIV2 - Bl. Purch. Orders E2E" - }, - { - "codeunitId": 139908, - "method": "TestGetBlanketPurchaseOrderById", - "codeunitName": "APIV2 - Bl. Purch. Orders E2E" - }, - { - "codeunitId": 139908, - "method": "TestExpandDimensionSetLines", - "codeunitName": "APIV2 - Bl. Purch. Orders E2E" - }, - { - "codeunitId": 139908, - "method": "TestExpandAttachments", - "codeunitName": "APIV2 - Bl. Purch. Orders E2E" - }, - { - "codeunitId": 139908, - "method": "TestExpandDocumentAttachments", - "codeunitName": "APIV2 - Bl. Purch. Orders E2E" - }, - { - "codeunitId": 139908, - "method": "TestExpandPdfDocument", - "codeunitName": "APIV2 - Bl. Purch. Orders E2E" - }, - { - "codeunitId": 139908, - "method": "TestExpandLines", - "codeunitName": "APIV2 - Bl. Purch. Orders E2E" - }, - { - "codeunitId": 139909, - "method": "TestGetBlanketSalesOrders", - "codeunitName": "APIV2 - Bl. Sales Orders E2E" - }, - { - "codeunitId": 139909, - "method": "TestGetBlanketSalesOrderById", - "codeunitName": "APIV2 - Bl. Sales Orders E2E" - }, - { - "codeunitId": 139909, - "method": "TestExpandDimensionSetLines", - "codeunitName": "APIV2 - Bl. Sales Orders E2E" - }, - { - "codeunitId": 139909, - "method": "TestExpandAttachments", - "codeunitName": "APIV2 - Bl. Sales Orders E2E" - }, - { - "codeunitId": 139909, - "method": "TestExpandDocumentAttachments", - "codeunitName": "APIV2 - Bl. Sales Orders E2E" - }, - { - "codeunitId": 139909, - "method": "TestExpandPdfDocument", - "codeunitName": "APIV2 - Bl. Sales Orders E2E" - }, - { - "codeunitId": 139909, - "method": "TestExpandLines", - "codeunitName": "APIV2 - Bl. Sales Orders E2E" - }, - { - "codeunitId": 139917, - "method": "TestGetApprovalEntries", - "codeunitName": "APIV2 - Approval Entries E2E" - }, - { - "codeunitId": 139918, - "method": "TestGetApprovalUserSetup", - "codeunitName": "APIV2 - Approval UserSetup E2E" - }, - { - "codeunitId": 139919, - "method": "TestGetPostedApprovalEntries", - "codeunitName": "APIV2 PstdApprovalEntries E2E" - }, - { - "codeunitId": 139920, - "method": "TestGetApprovalEntries", - "codeunitName": "APIV2 - Workflow Approvers E2E" - }, - { - "codeunitId": 139921, - "method": "TestGetApprovalEntries", - "codeunitName": "APIV2 - Workflows E2E" - }, - { - "codeunitId": 139922, - "method": "TestGetPurchaseQuotes", - "codeunitName": "APIV2 - Purch. Quotes E2E" - }, - { - "codeunitId": 139922, - "method": "TestGetPurchaseQuoteById", - "codeunitName": "APIV2 - Purch. Quotes E2E" - }, - { - "codeunitId": 139922, - "method": "TestExpandDimensionSetLines", - "codeunitName": "APIV2 - Purch. Quotes E2E" - }, - { - "codeunitId": 139922, - "method": "TestExpandAttachments", - "codeunitName": "APIV2 - Purch. Quotes E2E" - }, - { - "codeunitId": 139922, - "method": "TestExpandDocumentAttachments", - "codeunitName": "APIV2 - Purch. Quotes E2E" + "codeunitId": 139908, + "method": "TestExpandPdfDocument", + "codeunitName": "APIV2 - Bl. Purch. Orders E2E" }, { "codeunitId": 139922, "method": "TestExpandPdfDocument", "codeunitName": "APIV2 - Purch. Quotes E2E" }, - { - "codeunitId": 139922, - "method": "TestExpandLines", - "codeunitName": "APIV2 - Purch. Quotes E2E" - }, - { - "codeunitId": 139923, - "method": "TestGetPurchaseReturnOrders", - "codeunitName": "APIV2 - Purch. Ret. Orders E2E" - }, - { - "codeunitId": 139923, - "method": "TestGetPurchaseReturnOrderById", - "codeunitName": "APIV2 - Purch. Ret. Orders E2E" - }, - { - "codeunitId": 139923, - "method": "TestExpandDimensionSetLines", - "codeunitName": "APIV2 - Purch. Ret. Orders E2E" - }, - { - "codeunitId": 139923, - "method": "TestExpandAttachments", - "codeunitName": "APIV2 - Purch. Ret. Orders E2E" - }, - { - "codeunitId": 139923, - "method": "TestExpandDocumentAttachments", - "codeunitName": "APIV2 - Purch. Ret. Orders E2E" - }, - { - "codeunitId": 139923, - "method": "TestExpandPdfDocument", - "codeunitName": "APIV2 - Purch. Ret. Orders E2E" - }, - { - "codeunitId": 139923, - "method": "TestExpandLines", - "codeunitName": "APIV2 - Purch. Ret. Orders E2E" - }, - { - "codeunitId": 139924, - "method": "TestGetSalesReturnOrders", - "codeunitName": "APIV2 - Sales Ret. Orders E2E" - }, - { - "codeunitId": 139924, - "method": "TestGetSalesReturnOrderById", - "codeunitName": "APIV2 - Sales Ret. Orders E2E" - }, - { - "codeunitId": 139924, - "method": "TestExpandDimensionSetLines", - "codeunitName": "APIV2 - Sales Ret. Orders E2E" - }, - { - "codeunitId": 139924, - "method": "TestExpandAttachments", - "codeunitName": "APIV2 - Sales Ret. Orders E2E" - }, - { - "codeunitId": 139924, - "method": "TestExpandDocumentAttachments", - "codeunitName": "APIV2 - Sales Ret. Orders E2E" - }, - { - "codeunitId": 139924, - "method": "TestExpandPdfDocument", - "codeunitName": "APIV2 - Sales Ret. Orders E2E" - }, - { - "codeunitId": 139924, - "method": "TestExpandLines", - "codeunitName": "APIV2 - Sales Ret. Orders E2E" - }, - { - "codeunitId": 139925, - "method": "TestGetAssemblyOrders", - "codeunitName": "APIV2 - Assembly Orders E2E" - }, - { - "codeunitId": 139925, - "method": "TestGetAssemblyOrderById", - "codeunitName": "APIV2 - Assembly Orders E2E" - }, - { - "codeunitId": 139925, - "method": "TestExpandDimensionSetLines", - "codeunitName": "APIV2 - Assembly Orders E2E" - }, - { - "codeunitId": 139925, - "method": "TestExpandAttachments", - "codeunitName": "APIV2 - Assembly Orders E2E" - }, - { - "codeunitId": 139925, - "method": "TestExpandDocumentAttachments", - "codeunitName": "APIV2 - Assembly Orders E2E" - }, - { - "codeunitId": 139925, - "method": "TestExpandPdfDocument", - "codeunitName": "APIV2 - Assembly Orders E2E" - }, - { - "codeunitId": 139925, - "method": "TestExpandLines", - "codeunitName": "APIV2 - Assembly Orders E2E" - }, - { - "codeunitId": 139926, - "method": "TestGetTransferOrders", - "codeunitName": "APIV2 - Transfer Orders E2E" - }, - { - "codeunitId": 139926, - "method": "TestGetTransferOrderById", - "codeunitName": "APIV2 - Transfer Orders E2E" - }, - { - "codeunitId": 139926, - "method": "TestExpandDimensionSetLines", - "codeunitName": "APIV2 - Transfer Orders E2E" - }, - { - "codeunitId": 139926, - "method": "TestExpandAttachments", - "codeunitName": "APIV2 - Transfer Orders E2E" - }, - { - "codeunitId": 139926, - "method": "TestExpandDocumentAttachments", - "codeunitName": "APIV2 - Transfer Orders E2E" - }, - { - "codeunitId": 139926, - "method": "TestExpandPdfDocument", - "codeunitName": "APIV2 - Transfer Orders E2E" - }, - { - "codeunitId": 139926, - "method": "TestExpandLines", - "codeunitName": "APIV2 - Transfer Orders E2E" - }, - { - "codeunitId": 139927, - "method": "TestGetSalesOrderArchives", - "codeunitName": "APIV2 - Sales Ord. Arch. E2E" - }, - { - "codeunitId": 139927, - "method": "TestExpandDimensionSetLines", - "codeunitName": "APIV2 - Sales Ord. Arch. E2E" - }, - { - "codeunitId": 139927, - "method": "TestExpandAttachments", - "codeunitName": "APIV2 - Sales Ord. Arch. E2E" - }, - { - "codeunitId": 139927, - "method": "TestExpandDocumentAttachments", - "codeunitName": "APIV2 - Sales Ord. Arch. E2E" - }, - { - "codeunitId": 139928, - "method": "TestGetPurchaseReturnShipments", - "codeunitName": "APIV2 - Purch. Ret. Shpts. E2E" - }, - { - "codeunitId": 139928, - "method": "TestExpandAttachments", - "codeunitName": "APIV2 - Purch. Ret. Shpts. E2E" - }, - { - "codeunitId": 139928, - "method": "TestExpandDocumentAttachments", - "codeunitName": "APIV2 - Purch. Ret. Shpts. E2E" - }, { "codeunitId": 139928, "method": "TestExpandPdfDocument", diff --git a/src/Layers/W1/Tests/ERM/SpendRequestTests.Codeunit.al b/src/Layers/W1/Tests/ERM/SpendRequestTests.Codeunit.al index 11f5d08109a..ea889fe6e72 100644 --- a/src/Layers/W1/Tests/ERM/SpendRequestTests.Codeunit.al +++ b/src/Layers/W1/Tests/ERM/SpendRequestTests.Codeunit.al @@ -341,6 +341,37 @@ codeunit 134242 "Spend Request Tests" 'Deleting detail should reduce header total.'); end; + [Test] + procedure DeleteDetailLineDecrementsHeaderTotalExactlyOnce() + var + SpendRequest: Record "Spend Request"; + FirstSpendRequestDetail: Record "Spend Request Detail"; + RemainingSpendRequestDetail: Record "Spend Request Detail"; + begin + // [SCENARIO 646383] Real detail deletion applies each LCY delta exactly once without removing the other detail. + Initialize(); + + // [GIVEN] An open LCY request "R" initially has zero total and two details "D1" and "D2" worth 10 and 30. + CreateSpendRequest(SpendRequest); + VerifyDetailDeletionTotals(SpendRequest."No.", 0, 0); + CreateSpendRequestDetail(FirstSpendRequestDetail, SpendRequest."No.", 10); + CreateSpendRequestDetail(RemainingSpendRequestDetail, SpendRequest."No.", 30); + VerifyDetailDeletionTotals(SpendRequest."No.", 40, 2); + + // [WHEN] Deleting "D1" runs the production table trigger, not a page action or a permission test. + FirstSpendRequestDetail.Delete(true); + + // [THEN] "D2" survives and both its amount and the header total are 30. + RemainingSpendRequestDetail.Get(RemainingSpendRequestDetail."Spend Request No.", RemainingSpendRequestDetail."Line No."); + VerifyDetailDeletionTotals(SpendRequest."No.", 30, 1); + + // [WHEN] The remaining detail "D2" is deleted through its production trigger. + RemainingSpendRequestDetail.Delete(true); + + // [THEN] No details remain and the header total is exactly zero. + VerifyDetailDeletionTotals(SpendRequest."No.", 0, 0); + end; + [Test] [Scope('OnPrem')] procedure CannotInsertDetailOnReleasedRequest() @@ -827,4 +858,21 @@ codeunit 134242 "Spend Request Tests" // [THEN] An error is raised. Assert.ExpectedError('must have the status ' + Format(SpendRequest.Status::Open)); end; + + local procedure VerifyDetailDeletionTotals(SpendRequestNo: Code[20]; ExpectedAmount: Decimal; ExpectedLineCount: Integer) + var + SpendRequest: Record "Spend Request"; + SpendRequestDetail: Record "Spend Request Detail"; + begin + SpendRequest.Get(SpendRequestNo); + Assert.AreEqual(SpendRequest.Status::Open, SpendRequest.Status, 'Detail deletion must preserve the Open status.'); + Assert.AreEqual('', SpendRequest."Currency Code", 'The request must use LCY.'); + Assert.AreEqual(ExpectedAmount, SpendRequest."Total Expected Amount", 'The header amount must reflect each deleted detail exactly once.'); + Assert.AreEqual(ExpectedAmount, SpendRequest."Total Expected Amount (LCY)", 'The LCY header amount must reflect each deleted detail exactly once.'); + SpendRequestDetail.SetRange("Spend Request No.", SpendRequestNo); + Assert.AreEqual(ExpectedLineCount, SpendRequestDetail.Count(), 'Only the intended details must be deleted.'); + SpendRequestDetail.CalcSums("Expected Amount", "Expected Amount (LCY)"); + Assert.AreEqual(ExpectedAmount, SpendRequestDetail."Expected Amount", 'The remaining detail amounts must be unchanged.'); + Assert.AreEqual(ExpectedAmount, SpendRequestDetail."Expected Amount (LCY)", 'The remaining LCY detail amounts must be unchanged.'); + end; } \ No newline at end of file