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  }