]>
Commit | Line | Data |
---|---|---|
a2ef262a JH |
1 | package hotline |
2 | ||
3 | import ( | |
4 | "encoding/binary" | |
5 | "github.com/stretchr/testify/assert" | |
6 | "testing" | |
7 | ) | |
8 | ||
9 | func TestFileTransfer_String(t *testing.T) { | |
10 | type fields struct { | |
11 | FileName []byte | |
12 | FilePath []byte | |
13 | refNum [4]byte | |
d9bc63a1 | 14 | Type FileTransferType |
a2ef262a JH |
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 | } |