use xxx, yyy and zzz for test customers, makes tests easier to read
This commit is contained in:
@ -15,48 +15,51 @@ begin
|
||||
return 10000 + customerCount;
|
||||
end; $$;
|
||||
|
||||
|
||||
/*
|
||||
Creates test data for the customer main table.
|
||||
Creates a single customer test record with dist.
|
||||
*/
|
||||
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
|
||||
custReference integer,
|
||||
custPrefix varchar
|
||||
)
|
||||
language plpgsql as $$
|
||||
declare
|
||||
currentTask varchar;
|
||||
custReference integer;
|
||||
custRowId uuid;
|
||||
custPrefix varchar;
|
||||
custAdminName varchar;
|
||||
begin
|
||||
currentTask = 'creating RBAC test customer #' || custReference || '/' || custPrefix;
|
||||
set local hsadminng.currentUser to 'mike@hostsharing.net';
|
||||
set local hsadminng.assumedRoles to 'global#hostsharing.admin';
|
||||
execute format('set local hsadminng.currentTask to %L', currentTask);
|
||||
|
||||
custRowId = uuid_generate_v4();
|
||||
custAdminName = 'customer-admin@' || custPrefix || '.example.com';
|
||||
|
||||
raise notice 'creating customer %:%', custReference, custPrefix;
|
||||
insert
|
||||
into customer (reference, prefix, adminUserName)
|
||||
values (custReference, custPrefix, custAdminName);
|
||||
end; $$;
|
||||
--//
|
||||
|
||||
/*
|
||||
Creates a range of test customers for mass data generation.
|
||||
*/
|
||||
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
|
||||
)
|
||||
language plpgsql as $$
|
||||
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 to 'global#hostsharing.admin';
|
||||
execute format('set local hsadminng.currentTask to %L', 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;
|
||||
|
||||
call createCustomerTestData(testCustomerReference(t), intToVarChar(t, 3));
|
||||
commit;
|
||||
end loop;
|
||||
|
||||
end; $$;
|
||||
--//
|
||||
|
||||
@ -67,7 +70,9 @@ end; $$;
|
||||
|
||||
do language plpgsql $$
|
||||
begin
|
||||
call createCustomerTestData(0, 2, false);
|
||||
call createCustomerTestData(99901, 'xxx');
|
||||
call createCustomerTestData(99902, 'yyy');
|
||||
call createCustomerTestData(99903, 'zzz');
|
||||
end;
|
||||
$$;
|
||||
--//
|
||||
|
@ -4,12 +4,9 @@
|
||||
--changeset hs-package-TEST-DATA-GENERATOR:1 endDelimiter:--//
|
||||
-- ----------------------------------------------------------------------------
|
||||
/*
|
||||
Creates test data for the package main table.
|
||||
Creates the given number of test packages for the given customer.
|
||||
*/
|
||||
create or replace procedure createPackageTestData(
|
||||
minCustomerReference integer, -- skip customers with reference below this
|
||||
doCommitAfterEach boolean -- only for mass data creation outside of Liquibase
|
||||
)
|
||||
create or replace procedure createPackageTestData(customerPrefix varchar, pacCount int)
|
||||
language plpgsql as $$
|
||||
declare
|
||||
cust customer;
|
||||
@ -18,43 +15,53 @@ declare
|
||||
pacName varchar;
|
||||
currentTask varchar;
|
||||
pac package;
|
||||
begin
|
||||
select * from customer where customer.prefix = customerPrefix into cust;
|
||||
|
||||
for t in 0..(pacCount-1)
|
||||
loop
|
||||
pacName = cust.prefix || to_char(t, 'fm00');
|
||||
currentTask = 'creating RBAC test package #' || pacName || ' for customer ' || cust.prefix || ' #' ||
|
||||
cust.uuid;
|
||||
|
||||
custAdminUser = 'customer-admin@' || cust.prefix || '.example.com';
|
||||
custAdminRole = 'customer#' || cust.prefix || '.admin';
|
||||
execute format('set local hsadminng.currentUser to %L', custAdminUser);
|
||||
execute format('set local hsadminng.assumedRoles to %L', custAdminRole);
|
||||
execute format('set local hsadminng.currentTask to %L', currentTask);
|
||||
raise notice 'task: % by % as %', currentTask, custAdminUser, custAdminRole;
|
||||
|
||||
insert
|
||||
into package (customerUuid, name, description)
|
||||
values (cust.uuid, pacName, 'Here can add your own description of package ' || pacName || '.')
|
||||
returning * into pac;
|
||||
|
||||
call grantRoleToUser(
|
||||
getRoleId(customerAdmin(cust), 'fail'),
|
||||
findRoleId(packageAdmin(pac)),
|
||||
createRbacUser('pac-admin-' || pacName || '@' || cust.prefix || '.example.com'),
|
||||
true);
|
||||
|
||||
end loop;
|
||||
end; $$;
|
||||
|
||||
/*
|
||||
Creates a range of test packages for mass data generation.
|
||||
*/
|
||||
create or replace procedure createPackageTestData()
|
||||
language plpgsql as $$
|
||||
declare
|
||||
cust customer;
|
||||
begin
|
||||
set hsadminng.currentUser to '';
|
||||
|
||||
for cust in (select * from customer)
|
||||
loop
|
||||
continue when cust.reference < minCustomerReference;
|
||||
|
||||
for t in 0..2
|
||||
loop
|
||||
pacName = cust.prefix || to_char(t, 'fm00');
|
||||
currentTask = 'creating RBAC test package #' || pacName || ' for customer ' || cust.prefix || ' #' ||
|
||||
cust.uuid;
|
||||
|
||||
custAdminUser = 'admin@' || cust.prefix || '.example.com';
|
||||
custAdminRole = 'customer#' || cust.prefix || '.admin';
|
||||
execute format('set local hsadminng.currentUser to %L', custAdminUser);
|
||||
execute format('set local hsadminng.assumedRoles to %L', custAdminRole);
|
||||
execute format('set local hsadminng.currentTask to %L', currentTask);
|
||||
raise notice 'task: % by % as %', currentTask, custAdminUser, custAdminRole;
|
||||
|
||||
insert
|
||||
into package (customerUuid, name, description)
|
||||
values (cust.uuid, pacName, 'Here can add your own description of package ' || pacName || '.')
|
||||
returning * into pac;
|
||||
|
||||
call grantRoleToUser(
|
||||
getRoleId(customerAdmin(cust), 'fail'),
|
||||
findRoleId(packageAdmin(pac)),
|
||||
createRbacUser(pacName || '@' || cust.prefix || '.example.com'),
|
||||
true);
|
||||
|
||||
end loop;
|
||||
continue when cust.reference >= 90000; -- reserved for functional testing
|
||||
call createPackageTestData(cust.prefix, 3);
|
||||
end loop;
|
||||
|
||||
if doCommitAfterEach then
|
||||
commit;
|
||||
end if;
|
||||
commit;
|
||||
end ;
|
||||
$$;
|
||||
--//
|
||||
@ -66,7 +73,9 @@ $$;
|
||||
|
||||
do language plpgsql $$
|
||||
begin
|
||||
call createPackageTestData(0, false);
|
||||
call createPackageTestData('xxx', 3);
|
||||
call createPackageTestData('yyy', 3);
|
||||
call createPackageTestData('zzz', 3);
|
||||
end;
|
||||
$$;
|
||||
--//
|
||||
|
@ -4,13 +4,42 @@
|
||||
--changeset hs-unixuser-TEST-DATA-GENERATOR:1 endDelimiter:--//
|
||||
-- ----------------------------------------------------------------------------
|
||||
/*
|
||||
Creates test data for the package main table.
|
||||
Creates the given count of test unix users for a single package.
|
||||
*/
|
||||
create or replace procedure createUnixUserTestData(
|
||||
minCustomerReference integer, -- skip customers with reference below this
|
||||
unixUserPerPackage integer, -- create this many unix users for each package
|
||||
doCommitAfterEach boolean -- only for mass data creation outside of Liquibase
|
||||
)
|
||||
create or replace procedure createUnixUserTestData( packageName varchar, unixUserCount int )
|
||||
language plpgsql as $$
|
||||
declare
|
||||
pac record;
|
||||
pacAdmin varchar;
|
||||
currentTask varchar;
|
||||
begin
|
||||
set hsadminng.currentUser to '';
|
||||
|
||||
select p.uuid, p.name, c.prefix as custPrefix
|
||||
from package p
|
||||
join customer c on p.customeruuid = c.uuid
|
||||
where p.name = packageName
|
||||
into pac;
|
||||
|
||||
for t in 0..(unixUserCount-1)
|
||||
loop
|
||||
currentTask = 'creating RBAC test unixuser #' || t || ' for package ' || pac.name || ' #' || pac.uuid;
|
||||
raise notice 'task: %', currentTask;
|
||||
pacAdmin = 'pac-admin-' || pac.name || '@' || pac.custPrefix || '.example.com';
|
||||
execute format('set local hsadminng.currentTask to %L', currentTask);
|
||||
execute format('set local hsadminng.currentUser to %L', pacAdmin);
|
||||
set local hsadminng.assumedRoles = '';
|
||||
|
||||
insert
|
||||
into unixuser (name, packageUuid)
|
||||
values (pac.name || '-' || intToVarChar(t, 4), pac.uuid);
|
||||
end loop;
|
||||
end; $$;
|
||||
|
||||
/*
|
||||
Creates a range of unix users for mass data generation.
|
||||
*/
|
||||
create or replace procedure createUnixUserTestData( unixUserPerPackage integer )
|
||||
language plpgsql as $$
|
||||
declare
|
||||
pac record;
|
||||
@ -23,30 +52,13 @@ begin
|
||||
(select p.uuid, p.name
|
||||
from package p
|
||||
join customer c on p.customeruuid = c.uuid
|
||||
where c.reference >= minCustomerReference)
|
||||
where c.reference < 90000) -- reserved for functional testing
|
||||
loop
|
||||
|
||||
for t in 0..(unixUserPerPackage-1)
|
||||
loop
|
||||
currentTask = 'creating RBAC test unixuser #' || t || ' for package ' || pac.name || ' #' || pac.uuid;
|
||||
raise notice 'task: %', currentTask;
|
||||
pacAdmin = 'admin@' || pac.name || '.example.com';
|
||||
execute format('set local hsadminng.currentTask to %L', currentTask);
|
||||
execute format('set local hsadminng.currentUser to %L', pacAdmin);
|
||||
set local hsadminng.assumedRoles = '';
|
||||
|
||||
insert
|
||||
into unixuser (name, packageUuid)
|
||||
values (pac.name || '-' || intToVarChar(t, 4), pac.uuid);
|
||||
|
||||
if doCommitAfterEach then
|
||||
commit;
|
||||
end if;
|
||||
end loop;
|
||||
call createUnixUserTestData(pac.name, 2);
|
||||
commit;
|
||||
end loop;
|
||||
|
||||
end;
|
||||
$$;
|
||||
end; $$;
|
||||
--//
|
||||
|
||||
|
||||
@ -56,7 +68,17 @@ $$;
|
||||
|
||||
do language plpgsql $$
|
||||
begin
|
||||
call createUnixUserTestData(0, 2, false);
|
||||
call createUnixUserTestData('xxx00', 2);
|
||||
call createUnixUserTestData('xxx01', 2);
|
||||
call createUnixUserTestData('xxx02', 2);
|
||||
|
||||
call createUnixUserTestData('yyy00', 2);
|
||||
call createUnixUserTestData('yyy01', 2);
|
||||
call createUnixUserTestData('yyy02', 2);
|
||||
|
||||
call createUnixUserTestData('zzz00', 2);
|
||||
call createUnixUserTestData('zzz01', 2);
|
||||
call createUnixUserTestData('zzz02', 2);
|
||||
end;
|
||||
$$;
|
||||
--//
|
||||
|
Reference in New Issue
Block a user