--liquibase formatted sql -- ============================================================================ --changeset hs-customer-TEST-DATA-GENERATOR:1 endDelimiter:--// -- ---------------------------------------------------------------------------- /* Generates a customer reference number for a given test data counter. */ create or replace function testCustomerReference(customerCount integer) returns integer returns null on null input language plpgsql as $$ begin return 10000 + customerCount; end; $$; /* Creates test data for the customer main table. */ create or replace procedure createCustomerTestData( startCount integer, -- count of auto generated rows before the run endCount integer, -- count of auto generated rows after the run doCommitAfterEach boolean -- only for mass data creation outside of Liquibase ) language plpgsql as $$ declare currentTask varchar; custReference integer; custRowId uuid; custPrefix varchar; custAdminName varchar; begin set hsadminng.currentUser to ''; for t in startCount..endCount loop currentTask = 'creating RBAC test customer #' || t; set local hsadminng.currentUser to 'mike@hostsharing.net'; set local hsadminng.assumedRoles = ''; set local hsadminng.currentTask to currentTask; -- When a new customer is created, custReference = testCustomerReference(t); custRowId = uuid_generate_v4(); custPrefix = intToVarChar(t, 3); custAdminName = 'admin@' || custPrefix || '.example.com'; raise notice 'creating customer %:%', custReference, custPrefix; insert into customer (reference, prefix, adminUserName) values (custReference, custPrefix, custAdminName); if doCommitAfterEach then commit; end if; end loop; end; $$; --// -- ============================================================================ --changeset hs-customer-TEST-DATA-GENERATION:1 –context=dev,tc endDelimiter:--// -- ---------------------------------------------------------------------------- do language plpgsql $$ begin call createCustomerTestData(0, 2, false); end; $$; --//