]> git.r.bdr.sh - rbdr/mobius/blame_incremental - hotline/file_transfer_test.go
Fix Windows compatibility for -init flag
[rbdr/mobius] / hotline / file_transfer_test.go
... / ...
CommitLineData
1package hotline
2
3import (
4 "encoding/binary"
5 "github.com/stretchr/testify/assert"
6 "testing"
7)
8
9func TestFileTransfer_String(t *testing.T) {
10 type fields struct {
11 FileName []byte
12 FilePath []byte
13 refNum [4]byte
14 Type int
15 TransferSize []byte
16 FolderItemCount []byte
17 fileResumeData *FileResumeData
18 options []byte
19 bytesSentCounter *WriteCounter
20 ClientConn *ClientConn
21 }
22 tests := []struct {
23 name string
24 fields fields
25 want string
26 }{
27 {
28 name: "50% complete 198MB file",
29 fields: fields{
30 FileName: []byte("MasterOfOrionII1.4.0."),
31 TransferSize: func() []byte { b := make([]byte, 4); binary.BigEndian.PutUint32(b, 207618048); return b }(),
32 bytesSentCounter: &WriteCounter{
33 Total: 103809024,
34 },
35 },
36 want: "MasterOfOrionII1.4.0. 50% 198.0M\n",
37 },
38 {
39 name: "25% complete 512KB file",
40 fields: fields{
41 FileName: []byte("ExampleFile.txt"),
42 TransferSize: func() []byte { b := make([]byte, 4); binary.BigEndian.PutUint32(b, 524288); return b }(),
43 bytesSentCounter: &WriteCounter{
44 Total: 131072,
45 },
46 },
47 want: "ExampleFile.txt 25% 512K\n",
48 },
49 {
50 name: "100% complete 2GB file",
51 fields: fields{
52 FileName: []byte("LargeFile.dat"),
53 TransferSize: func() []byte { b := make([]byte, 4); binary.BigEndian.PutUint32(b, 2147483648); return b }(),
54 bytesSentCounter: &WriteCounter{
55 Total: 2147483648,
56 },
57 },
58 want: "LargeFile.dat 100% 2048.0M\n",
59 },
60 {
61 name: "0% complete 1MB file",
62 fields: fields{
63 FileName: []byte("NewDocument.docx"),
64 TransferSize: func() []byte { b := make([]byte, 4); binary.BigEndian.PutUint32(b, 1048576); return b }(),
65 bytesSentCounter: &WriteCounter{
66 Total: 0,
67 },
68 },
69 want: "NewDocument.docx 0% 1.0M\n",
70 },
71 }
72 for _, tt := range tests {
73 t.Run(tt.name, func(t *testing.T) {
74 ft := &FileTransfer{
75 FileName: tt.fields.FileName,
76 FilePath: tt.fields.FilePath,
77 refNum: tt.fields.refNum,
78 Type: tt.fields.Type,
79 TransferSize: tt.fields.TransferSize,
80 FolderItemCount: tt.fields.FolderItemCount,
81 fileResumeData: tt.fields.fileResumeData,
82 options: tt.fields.options,
83 bytesSentCounter: tt.fields.bytesSentCounter,
84 ClientConn: tt.fields.ClientConn,
85 }
86 assert.Equalf(t, tt.want, ft.String(), "String()")
87 })
88 }
89}