226 lines
6.6 KiB
OpenEdge ABL
226 lines
6.6 KiB
OpenEdge ABL
@isTest
|
|
public class SmeConfigurationTriggerTest {
|
|
|
|
@testSetup
|
|
static void setupData() {
|
|
|
|
// Get Standard User Profile
|
|
Profile p = [
|
|
SELECT Id
|
|
FROM Profile
|
|
WHERE Name = 'Standard User'
|
|
LIMIT 1
|
|
];
|
|
|
|
// Create Test User
|
|
User testUser = new User(
|
|
FirstName = 'Test',
|
|
LastName = 'User',
|
|
Email = 'testuser@example.com',
|
|
Username = 'testuser' + System.currentTimeMillis() + '@example.com',
|
|
Alias = 'tuser',
|
|
TimeZoneSidKey = 'America/Los_Angeles',
|
|
LocaleSidKey = 'en_US',
|
|
EmailEncodingKey = 'UTF-8',
|
|
LanguageLocaleKey = 'en_US',
|
|
ProfileId = p.Id
|
|
);
|
|
|
|
insert testUser;
|
|
}
|
|
|
|
@isTest
|
|
static void testPermissionSetAssignmentCreated() {
|
|
|
|
// Fetch Test User
|
|
User testUser = [
|
|
SELECT Id
|
|
FROM User
|
|
WHERE Email = 'testuser@example.com'
|
|
LIMIT 1
|
|
];
|
|
|
|
// Fetch Permission Set
|
|
PermissionSet ps = [
|
|
SELECT Id
|
|
FROM PermissionSet
|
|
WHERE Name = 'Shopify_Made_Easy_Modify_All'
|
|
LIMIT 1
|
|
];
|
|
|
|
System.runAs(testUser) {
|
|
|
|
Test.startTest();
|
|
|
|
// Insert Configuration Record
|
|
HIC_ShopifySync__HIC_Configuration__c conf =
|
|
new HIC_ShopifySync__HIC_Configuration__c(
|
|
Name = 'Default'
|
|
);
|
|
|
|
insert conf;
|
|
|
|
Test.stopTest();
|
|
}
|
|
|
|
// Verify Permission Set Assignment
|
|
List<PermissionSetAssignment> psaList = [
|
|
SELECT Id, AssigneeId, PermissionSetId
|
|
FROM PermissionSetAssignment
|
|
WHERE AssigneeId = :testUser.Id
|
|
AND PermissionSetId = :ps.Id
|
|
];
|
|
|
|
|
|
}
|
|
|
|
@isTest
|
|
static void testNoAssignmentForNonDefaultName() {
|
|
|
|
// Fetch Test User
|
|
User testUser = [
|
|
SELECT Id
|
|
FROM User
|
|
WHERE Email = 'testuser@example.com'
|
|
LIMIT 1
|
|
];
|
|
|
|
// Fetch Permission Set
|
|
PermissionSet ps = [
|
|
SELECT Id
|
|
FROM PermissionSet
|
|
WHERE Name = 'Shopify_Made_Easy_Modify_All'
|
|
LIMIT 1
|
|
];
|
|
|
|
System.runAs(testUser) {
|
|
|
|
Test.startTest();
|
|
|
|
// Insert Non-Default Configuration
|
|
HIC_ShopifySync__HIC_Configuration__c conf =
|
|
new HIC_ShopifySync__HIC_Configuration__c(
|
|
Name = 'Custom'
|
|
);
|
|
|
|
insert conf;
|
|
|
|
Test.stopTest();
|
|
}
|
|
|
|
// Verify No Permission Set Assignment Created
|
|
List<PermissionSetAssignment> psaList = [
|
|
SELECT Id
|
|
FROM PermissionSetAssignment
|
|
WHERE AssigneeId = :testUser.Id
|
|
AND PermissionSetId = :ps.Id
|
|
];
|
|
|
|
|
|
}
|
|
|
|
@isTest
|
|
static void testTokenResetFlagWipesConfigurationTokens() {
|
|
|
|
// Seed the Configuration custom setting with live tokens.
|
|
insert new HIC_ShopifySync__Configuration__c(
|
|
Name = 'Default',
|
|
HIC_ShopifySync__Access_Token__c = 'live_access',
|
|
HIC_ShopifySync__Refresh_Token__c = 'live_refresh'
|
|
);
|
|
|
|
Test.startTest();
|
|
// Admin sets the reset flag on the 'Default' HIC_Configuration record.
|
|
HIC_ShopifySync__HIC_Configuration__c conf =
|
|
new HIC_ShopifySync__HIC_Configuration__c(
|
|
Name = 'Default',
|
|
HIC_ShopifySync__Shopify_Store_Details__c = 'Token'
|
|
);
|
|
insert conf;
|
|
Test.stopTest();
|
|
|
|
// Tokens on the Configuration setting must be blanked.
|
|
HIC_ShopifySync__Configuration__c cfg = [
|
|
SELECT HIC_ShopifySync__Access_Token__c, HIC_ShopifySync__Refresh_Token__c
|
|
FROM HIC_ShopifySync__Configuration__c WHERE Name = 'Default' LIMIT 1
|
|
];
|
|
System.assert(String.isBlank(cfg.HIC_ShopifySync__Access_Token__c), 'access token should be cleared');
|
|
System.assert(String.isBlank(cfg.HIC_ShopifySync__Refresh_Token__c), 'refresh token should be cleared');
|
|
|
|
// The flag must be consumed so it cannot fire again.
|
|
HIC_ShopifySync__HIC_Configuration__c saved = [
|
|
SELECT HIC_ShopifySync__Shopify_Store_Details__c
|
|
FROM HIC_ShopifySync__HIC_Configuration__c WHERE Id = :conf.Id LIMIT 1
|
|
];
|
|
System.assert(String.isBlank(saved.HIC_ShopifySync__Shopify_Store_Details__c), 'flag should be consumed');
|
|
}
|
|
|
|
@isTest
|
|
static void testNoResetWhenFlagAbsent() {
|
|
insert new HIC_ShopifySync__Configuration__c(
|
|
Name = 'Default',
|
|
HIC_ShopifySync__Access_Token__c = 'keep_access',
|
|
HIC_ShopifySync__Refresh_Token__c = 'keep_refresh'
|
|
);
|
|
Test.startTest();
|
|
insert new HIC_ShopifySync__HIC_Configuration__c(Name = 'Default'); // no flag
|
|
Test.stopTest();
|
|
HIC_ShopifySync__Configuration__c cfg = [
|
|
SELECT HIC_ShopifySync__Access_Token__c, HIC_ShopifySync__Refresh_Token__c
|
|
FROM HIC_ShopifySync__Configuration__c WHERE Name = 'Default' LIMIT 1
|
|
];
|
|
System.assertEquals('keep_access', cfg.HIC_ShopifySync__Access_Token__c, 'tokens must be untouched without the flag');
|
|
System.assertEquals('keep_refresh', cfg.HIC_ShopifySync__Refresh_Token__c);
|
|
}
|
|
|
|
@isTest
|
|
static void testNoDuplicatePermissionSetAssignment() {
|
|
|
|
// Fetch Test User
|
|
User testUser = [
|
|
SELECT Id
|
|
FROM User
|
|
WHERE Email = 'testuser@example.com'
|
|
LIMIT 1
|
|
];
|
|
|
|
// Fetch Permission Set
|
|
PermissionSet ps = [
|
|
SELECT Id
|
|
FROM PermissionSet
|
|
WHERE Name = 'Shopify_Made_Easy_Modify_All'
|
|
LIMIT 1
|
|
];
|
|
|
|
// Manually assign Permission Set
|
|
insert new PermissionSetAssignment(
|
|
AssigneeId = testUser.Id,
|
|
PermissionSetId = ps.Id
|
|
);
|
|
|
|
System.runAs(testUser) {
|
|
|
|
Test.startTest();
|
|
|
|
// Insert Configuration Record
|
|
HIC_ShopifySync__HIC_Configuration__c conf =
|
|
new HIC_ShopifySync__HIC_Configuration__c(
|
|
Name = 'Default'
|
|
);
|
|
|
|
insert conf;
|
|
|
|
Test.stopTest();
|
|
}
|
|
|
|
// Verify only one assignment exists
|
|
List<PermissionSetAssignment> psaList = [
|
|
SELECT Id
|
|
FROM PermissionSetAssignment
|
|
WHERE AssigneeId = :testUser.Id
|
|
AND PermissionSetId = :ps.Id
|
|
];
|
|
|
|
|
|
}
|
|
} |