-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwriteembbededfile_test.go
157 lines (132 loc) · 5.67 KB
/
writeembbededfile_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
package raft
import (
"testing"
"io/fs"
"strings"
"time"
"github.com/reiver/go-strfs"
)
func TestWriteEmbbededFile(t *testing.T) {
tests := []struct{
Name string
Content string
Expected string
}{
{
Name: "empty.txt",
Content: "",
Expected:
"empty.txt" +"\n"+
"0" +"\n"+
""+
"\n\n",
},
{
Name: "apple.txt",
Content: "APPLE",
Expected:
"apple.txt" +"\n"+
"5" +"\n"+
"APPLE"+
"\n\n",
},
{
Name: "banana.txt",
Content: "BANANA\n",
Expected:
"banana.txt" +"\n"+
"7" +"\n"+
"BANANA\n"+
"\n\n",
},
{
Name: "cherry.txt",
Content: "CHERRY\n\n",
Expected:
"cherry.txt" +"\n"+
"8" +"\n"+
"CHERRY\n\n"+
"\n\n",
},
{
Name: "README.md",
Content: "Hello world!",
Expected:
"README.md" +"\n"+
"12" +"\n"+
"Hello world!"+
"\n\n",
},
{
Name: "SOMETHING.md",
Content:
"# Title" +"\n"+
"" +"\n"+
"Hello!" +"\n"+
"" +"\n",
Expected:
"SOMETHING.md" +"\n"+
"17" +"\n"+
"# Title" +"\n"+
"" +"\n"+
"Hello!" +"\n"+
"" +"\n"+
"\n\n",
},
{
Name: "article.txt",
Content:
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Interdum velit laoreet id donec ultrices tincidunt arcu non sodales. Cras semper auctor neque vitae tempus quam pellentesque nec nam. Cursus turpis massa tincidunt dui ut. Diam vel quam elementum pulvinar etiam non quam. Gravida neque convallis a cras semper. Ornare massa eget egestas purus. Tempor id eu nisl nunc mi ipsum faucibus vitae aliquet. Fames ac turpis egestas maecenas pharetra. Arcu bibendum at varius vel pharetra vel turpis nunc. Integer quis auctor elit sed vulputate mi. Eget velit aliquet sagittis id consectetur purus ut faucibus. Sapien pellentesque habitant morbi tristique senectus."+
"\n"+
"\n"+
"Lorem mollis aliquam ut porttitor leo a diam sollicitudin tempor. Quis commodo odio aenean sed adipiscing. Commodo quis imperdiet massa tincidunt nunc. Quam quisque id diam vel quam elementum pulvinar etiam non. Elit ut aliquam purus sit amet luctus venenatis lectus. Sit amet mauris commodo quis. Placerat vestibulum lectus mauris ultrices eros in. Tristique sollicitudin nibh sit amet commodo nulla facilisi nullam vehicula. Augue interdum velit euismod in. Tellus pellentesque eu tincidunt tortor. Commodo viverra maecenas accumsan lacus vel facilisis. Venenatis a condimentum vitae sapien pellentesque habitant morbi. Et ligula ullamcorper malesuada proin libero nunc consequat interdum varius. Tellus integer feugiat scelerisque varius. Bibendum enim facilisis gravida neque convallis. Nisl nisi scelerisque eu ultrices vitae auctor eu."+
"\n",
Expected:
"article.txt" +"\n"+
"1573" +"\n"+
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Interdum velit laoreet id donec ultrices tincidunt arcu non sodales. Cras semper auctor neque vitae tempus quam pellentesque nec nam. Cursus turpis massa tincidunt dui ut. Diam vel quam elementum pulvinar etiam non quam. Gravida neque convallis a cras semper. Ornare massa eget egestas purus. Tempor id eu nisl nunc mi ipsum faucibus vitae aliquet. Fames ac turpis egestas maecenas pharetra. Arcu bibendum at varius vel pharetra vel turpis nunc. Integer quis auctor elit sed vulputate mi. Eget velit aliquet sagittis id consectetur purus ut faucibus. Sapien pellentesque habitant morbi tristique senectus."+
"\n"+
"\n"+
"Lorem mollis aliquam ut porttitor leo a diam sollicitudin tempor. Quis commodo odio aenean sed adipiscing. Commodo quis imperdiet massa tincidunt nunc. Quam quisque id diam vel quam elementum pulvinar etiam non. Elit ut aliquam purus sit amet luctus venenatis lectus. Sit amet mauris commodo quis. Placerat vestibulum lectus mauris ultrices eros in. Tristique sollicitudin nibh sit amet commodo nulla facilisi nullam vehicula. Augue interdum velit euismod in. Tellus pellentesque eu tincidunt tortor. Commodo viverra maecenas accumsan lacus vel facilisis. Venenatis a condimentum vitae sapien pellentesque habitant morbi. Et ligula ullamcorper malesuada proin libero nunc consequat interdum varius. Tellus integer feugiat scelerisque varius. Bibendum enim facilisis gravida neque convallis. Nisl nisi scelerisque eu ultrices vitae auctor eu."+
"\n"+
"\n\n",
},
}
for testNumber, test := range tests {
var file fs.File
{
var content = strfs.CreateContent(test.Content)
var regularfile = strfs.RegularFile{
FileContent: content,
FileName: test.Name,
FileModTime: time.Date(2022, 12, 12, 10, 30, 14, 2, time.UTC),
}
file = ®ularfile
}
var buffer strings.Builder
err := writeEmbeddedFile(&buffer, test.Name, int64(len(test.Content)), file)
if nil != err {
t.Errorf("For test #%d, did not expect an error but actually got one.", testNumber)
t.Logf("ERROR: %s", err)
t.Logf("FILE-NAME: %q", test.Name)
t.Logf("FILE-CONTENT: %q", test.Content)
t.Logf("EXPECTED-EMBEDDED-FILE:\n%q", test.Expected)
t.Logf("EXPECTED-EMBEDDED-FILE:\n%s", test.Expected)
continue
}
{
actual := buffer.String()
expected := test.Expected
if expected != actual {
t.Errorf("For test #%d, the actual written embedded file it not what was expected.", testNumber)
t.Logf("EXPECTED: %q", expected)
t.Logf("ACTUAL: %q", actual)
t.Logf("FILE-CONTENT: %q", test.Content)
t.Logf("FILE-NAME: %q", test.Name)
t.Logf("EXPECTED:\n%s", expected)
t.Logf("ACTUAL:\n%s", actual)
continue
}
}
}
}