Live video on the AT Protocol
79
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v0.7.26 57 lines 1.2 kB view raw
1package iroh_streamplace 2 3import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 8 iroh "stream.place/streamplace/pkg/iroh/generated/iroh_streamplace" 9) 10 11type Message struct { 12 topic string 13 data []byte 14} 15 16type TestHandler struct { 17 messages chan Message 18} 19 20func (handler TestHandler) HandleData(topic string, data []byte) { 21 handler.messages <- Message{topic, data} 22} 23 24func TestBasicRoundtrip(t *testing.T) { 25 ep1, err := iroh.NewEndpoint() 26 assert.Nil(t, err) 27 sender, err := iroh.NewSender(ep1) 28 assert.NoError(t, err.AsError()) 29 30 messages := make(chan Message, 5) 31 handler := TestHandler{messages: messages} 32 33 ep2, err := iroh.NewEndpoint() 34 assert.NoError(t, err.AsError()) 35 receiver, err := iroh.NewReceiver(ep2, &handler) 36 assert.NoError(t, err.AsError()) 37 38 senderAddr := sender.NodeAddr() 39 senderId := senderAddr.NodeId() 40 41 // subscribe 42 err = receiver.Subscribe(senderId, "foo") 43 assert.NoError(t, err.AsError()) 44 45 // send a few messages 46 for i := range 5 { 47 err = sender.Send("foo", []byte{byte(i), 0, 0, 0}) 48 assert.NoError(t, err.AsError()) 49 } 50 51 // make sure the receiver got them 52 for i := range 5 { 53 msg := <-messages 54 assert.Equal(t, msg.topic, "foo") 55 assert.Equal(t, msg.data, []byte{byte(i), 0, 0, 0}) 56 } 57}