OSDN Git Service

Hulk did something
[bytom/vapor.git] / vendor / github.com / tendermint / tmlibs / common / cmap_test.go
diff --git a/vendor/github.com/tendermint/tmlibs/common/cmap_test.go b/vendor/github.com/tendermint/tmlibs/common/cmap_test.go
new file mode 100644 (file)
index 0000000..c665a7f
--- /dev/null
@@ -0,0 +1,53 @@
+package common
+
+import (
+       "fmt"
+       "strings"
+       "testing"
+
+       "github.com/stretchr/testify/assert"
+)
+
+func TestIterateKeysWithValues(t *testing.T) {
+       cmap := NewCMap()
+
+       for i := 1; i <= 10; i++ {
+               cmap.Set(fmt.Sprintf("key%d", i), fmt.Sprintf("value%d", i))
+       }
+
+       // Testing size
+       assert.Equal(t, 10, cmap.Size())
+       assert.Equal(t, 10, len(cmap.Keys()))
+       assert.Equal(t, 10, len(cmap.Values()))
+
+       // Iterating Keys, checking for matching Value
+       for _, key := range cmap.Keys() {
+               val := strings.Replace(key, "key", "value", -1)
+               assert.Equal(t, val, cmap.Get(key))
+       }
+
+       // Test if all keys are within []Keys()
+       keys := cmap.Keys()
+       for i := 1; i <= 10; i++ {
+               assert.Contains(t, keys, fmt.Sprintf("key%d", i), "cmap.Keys() should contain key")
+       }
+
+       // Delete 1 Key
+       cmap.Delete("key1")
+
+       assert.NotEqual(t, len(keys), len(cmap.Keys()), "[]keys and []Keys() should not be equal, they are copies, one item was removed")
+}
+
+func TestContains(t *testing.T) {
+       cmap := NewCMap()
+
+       cmap.Set("key1", "value1")
+
+       // Test for known values
+       assert.True(t, cmap.Has("key1"))
+       assert.Equal(t, "value1", cmap.Get("key1"))
+
+       // Test for unknown values
+       assert.False(t, cmap.Has("key2"))
+       assert.Nil(t, cmap.Get("key2"))
+}