FILE / ScuroNeko/mtg

mtglib/internal/relay/relay_test.go

Исходный файл и его история в репозитории.
FILE 2544c521ed2ed6d5d3c07876948e709855f2c583
Files
mtg/mtglib/internal/relay/relay_test.go
T

59 lines
1.7 KiB
Go

package relay_test
import (
"context"
"io"
"testing"
"github.com/9seconds/mtg/v2/internal/testlib"
"github.com/9seconds/mtg/v2/mtglib/internal/relay"
"github.com/stretchr/testify/mock"
"github.com/stretchr/testify/suite"
)
type RelayTestSuite struct {
suite.Suite
loggerMock relay.Logger
ctx context.Context
ctxCancel context.CancelFunc
telegramConnMock *testlib.EssentialsConnMock
clientConnMock *testlib.EssentialsConnMock
}
func (suite *RelayTestSuite) SetupTest() {
ctx, cancel := context.WithCancel(context.Background())
suite.ctx = ctx
suite.ctxCancel = cancel
suite.loggerMock = &loggerMock{}
suite.telegramConnMock = &testlib.EssentialsConnMock{}
suite.clientConnMock = &testlib.EssentialsConnMock{}
}
func (suite *RelayTestSuite) TearDownTest() {
suite.ctxCancel()
suite.telegramConnMock.AssertExpectations(suite.T())
suite.clientConnMock.AssertExpectations(suite.T())
}
func (suite *RelayTestSuite) TestExit() {
suite.telegramConnMock.On("Close").Return(nil)
suite.telegramConnMock.On("CloseRead").Return(nil).Once()
suite.telegramConnMock.On("CloseWrite").Return(nil).Once()
suite.telegramConnMock.On("Read", mock.Anything).Return(10, io.EOF).Once()
suite.telegramConnMock.On("Write", mock.Anything).Return(10, io.EOF).Maybe()
suite.clientConnMock.On("Read", mock.Anything).Return(0, io.EOF).Once()
suite.clientConnMock.On("Write", mock.Anything).Return(10, io.EOF).Maybe()
suite.clientConnMock.On("Close").Return(nil)
suite.clientConnMock.On("CloseRead").Return(nil).Once()
suite.clientConnMock.On("CloseWrite").Return(nil).Once()
relay.Relay(suite.ctx, suite.loggerMock, suite.telegramConnMock, suite.clientConnMock)
}
func TestRelay(t *testing.T) {
t.Parallel()
suite.Run(t, &RelayTestSuite{})
}