35 lines
794 B
Go
35 lines
794 B
Go
package tcp
|
|
|
|
import (
|
|
"encoding/binary"
|
|
"github.com/go-playground/assert/v2"
|
|
"github.com/stretchr/testify/require"
|
|
"mpbl3p/mocks"
|
|
"mpbl3p/proxy"
|
|
"testing"
|
|
)
|
|
|
|
|
|
|
|
func TestFlow_Consume(t *testing.T) {
|
|
testContent := []byte("A test string is the content of this packet.")
|
|
testPacket := proxy.NewPacket(testContent)
|
|
testMac := mocks.AlmostUselessMac{}
|
|
|
|
t.Run("Output", func(t *testing.T) {
|
|
testConn := mocks.NewMockPerfectBiConn(100)
|
|
|
|
flowA := Flow{conn: testConn.SideA()}
|
|
|
|
err := flowA.Consume(testPacket, testMac)
|
|
require.Nil(t, err)
|
|
|
|
buf := make([]byte, 100)
|
|
n, err := testConn.SideB().Read(buf)
|
|
require.Nil(t, err)
|
|
|
|
assert.Equal(t, len(testContent) + 8 + 4 + 4, n)
|
|
assert.Equal(t, uint32(len(testContent) + 8 + 4), binary.LittleEndian.Uint32(buf[:len(buf)-4]))
|
|
})
|
|
}
|