github.com/keltia/go-ipfs@v0.3.8-0.20150909044612-210793031c63/routing/supernode/server_test.go (about) 1 package supernode 2 3 import ( 4 "testing" 5 6 datastore "github.com/ipfs/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-datastore" 7 key "github.com/ipfs/go-ipfs/blocks/key" 8 dhtpb "github.com/ipfs/go-ipfs/routing/dht/pb" 9 ) 10 11 func TestPutProviderDoesntResultInDuplicates(t *testing.T) { 12 routingBackend := datastore.NewMapDatastore() 13 k := key.Key("foo") 14 put := []*dhtpb.Message_Peer{ 15 convPeer("bob", "127.0.0.1/tcp/4001"), 16 convPeer("alice", "10.0.0.10/tcp/4001"), 17 } 18 if err := putRoutingProviders(routingBackend, k, put); err != nil { 19 t.Fatal(err) 20 } 21 if err := putRoutingProviders(routingBackend, k, put); err != nil { 22 t.Fatal(err) 23 } 24 25 got, err := getRoutingProviders(routingBackend, k) 26 if err != nil { 27 t.Fatal(err) 28 } 29 if len(got) != 2 { 30 t.Fatal("should be 2 values, but there are", len(got)) 31 } 32 } 33 34 func convPeer(name string, addrs ...string) *dhtpb.Message_Peer { 35 var rawAddrs [][]byte 36 for _, addr := range addrs { 37 rawAddrs = append(rawAddrs, []byte(addr)) 38 } 39 return &dhtpb.Message_Peer{Id: &name, Addrs: rawAddrs} 40 }