XmlPort 130400 CAL Test Suite, source in 29

Source29

src/Layers/W1/BaseApp/System/DevTools/CALTest/CALTestSuite.XmlPort.al127 lines, Copyright (c) Microsoft Corporation. MIT

namespace System.TestTools.TestRunner;

xmlport 130400 "CAL Test Suite"
{
    Caption = 'CAL Test Suite';
    Encoding = UTF8;

    schema
    {
        textelement("<caltestsuites>")
        {
            XmlName = 'CALTestSuites';
            tableelement("cal test suite"; "CAL Test Suite")
            {
                MinOccurs = Zero;
                XmlName = 'CALTestSuite';
                fieldelement(Name; "CAL Test Suite".Name)
                {
                }
                fieldelement(Description; "CAL Test Suite".Description)
                {
                }
                fieldelement(Export; "CAL Test Suite".Export)
                {
                }
                textelement(CALTestLines)
                {
                    tableelement("<cal test line>"; "CAL Test Line")
                    {
                        LinkFields = "Test Suite" = field(Name);
                        LinkTable = "CAL Test Suite";
                        MinOccurs = Zero;
                        XmlName = 'CALTestLine';
                        fieldelement(TestTestSuite; "<CAL Test Line>"."Test Suite")
                        {
                        }
                        fieldelement(LineType; "<CAL Test Line>"."Line Type")
                        {
                        }
                        fieldelement(Name; "<CAL Test Line>".Name)
                        {
                            FieldValidate = no;
                        }
                        fieldelement(TestCodeunit; "<CAL Test Line>"."Test Codeunit")
                        {
                        }
                        fieldelement(Function; "<CAL Test Line>".Function)
                        {
                        }
                        fieldelement(Run; "<CAL Test Line>".Run)
                        {
                        }

                        trigger OnAfterGetRecord()
                        begin
                            if "<CAL Test Line>"."Function" = '' then begin
                                if "<CAL Test Line>"."Test Codeunit" <> 0 then
                                    CALTestLine := "<CAL Test Line>";
                            end else begin
                                if "<CAL Test Line>".Run then
                                    currXMLport.Skip();
                                if not CALTestLine.Run and (CALTestLine."Test Codeunit" = "<CAL Test Line>"."Test Codeunit") then
                                    currXMLport.Skip();
                            end;
                        end;

                        trigger OnAfterInsertRecord()
                        var
                            CopyOfCALTestLine: Record "CAL Test Line";
                        begin
                            if ("<CAL Test Line>"."Test Codeunit" <> 0) and
                               ("<CAL Test Line>"."Function" = '')
                            then begin
                                CopyOfCALTestLine.Copy("<CAL Test Line>");
                                "<CAL Test Line>".SetRecFilter();

                                CALTestMgt.SETPUBLISHMODE();
                                CODEUNIT.Run(CODEUNIT::"CAL Test Runner", "<CAL Test Line>");

                                "<CAL Test Line>".Copy(CopyOfCALTestLine);
                            end;
                        end;

                        trigger OnBeforeInsertRecord()
                        begin
                            if "<CAL Test Line>"."Function" = '' then begin
                                CALTestLine.SetRange("Test Suite", "<CAL Test Line>"."Test Suite");
                                CALTestLine.SetRange("Function", '');
                                "<CAL Test Line>"."Line No." := 10000;
                                if CALTestLine.FindLast() then
                                    "<CAL Test Line>"."Line No." := CALTestLine."Line No." + 10000;
                                CALTestLine.SetFilter("Line No.", '>=%1', "<CAL Test Line>"."Line No.");
                            end else begin
                                CALTestLine.SetRange("Function", "<CAL Test Line>"."Function");
                                if not CALTestLine.FindFirst() then
                                    currXMLport.Skip();
                                CALTestLine.Delete();
                                "<CAL Test Line>"."Line No." := CALTestLine."Line No.";

                                CALTestLine.SetRange("Function", '');
                                CALTestLine.FindLast();
                            end;
                        end;
                    }
                }
            }
        }
    }

    requestpage
    {

        layout
        {
        }

        actions
        {
        }
    }

    var
        CALTestLine: Record "CAL Test Line";
        CALTestMgt: Codeunit "CAL Test Management";
}