func runTest(t *testing.T, client Client) { _, err := client.Set("foo", "one", 0) require.NoError(t, err) value, ok, err := client.Get("foo") require.NoError(t, err) require.True(t, ok) require.Equal(t, "one", value) //values, err := client.GetAll("foo") //require.NoError(t, err) //require.Equal(t, map[string]string{"foo": "one"}, values) _, err = client.Set("a/b/foo", "one", 0) require.NoError(t, err) _, err = client.Set("a/b/bar", "two", 0) require.NoError(t, err) values, err := client.GetAll("a/b") require.NoError(t, err) require.Equal(t, map[string]string{"a/b/foo": "one", "a/b/bar": "two"}, values) require.NoError(t, client.Close()) }
func TestBuildWithError(t *testing.T) { intC := make(chan int, 5) nameToNodeInfo := map[string]*NodeInfo{ "1": &NodeInfo{ Parents: []string{}, }, "2": &NodeInfo{ Parents: []string{}, }, "3-1": &NodeInfo{ Parents: []string{ "1", "2", }, }, "3-2": &NodeInfo{ Parents: []string{ "1", "2", }, }, "3-3": &NodeInfo{ Parents: []string{ "1", "2", }, }, "4-1": &NodeInfo{ Parents: []string{ "3-1", "3-2", "3-3", }, }, "4-2": &NodeInfo{ Parents: []string{ "3-1", "3-2", "3-3", }, }, "5": &NodeInfo{ Parents: []string{ "4-1", "4-2", }, }, } counter := int32(0) nameToNodeFunc := map[string]func() error{ "1": testNodeFunc(&counter, intC, "1", 1, ""), "2": testNodeFunc(&counter, intC, "2", 2, ""), "3-1": testNodeFunc(&counter, intC, "3-1", 3, "3-1:error"), "3-2": testNodeFunc(&counter, intC, "3-2", 4, ""), "3-3": testNodeFunc(&counter, intC, "3-3", 5, ""), "4-1": testNodeFunc(&counter, intC, "4-1", 6, ""), "4-2": testNodeFunc(&counter, intC, "4-2", 7, ""), "5": testNodeFunc(&counter, intC, "5", 8, ""), } run, err := build(nameToNodeInfo, nameToNodeFunc) require.NoError(t, err) err = run.Do() require.NotNil(t, err) require.Equal(t, "3-1:error", err.Error()) require.Equal(t, int32(5), counter) i := <-intC require.True(t, i == 1 || i == 2) i = <-intC require.True(t, i == 1 || i == 2) i = <-intC require.True(t, i == 3 || i == 4 || i == 5) i = <-intC require.True(t, i == 3 || i == 4 || i == 5) i = <-intC require.True(t, i == 3 || i == 4 || i == 5) }