6 "github.com/stretchr/testify/assert"
11 func TestTransfer_Read(t *testing.T) {
14 ReferenceNumber [4]byte
29 name: "when b is a valid transfer",
32 ReferenceNumber: [4]byte{},
38 0x48, 0x54, 0x58, 0x46,
39 0x00, 0x00, 0x00, 0x01,
40 0x00, 0x00, 0x00, 0x02,
41 0x00, 0x00, 0x00, 0x00,
48 name: "when b contains invalid transfer protocol",
51 ReferenceNumber: [4]byte{},
57 0x11, 0x11, 0x11, 0x11,
58 0x00, 0x00, 0x00, 0x01,
59 0x00, 0x00, 0x00, 0x02,
60 0x00, 0x00, 0x00, 0x00,
67 name: "when b does not contain expected len of bytes",
70 ReferenceNumber: [4]byte{},
76 0x48, 0x54, 0x58, 0x46,
77 0x00, 0x00, 0x00, 0x01,
78 0x00, 0x00, 0x00, 0x02,
86 for _, tt := range tests {
87 t.Run(tt.name, func(t *testing.T) {
89 Protocol: tt.fields.Protocol,
90 ReferenceNumber: tt.fields.ReferenceNumber,
91 DataSize: tt.fields.DataSize,
94 got, err := tf.Write(tt.args.b)
95 if (err != nil) != tt.wantErr {
96 t.Errorf("Read() error = %v, wantErr %v", err, tt.wantErr)
100 t.Errorf("Read() got = %v, want %v", got, tt.want)
106 func Test_receiveFile(t *testing.T) {
113 wantTargetFile []byte
114 wantResForkFile []byte
115 wantErr assert.ErrorAssertionFunc
118 name: "transfers file",
120 conn: func() io.Reader {
121 testFile := flattenedFileObject{
122 FlatFileHeader: NewFlatFileHeader(),
123 FlatFileInformationForkHeader: FlatFileInformationForkHeader{},
124 FlatFileInformationFork: NewFlatFileInformationFork("testfile.txt", make([]byte, 8)),
125 FlatFileDataForkHeader: FlatFileDataForkHeader{
126 ForkType: [4]byte{0x4d, 0x41, 0x43, 0x52}, // DATA
127 CompressionType: [4]byte{0, 0, 0, 0},
128 RSVD: [4]byte{0, 0, 0, 0},
129 DataSize: [4]byte{0x00, 0x00, 0x00, 0x03},
133 fakeFileData := []byte{1, 2, 3}
134 b := testFile.BinaryMarshal()
135 b = append(b, fakeFileData...)
136 return bytes.NewReader(b)
139 wantTargetFile: []byte{1, 2, 3},
140 wantResForkFile: []byte(nil),
142 wantErr: assert.NoError,
145 for _, tt := range tests {
146 t.Run(tt.name, func(t *testing.T) {
147 targetFile := &bytes.Buffer{}
148 resForkFile := &bytes.Buffer{}
149 err := receiveFile(tt.args.conn, targetFile, resForkFile)
150 if !tt.wantErr(t, err, fmt.Sprintf("receiveFile(%v, %v, %v)", tt.args.conn, targetFile, resForkFile)) {
154 assert.Equalf(t, tt.wantTargetFile, targetFile.Bytes(), "receiveFile(%v, %v, %v)", tt.args.conn, targetFile, resForkFile)
155 assert.Equalf(t, tt.wantResForkFile, resForkFile.Bytes(), "receiveFile(%v, %v, %v)", tt.args.conn, targetFile, resForkFile)