I'm trying to simulate an user, selecting a single record on a list page (i.e. Item List). This is for testing a procedure, which opens said list page, waiting for user input and, if the user presses Ok, adds the selected lines from the list page as lines to a document (i.e. Purchase Line/Purchase Header)
[Test]
[HandlerFunctions('ItemListOkModalPageHandler')]
procedure TestAddItemLineItemList()
var
LRec_PurchaseHeader: Record "Purchase Header";
LRec_PurchaseLine: Record "Purchase Line";
LC_PageHelper: Codeunit "Page Helper";
begin
//[GIVEN] given
CreatePurchaseOrder(LRec_PurchaseHeader);
LRec_PurchaseLine.SetRange("Document Type", LRec_PurchaseHeader."Document Type");
LRec_PurchaseLine.SetRange("Document No.", LRec_PurchaseHeader."No.");
LRec_PurchaseLine.SetRange(Type, "Purchase Line Type"::Item);
GC_LibraryAssert.RecordIsEmpty(LRec_PurchaseLine);
//[WHEN] when
LC_PageHelper.AddMultiplePurchaseLines(LRec_PurchaseHeader);
//[THEN] then
GC_LibraryAssert.RecordCount(LRec_PurchaseLine, 1); // error happens here
end;
[ModalPageHandler]
procedure ItemListOkModalPageHandler(var PTP_ItemList: TestPage "Item List");
begin
PTP_ItemList.First();
PTP_ItemList.OK().Invoke();
end;
When trying to do it this way, I get the following error message:
Error:
Assert.RecordCount failed. Expected number of Purchase Line entries: 1. Actual: 0.
Any suggestions, what am I doing wrong?
Edit: Code of Procedure AddMultiplePurchaseLines
procedure AddMultiplePurchaseLines(PRec_PurchaseHeader: Record "Purchase Header")
var
LRec_Item: Record Item;
LP_ItemList: Page "Item List";
begin
PRec_PurchaseHeader.TestField(Status, "Purchase Document Status"::Open);
if GuiAllowed then begin
LP_ItemList.LookupMode(true);
if LP_ItemList.RunModal() = Action::LookupOK then begin
LRec_Item.SetFilter("No.", LP_ItemList.GetSelectionFilter());
AddPurchaseOrderItemLines(PRec_PurchaseHeader, LRec_Item);
end;
end;
end;