aboutsummaryrefslogtreecommitdiff
path: root/hotline/transfer_test.go
diff options
context:
space:
mode:
authorJeff Halter <868228+jhalter@users.noreply.github.com>2022-06-02 15:22:11 -0700
committerJeff Halter <868228+jhalter@users.noreply.github.com>2022-06-02 15:22:11 -0700
commit481631f6b541a0f00c7c3ba789c13ac934bdefbc (patch)
tree7e672f439c1d9a93f68493d5da624e17bd0ce654 /hotline/transfer_test.go
parent5ae5087660f0855087a2a65181d000d4383a45f4 (diff)
Cleanup and backfill tests
Diffstat (limited to 'hotline/transfer_test.go')
-rw-r--r--hotline/transfer_test.go62
1 files changed, 61 insertions, 1 deletions
diff --git a/hotline/transfer_test.go b/hotline/transfer_test.go
index 63e22c0..23b30ef 100644
--- a/hotline/transfer_test.go
+++ b/hotline/transfer_test.go
@@ -1,6 +1,12 @@
package hotline
-import "testing"
+import (
+ "bytes"
+ "fmt"
+ "github.com/stretchr/testify/assert"
+ "io"
+ "testing"
+)
func TestTransfer_Read(t *testing.T) {
type fields struct {
@@ -96,3 +102,57 @@ func TestTransfer_Read(t *testing.T) {
})
}
}
+
+func Test_receiveFile(t *testing.T) {
+ type args struct {
+ conn io.Reader
+ }
+ tests := []struct {
+ name string
+ args args
+ wantTargetFile []byte
+ wantResForkFile []byte
+ wantErr assert.ErrorAssertionFunc
+ }{
+ {
+ name: "transfers file",
+ args: args{
+ conn: func() io.Reader {
+ testFile := flattenedFileObject{
+ FlatFileHeader: NewFlatFileHeader(),
+ FlatFileInformationForkHeader: FlatFileInformationForkHeader{},
+ FlatFileInformationFork: NewFlatFileInformationFork("testfile.txt", make([]byte, 8)),
+ FlatFileDataForkHeader: FlatFileDataForkHeader{
+ ForkType: [4]byte{0x4d, 0x41, 0x43, 0x52}, // DATA
+ CompressionType: [4]byte{0, 0, 0, 0},
+ RSVD: [4]byte{0, 0, 0, 0},
+ DataSize: [4]byte{0x00, 0x00, 0x00, 0x03},
+ },
+ FileData: nil,
+ }
+ fakeFileData := []byte{1, 2, 3}
+ b := testFile.BinaryMarshal()
+ b = append(b, fakeFileData...)
+ return bytes.NewReader(b)
+ }(),
+ },
+ wantTargetFile: []byte{1, 2, 3},
+ wantResForkFile: []byte(nil),
+
+ wantErr: assert.NoError,
+ },
+ }
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ targetFile := &bytes.Buffer{}
+ resForkFile := &bytes.Buffer{}
+ err := receiveFile(tt.args.conn, targetFile, resForkFile)
+ if !tt.wantErr(t, err, fmt.Sprintf("receiveFile(%v, %v, %v)", tt.args.conn, targetFile, resForkFile)) {
+ return
+ }
+
+ assert.Equalf(t, tt.wantTargetFile, targetFile.Bytes(), "receiveFile(%v, %v, %v)", tt.args.conn, targetFile, resForkFile)
+ assert.Equalf(t, tt.wantResForkFile, resForkFile.Bytes(), "receiveFile(%v, %v, %v)", tt.args.conn, targetFile, resForkFile)
+ })
+ }
+}