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])) }) }