registry_test.go 755 B

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