| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- package events_test
-
- import (
- "context"
- "net"
- "testing"
- "time"
-
- "github.com/9seconds/mtg/v2/events"
- "github.com/9seconds/mtg/v2/mtglib"
- "github.com/stretchr/testify/suite"
- )
-
- type NoopTestSuite struct {
- suite.Suite
-
- testData map[string]mtglib.Event
- ctx context.Context
- }
-
- func (suite *NoopTestSuite) SetupSuite() {
- suite.testData = map[string]mtglib.Event{
- "start": mtglib.EventStart{
- CreatedAt: time.Now(),
- ConnID: "connID",
- RemoteIP: net.ParseIP("127.0.0.1"),
- },
- "connected-to-dc": mtglib.EventConnectedToDC{
- CreatedAt: time.Now(),
- ConnID: "connID",
- RemoteIP: net.ParseIP("127.1.0.1"),
- DC: 2,
- },
- "traffic": mtglib.EventTraffic{
- CreatedAt: time.Now(),
- ConnID: "connID",
- Traffic: 1000,
- IsRead: true,
- },
- "finish": mtglib.EventFinish{
- CreatedAt: time.Now(),
- ConnID: "connID",
- },
- "concurrency-limited": mtglib.EventConcurrencyLimited{},
- "ip-blacklisted": mtglib.EventIPBlocklisted{
- RemoteIP: net.ParseIP("10.0.0.10"),
- CreatedAt: time.Now(),
- },
- }
- suite.ctx = context.Background()
- }
-
- func (suite *NoopTestSuite) TestStream() {
- stream := events.NewNoopStream()
-
- for name, v := range suite.testData {
- value := v
-
- suite.T().Run(name, func(t *testing.T) {
- stream.Send(suite.ctx, value)
- })
- }
-
- stream.Shutdown()
- }
-
- func (suite *NoopTestSuite) TestObserver() {
- observer := events.NewNoopObserver()
-
- for name, v := range suite.testData {
- value := v
-
- suite.T().Run(name, func(t *testing.T) {
- switch typedEvt := value.(type) {
- case mtglib.EventStart:
- observer.EventStart(typedEvt)
- case mtglib.EventConnectedToDC:
- observer.EventConnectedToDC(typedEvt)
- case mtglib.EventFinish:
- observer.EventFinish(typedEvt)
- case mtglib.EventConcurrencyLimited:
- observer.EventConcurrencyLimited(typedEvt)
- case mtglib.EventIPBlocklisted:
- observer.EventIPBlocklisted(typedEvt)
- }
- })
- }
-
- observer.Shutdown()
- }
-
- func TestNoop(t *testing.T) {
- t.Parallel()
- suite.Run(t, &NoopTestSuite{})
- }
|