func testStorageStoreUpdateNode(storage cluster.Storage, t *testing.T) { node1 := cluster.Node{Address: "my-addr-1", Metadata: map[string]string{"abc": "def", "x": "y"}} defer storage.RemoveNode("my-addr-1") err := storage.StoreNode(node1) assertIsNil(err, t) delete(node1.Metadata, "x") node1.Metadata["ahoy"] = "foo" err = storage.UpdateNode(node1) assertIsNil(err, t) nd, err := storage.RetrieveNode("my-addr-1") if !reflect.DeepEqual(nd, node1) { t.Errorf("unexpected node, expected: %#v, got: %#v", node1, nd) } node1.Address = "my-addr-xxxxxx" err = storage.UpdateNode(node1) if err != cstorage.ErrNoSuchNode { t.Errorf("Expected ErrNoSuchNode got: %#v", err) } }