Delimiter //
/**
 * Test suite for Loader domain
 * @test
 */
Drop Procedure if exists TEST_SUITE_LOADER//
Create Procedure TEST_SUITE_LOADER()
Begin

    Declare Continue Handler for SQLEXCEPTION, Not Found
    Begin
        Show ERRORS;
    End;
    Declare Continue Handler for SQLWARNING
    Begin
        Show WARNINGS;
    End;

    SET SESSION innodb_strict_mode = 1;

    -- Main functions
    Call CASH_PRINT('Main functions', 'STEP');
    CALL TEST_LOADER_CHECK_FIELD_LENGTH();
    CALL TEST_LOADER_CHECK_NULL();
    CALL TEST_LOADER_CHECK_UNIQUE();
    CALL TEST_GET_LOADER_INFO();
    CALL TEST_SUITE_MOCK();

    -- Contact
    Call CASH_PRINT('Contact', 'STEP');
    CALL TEST_SUITE_CONTACTS();

    -- Accounts
    Call CASH_PRINT('Accounts', 'STEP');
    Call TEST_SUITE_ACCOUNTS();

    -- Entries
    Call CASH_PRINT('Entries', 'STEP');
    Call TEST_SUITE_ENTRIES();

    -- Matching codes
    Call CASH_PRINT('Matching codes', 'STEP');
    Call TEST_SUITE_MATCHINGCODES();

    -- Balance Control
    Call CASH_PRINT('Balance Control', 'STEP');
    Call TEST_SUITE_BALANCECONTROL();

    -- Ref data
    Call CASH_PRINT('Ref data', 'STEP');
    Call TEST_SUITE_REFDATA();

    -- Summaries
    Call CASH_PRINT('Summaries', 'STEP');
    Call TEST_SUITE_SUMMARIES();

    -- Credit limit
    Call CASH_PRINT('Credit limit', 'STEP');
    Call TEST_SUITE_CREDITLIMIT();

    -- Guaranteed
    Call CASH_PRINT('Guaranteed', 'STEP');
    Call TEST_SUITE_GUARANTEED();

    SET SESSION innodb_strict_mode = 0;

End //
Delimiter ;