package config import ( "testing" peer "github.com/libp2p/go-libp2p-peer" mux "github.com/libp2p/go-stream-muxer" yamux "github.com/whyrusleeping/go-smux-yamux" ) func TestMuxerSimple(t *testing.T) { // single _, err := MuxerConstructor(func(_ peer.ID) mux.Transport { return nil }) if err != nil { t.Fatal(err) } } func TestMuxerByValue(t *testing.T) { _, err := MuxerConstructor(yamux.DefaultTransport) if err != nil { t.Fatal(err) } } func TestMuxerDuplicate(t *testing.T) { _, err := MuxerConstructor(func(_ peer.ID, _ peer.ID) mux.Transport { return nil }) if err != nil { t.Fatal(err) } } func TestMuxerError(t *testing.T) { _, err := MuxerConstructor(func() (mux.Transport, error) { return nil, nil }) if err != nil { t.Fatal(err) } } func TestMuxerBadTypes(t *testing.T) { for i, f := range []interface{}{ func() error { return nil }, func() string { return "" }, func() {}, func(string) mux.Transport { return nil }, func(string) (mux.Transport, error) { return nil, nil }, nil, "testing", } { if _, err := MuxerConstructor(f); err == nil { t.Fatalf("constructor %d with type %T should have failed", i, f) } } }