aboutsummaryrefslogtreecommitdiff
path: root/hotline/file_transfer_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'hotline/file_transfer_test.go')
-rw-r--r--hotline/file_transfer_test.go89
1 files changed, 89 insertions, 0 deletions
diff --git a/hotline/file_transfer_test.go b/hotline/file_transfer_test.go
new file mode 100644
index 0000000..213cb9a
--- /dev/null
+++ b/hotline/file_transfer_test.go
@@ -0,0 +1,89 @@
+package hotline
+
+import (
+ "encoding/binary"
+ "github.com/stretchr/testify/assert"
+ "testing"
+)
+
+func TestFileTransfer_String(t *testing.T) {
+ type fields struct {
+ FileName []byte
+ FilePath []byte
+ refNum [4]byte
+ Type int
+ TransferSize []byte
+ FolderItemCount []byte
+ fileResumeData *FileResumeData
+ options []byte
+ bytesSentCounter *WriteCounter
+ ClientConn *ClientConn
+ }
+ tests := []struct {
+ name string
+ fields fields
+ want string
+ }{
+ {
+ name: "50% complete 198MB file",
+ fields: fields{
+ FileName: []byte("MasterOfOrionII1.4.0."),
+ TransferSize: func() []byte { b := make([]byte, 4); binary.BigEndian.PutUint32(b, 207618048); return b }(),
+ bytesSentCounter: &WriteCounter{
+ Total: 103809024,
+ },
+ },
+ want: "MasterOfOrionII1.4.0. 50% 198.0M\n",
+ },
+ {
+ name: "25% complete 512KB file",
+ fields: fields{
+ FileName: []byte("ExampleFile.txt"),
+ TransferSize: func() []byte { b := make([]byte, 4); binary.BigEndian.PutUint32(b, 524288); return b }(),
+ bytesSentCounter: &WriteCounter{
+ Total: 131072,
+ },
+ },
+ want: "ExampleFile.txt 25% 512K\n",
+ },
+ {
+ name: "100% complete 2GB file",
+ fields: fields{
+ FileName: []byte("LargeFile.dat"),
+ TransferSize: func() []byte { b := make([]byte, 4); binary.BigEndian.PutUint32(b, 2147483648); return b }(),
+ bytesSentCounter: &WriteCounter{
+ Total: 2147483648,
+ },
+ },
+ want: "LargeFile.dat 100% 2048.0M\n",
+ },
+ {
+ name: "0% complete 1MB file",
+ fields: fields{
+ FileName: []byte("NewDocument.docx"),
+ TransferSize: func() []byte { b := make([]byte, 4); binary.BigEndian.PutUint32(b, 1048576); return b }(),
+ bytesSentCounter: &WriteCounter{
+ Total: 0,
+ },
+ },
+ want: "NewDocument.docx 0% 1.0M\n",
+ },
+ }
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ ft := &FileTransfer{
+ FileName: tt.fields.FileName,
+ FilePath: tt.fields.FilePath,
+ refNum: tt.fields.refNum,
+ Type: tt.fields.Type,
+ TransferSize: tt.fields.TransferSize,
+ FolderItemCount: tt.fields.FolderItemCount,
+ fileResumeData: tt.fields.fileResumeData,
+ options: tt.fields.options,
+ bytesSentCounter: tt.fields.bytesSentCounter,
+ ClientConn: tt.fields.ClientConn,
+ }
+ assert.Equalf(t, tt.want, ft.String(), "String()")
+ })
+ }
+}