You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
122 lines
6.1 KiB
122 lines
6.1 KiB
using Bit.Core.Enums; |
|
using Bit.Core.Utilities; |
|
using Bit.Test.Common.AutoFixture.Attributes; |
|
using Xunit; |
|
|
|
namespace Bit.Core.Test.Utilities; |
|
|
|
public class EventIntegrationsCacheConstantsTests |
|
{ |
|
[Theory, BitAutoData] |
|
public void BuildCacheKeyForGroup_ReturnsExpectedKey(Guid groupId) |
|
{ |
|
var expected = $"Group:{groupId:N}"; |
|
var key = EventIntegrationsCacheConstants.BuildCacheKeyForGroup(groupId); |
|
var keyWithDifferentGroup = EventIntegrationsCacheConstants.BuildCacheKeyForGroup(Guid.NewGuid()); |
|
var keyWithSameGroup = EventIntegrationsCacheConstants.BuildCacheKeyForGroup(groupId); |
|
|
|
Assert.Equal(expected, key); |
|
Assert.NotEqual(key, keyWithDifferentGroup); |
|
Assert.Equal(key, keyWithSameGroup); |
|
} |
|
|
|
[Theory, BitAutoData] |
|
public void BuildCacheKeyForOrganization_ReturnsExpectedKey(Guid orgId) |
|
{ |
|
var expected = $"Organization:{orgId:N}"; |
|
var key = EventIntegrationsCacheConstants.BuildCacheKeyForOrganization(orgId); |
|
var keyWithDifferentOrg = EventIntegrationsCacheConstants.BuildCacheKeyForOrganization(Guid.NewGuid()); |
|
var keyWithSameOrg = EventIntegrationsCacheConstants.BuildCacheKeyForOrganization(orgId); |
|
|
|
Assert.Equal(expected, key); |
|
Assert.NotEqual(key, keyWithDifferentOrg); |
|
Assert.Equal(key, keyWithSameOrg); |
|
} |
|
|
|
[Theory, BitAutoData] |
|
public void BuildCacheKeyForOrganizationIntegrationConfigurationDetails_ReturnsExpectedKey(Guid orgId) |
|
{ |
|
var integrationType = IntegrationType.Hec; |
|
|
|
var expectedWithEvent = $"OrganizationIntegrationConfigurationDetails:{orgId:N}:Hec:User_LoggedIn"; |
|
var keyWithEvent = EventIntegrationsCacheConstants.BuildCacheKeyForOrganizationIntegrationConfigurationDetails( |
|
orgId, integrationType, EventType.User_LoggedIn); |
|
var keyWithDifferentEvent = EventIntegrationsCacheConstants.BuildCacheKeyForOrganizationIntegrationConfigurationDetails( |
|
orgId, integrationType, EventType.Cipher_Created); |
|
var keyWithDifferentIntegration = EventIntegrationsCacheConstants.BuildCacheKeyForOrganizationIntegrationConfigurationDetails( |
|
orgId, IntegrationType.Webhook, EventType.User_LoggedIn); |
|
var keyWithDifferentOrganization = EventIntegrationsCacheConstants.BuildCacheKeyForOrganizationIntegrationConfigurationDetails( |
|
Guid.NewGuid(), integrationType, EventType.User_LoggedIn); |
|
var keyWithSameDetails = EventIntegrationsCacheConstants.BuildCacheKeyForOrganizationIntegrationConfigurationDetails( |
|
orgId, integrationType, EventType.User_LoggedIn); |
|
|
|
Assert.Equal(expectedWithEvent, keyWithEvent); |
|
Assert.NotEqual(keyWithEvent, keyWithDifferentEvent); |
|
Assert.NotEqual(keyWithEvent, keyWithDifferentIntegration); |
|
Assert.NotEqual(keyWithEvent, keyWithDifferentOrganization); |
|
Assert.Equal(keyWithEvent, keyWithSameDetails); |
|
|
|
var expectedWithNullEvent = $"OrganizationIntegrationConfigurationDetails:{orgId:N}:Hec:"; |
|
var keyWithNullEvent = EventIntegrationsCacheConstants.BuildCacheKeyForOrganizationIntegrationConfigurationDetails( |
|
orgId, integrationType, null); |
|
var keyWithNullEventDifferentIntegration = EventIntegrationsCacheConstants.BuildCacheKeyForOrganizationIntegrationConfigurationDetails( |
|
orgId, IntegrationType.Webhook, null); |
|
var keyWithNullEventDifferentOrganization = EventIntegrationsCacheConstants.BuildCacheKeyForOrganizationIntegrationConfigurationDetails( |
|
Guid.NewGuid(), integrationType, null); |
|
|
|
Assert.Equal(expectedWithNullEvent, keyWithNullEvent); |
|
Assert.NotEqual(keyWithEvent, keyWithNullEvent); |
|
Assert.NotEqual(keyWithNullEvent, keyWithDifferentEvent); |
|
Assert.NotEqual(keyWithNullEvent, keyWithNullEventDifferentIntegration); |
|
Assert.NotEqual(keyWithNullEvent, keyWithNullEventDifferentOrganization); |
|
} |
|
|
|
[Theory, BitAutoData] |
|
public void BuildCacheTagForOrganizationIntegration_ReturnsExpectedKey(Guid orgId) |
|
{ |
|
var expected = $"OrganizationIntegration:{orgId:N}:Hec"; |
|
var tag = EventIntegrationsCacheConstants.BuildCacheTagForOrganizationIntegration( |
|
orgId, IntegrationType.Hec); |
|
var tagWithDifferentOrganization = EventIntegrationsCacheConstants.BuildCacheTagForOrganizationIntegration( |
|
Guid.NewGuid(), IntegrationType.Hec); |
|
var tagWithDifferentIntegrationType = EventIntegrationsCacheConstants.BuildCacheTagForOrganizationIntegration( |
|
orgId, IntegrationType.Webhook); |
|
var tagWithSameDetails = EventIntegrationsCacheConstants.BuildCacheTagForOrganizationIntegration( |
|
orgId, IntegrationType.Hec); |
|
|
|
Assert.Equal(expected, tag); |
|
Assert.NotEqual(tag, tagWithDifferentOrganization); |
|
Assert.NotEqual(tag, tagWithDifferentIntegrationType); |
|
Assert.Equal(tag, tagWithSameDetails); |
|
} |
|
|
|
[Theory, BitAutoData] |
|
public void BuildCacheKeyForOrganizationUser_ReturnsExpectedKey(Guid orgId, Guid userId) |
|
{ |
|
var expected = $"OrganizationUserUserDetails:{orgId:N}:{userId:N}"; |
|
var key = EventIntegrationsCacheConstants.BuildCacheKeyForOrganizationUser(orgId, userId); |
|
var keyWithDifferentOrg = EventIntegrationsCacheConstants.BuildCacheKeyForOrganizationUser(Guid.NewGuid(), userId); |
|
var keyWithDifferentUser = EventIntegrationsCacheConstants.BuildCacheKeyForOrganizationUser(orgId, Guid.NewGuid()); |
|
var keyWithSameDetails = EventIntegrationsCacheConstants.BuildCacheKeyForOrganizationUser(orgId, userId); |
|
|
|
Assert.Equal(expected, key); |
|
Assert.NotEqual(key, keyWithDifferentOrg); |
|
Assert.NotEqual(key, keyWithDifferentUser); |
|
Assert.Equal(key, keyWithSameDetails); |
|
} |
|
|
|
[Fact] |
|
public void CacheName_ReturnsExpected() |
|
{ |
|
Assert.Equal("EventIntegrations", EventIntegrationsCacheConstants.CacheName); |
|
} |
|
|
|
[Fact] |
|
public void DurationForOrganizationIntegrationConfigurationDetails_ReturnsExpected() |
|
{ |
|
Assert.Equal( |
|
TimeSpan.FromDays(1), |
|
EventIntegrationsCacheConstants.DurationForOrganizationIntegrationConfigurationDetails |
|
); |
|
} |
|
}
|
|
|