registry_test.go 775 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package registry
  2. import (
  3. "errors"
  4. "testing"
  5. )
  6. func TestRegistry(t *testing.T) {
  7. type TestCase struct {
  8. Key string
  9. Value string
  10. Lock bool
  11. Err error
  12. }
  13. testCases := []TestCase{
  14. {Key: "abc", Value: "123"},
  15. {Key: "abc", Value: "456"},
  16. {Key: "def", Value: "789", Lock: true},
  17. {Key: "def", Value: "000", Err: ErrKeyLocked},
  18. }
  19. r := New()
  20. for i, tc := range testCases {
  21. t.Logf("(%d) Testing set %s=%q (lock: %t)", i, tc.Key, tc.Value, tc.Lock)
  22. err := r.Set(tc.Key, tc.Value)
  23. if !errors.Is(err, tc.Err) {
  24. t.Errorf("Expected error %v, got %v", tc.Err, err)
  25. }
  26. value := r.Get(tc.Key)
  27. if value != tc.Value {
  28. if err == nil {
  29. t.Errorf("Expected value %q, got %q", tc.Value, value)
  30. }
  31. }
  32. if tc.Lock {
  33. r.Lock(tc.Key)
  34. }
  35. }
  36. }