diff options
Diffstat (limited to 'hotline/file_transfer_test.go')
| -rw-r--r-- | hotline/file_transfer_test.go | 89 |
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()") + }) + } +} |