v2 / vlib / v / util / surrounder_test.v
36 lines · 31 sloc · 880 bytes · 19f080ffb8f8f01976692f6b79d9f857c685e109
Raw
1module util
2
3import strings
4
5fn test_creation() {
6 mut sr0 := new_surrounder(0)
7 assert sr0.befores.cap == 0
8 assert sr0.afters.cap == 0
9
10 mut sr10 := new_surrounder(10)
11 assert sr10.befores.cap == 10
12 assert sr10.afters.cap == 10
13}
14
15fn test_before_and_after() {
16 mut sr := new_surrounder(0)
17 sr.add('string tmp1;', 'string_free(&tmp1);')
18 sr.add('string tmp2;', 'string_free(&tmp2);')
19 start := sr.before()
20 finish := sr.after()
21 assert start == 'string tmp1;\nstring tmp2;\n'
22 assert finish == 'string_free(&tmp2);\nstring_free(&tmp1);\n'
23}
24
25fn test_string_builder() {
26 mut sr := new_surrounder(0)
27 sr.add('x1', 'free x1')
28 sr.add('x2', 'free x2')
29 sr.add('x3', 'free x3')
30 mut sb := strings.new_builder(512)
31 sr.builder_write_befores(mut sb)
32 sb.writeln('middle')
33 sr.builder_write_afters(mut sb)
34 s := sb.str()
35 assert s == 'x1\nx2\nx3\nmiddle\nfree x3\nfree x2\nfree x1\n'
36}
37