common_test.go 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package engine
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/assert"
  5. )
  6. func TestPrivacyFlag_whenTypical(t *testing.T) {
  7. assert := assert.New(t)
  8. flag := PrivacyFlagPartyProtection | PrivacyFlagStateValidation
  9. assert.True(flag.Has(PrivacyFlagStateValidation))
  10. }
  11. func TestPrivacyFlag_whenCheckingMultipleFlags(t *testing.T) {
  12. assert := assert.New(t)
  13. flag := PrivacyFlagPartyProtection
  14. assert.False(flag.Has(PrivacyFlagStateValidation | PrivacyFlagPartyProtection))
  15. }
  16. func TestPrivacyFlag_whenCheckingMultipleFlagsArray(t *testing.T) {
  17. assert := assert.New(t)
  18. flag := PrivacyFlagStateValidation | PrivacyFlagPartyProtection
  19. assert.True(flag.HasAll(PrivacyFlagStateValidation, PrivacyFlagPartyProtection))
  20. }
  21. func TestPrivacyFlag_whenCheckingStandardPrivateFlag(t *testing.T) {
  22. assert := assert.New(t)
  23. flag := PrivacyFlagStandardPrivate
  24. assert.True(flag.IsStandardPrivate())
  25. }
  26. func TestPrivacyFlag_whenCheckingNotStandardPrivateFlag(t *testing.T) {
  27. assert := assert.New(t)
  28. flag := PrivacyFlagPartyProtection
  29. assert.True(flag.IsNotStandardPrivate())
  30. }
  31. func TestPrivacyFlag_whenPrivateStateValidation(t *testing.T) {
  32. assert := assert.New(t)
  33. t.Logf("PrivateFlagStateValidation: %d", PrivacyFlagStateValidation)
  34. assert.True(PrivacyFlagStateValidation.Has(PrivacyFlagPartyProtection), "State Validation must have party protection by default")
  35. }
  36. func TestPrivacyFlag_whenMandatoryRecipients(t *testing.T) {
  37. assert := assert.New(t)
  38. flag := PrivacyFlagMandatoryRecipients
  39. assert.NoError(flag.Validate())
  40. assert.True(flag.Has(PrivacyFlagMandatoryRecipients))
  41. assert.True(PrivacyFlagStateValidation.Has(flag))
  42. }
  43. func TestPrivacyFlagType_Validate_whenSuccess(t *testing.T) {
  44. assert := assert.New(t)
  45. flag := PrivacyFlagStateValidation
  46. assert.NoError(flag.Validate())
  47. }
  48. func TestPrivacyFlagType_Validate_whenFailure(t *testing.T) {
  49. assert := assert.New(t)
  50. flag := PrivacyFlagType(4)
  51. assert.Error(flag.Validate())
  52. }
  53. func TestFeatureSet_HasFeature(t *testing.T) {
  54. assert := assert.New(t)
  55. featureSet := NewFeatureSet(PrivacyEnhancements, MultiTenancy, MultiplePrivateStates, MandatoryRecipients)
  56. assert.True(featureSet.HasFeature(MandatoryRecipients))
  57. assert.True(featureSet.HasFeature(MultiplePrivateStates))
  58. }