From 8491a18172cbce1a7146defb8cbc455ee65071b5 Mon Sep 17 00:00:00 2001 From: gfanton <8671905+gfanton@users.noreply.github.com> Date: Wed, 5 Jul 2023 19:19:48 +0200 Subject: [PATCH] test: test notify protocols updated Signed-off-by: gfanton <8671905+gfanton@users.noreply.github.com> --- notify_test.go | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 notify_test.go diff --git a/notify_test.go b/notify_test.go new file mode 100644 index 00000000..fa5b755a --- /dev/null +++ b/notify_test.go @@ -0,0 +1,76 @@ +package pubsub + +import ( + "context" + "testing" + "time" + + "github.com/libp2p/go-libp2p/p2p/protocol/identify" +) + +func TestNotifyPeerProtocolsUpdated(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + hosts := getDefaultHosts(t, 2) + + // Initialize id services. + { + ids1, err := identify.NewIDService(hosts[0]) + if err != nil { + t.Fatal(err) + } + ids1.Start() + defer ids1.Close() + + ids2, err := identify.NewIDService(hosts[1]) + if err != nil { + t.Fatal(err) + } + ids2.Start() + defer ids2.Close() + } + + psubs0 := getPubsub(ctx, hosts[0]) + connect(t, hosts[0], hosts[1]) + // Delay to make sure that peers are connected. + <-time.After(time.Millisecond * 100) + psubs1 := getPubsub(ctx, hosts[1]) + + // Pubsub 0 joins topic "test". + topic0, err := psubs0.Join("test") + if err != nil { + t.Fatal(err) + } + defer topic0.Close() + + sub0, err := topic0.Subscribe() + if err != nil { + t.Fatal(err) + } + defer sub0.Cancel() + + // Pubsub 1 joins topic "test". + topic1, err := psubs1.Join("test") + if err != nil { + t.Fatal(err) + } + defer topic1.Close() + + sub1, err := topic1.Subscribe() + if err != nil { + t.Fatal(err) + } + defer sub1.Cancel() + + // Delay before checking results (similar to most tests). + <-time.After(time.Millisecond * 100) + + if len(topic0.ListPeers()) == 0 { + t.Fatalf("topic0 should at least have 1 peer") + } + + if len(topic1.ListPeers()) == 0 { + t.Fatalf("topic1 should at least have 1 peer") + } +}