github.com/asynkron/protoactor-go@v0.0.0-20240308120642-ef91a6abee75/cluster/cluster_test_tool/pubsub_default_registration_test.go (about) 1 package cluster_test_tool 2 3 import ( 4 "strconv" 5 "testing" 6 7 "github.com/stretchr/testify/suite" 8 ) 9 10 type PubSubDefaultRegistrationTestSuite struct { 11 suite.Suite 12 fixture *PubSubClusterFixture 13 } 14 15 func (suite *PubSubDefaultRegistrationTestSuite) SetupTest() { 16 suite.fixture = NewPubSubClusterFixture(suite.T(), 1, true) 17 suite.fixture.Initialize() 18 } 19 20 func (suite *PubSubDefaultRegistrationTestSuite) TearDownTest() { 21 suite.fixture.ShutDown() 22 } 23 24 func (suite *PubSubDefaultRegistrationTestSuite) TestPubSubWorksWithDefaultTopicRegistration() { 25 subscriberIds := suite.fixture.SubscriberIds("topic-default", 20) 26 const topic = "topic-default-registration" 27 const numMessage = 100 28 29 suite.fixture.SubscribeAllTo(topic, subscriberIds) 30 31 for i := 0; i < numMessage; i++ { 32 data, err := suite.fixture.PublishData(topic, i) 33 suite.Assert().NoError(err, "message "+strconv.Itoa(i)+" should not has error") 34 suite.Assert().NotNil(data, "response "+strconv.Itoa(i)+" should not be nil") 35 } 36 37 suite.fixture.VerifyAllSubscribersGotAllTheData(subscriberIds, numMessage) 38 } 39 40 // In order for 'go test' to run this suite, we need to create 41 // a normal test function and pass our suite to suite.Run 42 func TestPubSubDefaultRegistrationTestSuite(t *testing.T) { 43 suite.Run(t, new(PubSubDefaultRegistrationTestSuite)) 44 }