flatmap: add Contains
This commit is contained in:
parent
19aaabeecc
commit
50db4deb16
|
@ -12,6 +12,17 @@ import (
|
||||||
// otherwise noted.
|
// otherwise noted.
|
||||||
type Map map[string]string
|
type Map map[string]string
|
||||||
|
|
||||||
|
// Contains returns true if the map contains the given key.
|
||||||
|
func (m Map) Contains (key string) bool {
|
||||||
|
for _, k := range m.Keys() {
|
||||||
|
if k == key {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
// Delete deletes a key out of the map with the given prefix.
|
// Delete deletes a key out of the map with the given prefix.
|
||||||
func (m Map) Delete(prefix string) {
|
func (m Map) Delete(prefix string) {
|
||||||
for k, _ := range m {
|
for k, _ := range m {
|
||||||
|
|
|
@ -6,6 +6,39 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func TestMapContains(t *testing.T) {
|
||||||
|
cases := []struct {
|
||||||
|
Input map[string]string
|
||||||
|
Key string
|
||||||
|
Result bool
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
Input: map[string]string{
|
||||||
|
"foo": "bar",
|
||||||
|
"bar": "nope",
|
||||||
|
},
|
||||||
|
Key: "foo",
|
||||||
|
Result: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
Input: map[string]string{
|
||||||
|
"foo": "bar",
|
||||||
|
"bar": "nope",
|
||||||
|
},
|
||||||
|
Key: "baz",
|
||||||
|
Result: false,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for i, tc := range cases {
|
||||||
|
actual := Map(tc.Input).Contains(tc.Key)
|
||||||
|
if actual != tc.Result {
|
||||||
|
t.Fatalf("case %d bad: %#v", i, tc.Input)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestMapDelete(t *testing.T) {
|
func TestMapDelete(t *testing.T) {
|
||||||
m := Flatten(map[string]interface{}{
|
m := Flatten(map[string]interface{}{
|
||||||
"foo": "bar",
|
"foo": "bar",
|
||||||
|
|
Loading…
Reference in New Issue