| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- 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,
- },
- "domain-fronting": mtglib.EventDomainFronting{
- CreatedAt: time.Now(),
- ConnID: "connID",
- },
- "traffic": mtglib.EventTraffic{
- CreatedAt: time.Now(),
- ConnID: "connID",
- Traffic: 1000,
- IsRead: true,
- },
- "finish": mtglib.EventFinish{
- CreatedAt: time.Now(),
- ConnID: "connID",
- },
- "concurrency-limited": mtglib.EventConcurrencyLimited{
- CreatedAt: time.Now(),
- },
- "ip-blacklisted": mtglib.EventIPBlocklisted{
- RemoteIP: net.ParseIP("10.0.0.10"),
- CreatedAt: time.Now(),
- },
- "replay-attack": mtglib.EventReplayAttack{
- CreatedAt: time.Now(),
- ConnID: "connID",
- },
- }
- 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)
- })
- }
- }
-
- 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.EventDomainFronting:
- observer.EventDomainFronting(typedEvt)
- case mtglib.EventFinish:
- observer.EventFinish(typedEvt)
- case mtglib.EventConcurrencyLimited:
- observer.EventConcurrencyLimited(typedEvt)
- case mtglib.EventIPBlocklisted:
- observer.EventIPBlocklisted(typedEvt)
- case mtglib.EventReplayAttack:
- observer.EventReplayAttack(typedEvt)
- }
- })
- }
-
- observer.Shutdown()
- }
-
- func TestNoop(t *testing.T) {
- t.Parallel()
- suite.Run(t, &NoopTestSuite{})
- }
|