43 lines
997 B
Go
43 lines
997 B
Go
package internal_test
|
|
|
|
import (
|
|
"io"
|
|
"math/big"
|
|
"testing"
|
|
|
|
"git.naterciomoniz.net/applications/broker2anexoj/internal"
|
|
"git.naterciomoniz.net/applications/broker2anexoj/internal/mocks"
|
|
"go.uber.org/mock/gomock"
|
|
)
|
|
|
|
func TestReporter_Run(t *testing.T) {
|
|
ctrl := gomock.NewController(t)
|
|
|
|
rec := mocks.NewMockRecord(ctrl)
|
|
rec.EXPECT().Price().Return(big.NewFloat(1.25)).AnyTimes()
|
|
rec.EXPECT().Quantity().Return(big.NewFloat(10)).AnyTimes()
|
|
rec.EXPECT().Side().Return(internal.SideBuy).AnyTimes()
|
|
rec.EXPECT().Symbol().Return("TEST").AnyTimes()
|
|
|
|
reader := mocks.NewMockRecordReader(ctrl)
|
|
records := []internal.Record{
|
|
rec,
|
|
rec,
|
|
}
|
|
reader.EXPECT().ReadRecord().DoAndReturn(func() (internal.Record, error) {
|
|
if len(records) > 0 {
|
|
r := records[0]
|
|
records = records[1:]
|
|
return r, nil
|
|
} else {
|
|
return nil, io.EOF
|
|
}
|
|
}).AnyTimes()
|
|
|
|
reporter := internal.NewReporter(reader)
|
|
gotErr := reporter.Run()
|
|
if gotErr != nil {
|
|
t.Fatalf("got unexpected err: %v", gotErr)
|
|
}
|
|
}
|