Live video on the AT Protocol
1package iroh_streamplace
2
3// import (
4// "testing"
5
6// "github.com/stretchr/testify/assert"
7
8// iroh "stream.place/streamplace/pkg/iroh/generated/iroh_streamplace"
9// )
10
11// type Message struct {
12// topic string
13// data []byte
14// }
15
16// type TestHandler struct {
17// messages chan Message
18// }
19
20// func (handler TestHandler) HandleData(topic string, data []byte) {
21// handler.messages <- Message{topic, data}
22// }
23
24// func 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// }