crypto_test.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package settings
  2. import (
  3. "crypto/md5"
  4. "encoding/hex"
  5. "testing"
  6. "github.com/stretchr/testify/assert"
  7. )
  8. func TestGetSecretMd5_WithNonEmptySecret_ReturnsExpectedMd5Hash(t *testing.T) {
  9. // Init
  10. CryptoSettings.Secret = "testSecret"
  11. expectedMd5 := md5.Sum([]byte("testSecret"))
  12. expectedMd5String := hex.EncodeToString(expectedMd5[:])
  13. // Execute
  14. resultMd5 := CryptoSettings.GetSecretMd5()
  15. resultMd5String := hex.EncodeToString(resultMd5[:])
  16. // Verify
  17. assert.Equal(t, expectedMd5String, resultMd5String, "MD5 hash should match for non-empty secret")
  18. }
  19. func TestGetSecretMd5_WithEmptySecret_ReturnsMd5OfEmptyString(t *testing.T) {
  20. // Init
  21. CryptoSettings.Secret = ""
  22. expectedMd5 := md5.Sum([]byte(""))
  23. expectedMd5String := hex.EncodeToString(expectedMd5[:])
  24. // Execute
  25. resultMd5 := CryptoSettings.GetSecretMd5()
  26. resultMd5String := hex.EncodeToString(resultMd5[:])
  27. // Verify
  28. assert.Equal(t, expectedMd5String, resultMd5String, "MD5 hash of an empty string should be returned for empty secret")
  29. }
  30. func TestGetSecretMd5_WithDifferentSecrets_ReturnsDifferentMd5Hashes(t *testing.T) {
  31. // Init
  32. CryptoSettings.Secret = "secret1"
  33. firstMd5 := CryptoSettings.GetSecretMd5()
  34. CryptoSettings.Secret = "secret2"
  35. secondMd5 := CryptoSettings.GetSecretMd5()
  36. // Verify
  37. assert.NotEqual(t, firstMd5, secondMd5, "Different secrets should produce different MD5 hashes")
  38. }