-
-
Notifications
You must be signed in to change notification settings - Fork 110
/
ApprovalsTest.cs
108 lines (91 loc) · 2.83 KB
/
ApprovalsTest.cs
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
[TestFixture]
public class ApprovalsTest
{
static readonly string[] text = ["abc", "123", "!@#"];
// begin-snippet: simple_verify
[Test]
public void Text() =>
Approvals.Verify("should be approved");
// end-snippet
[Test]
public void VerifyWithExtension() =>
Approvals.VerifyWithExtension("should,be,approved", ".csv");
[Test]
public void EnumerableWithLabel() =>
Approvals.VerifyAll(text, "collection");
[Test]
public void TestExistingFile()
{
var path = PathUtilities.GetDirectoryForCaller();
var copy = path + "copyOfa.txt";
File.Copy(path + "a.txt", copy, true);
Approvals.VerifyFile(copy);
}
[Test]
public void TestBytes()
{
var path = PathUtilities.GetDirectoryForCaller();
Approvals.VerifyBinaryFile(File.ReadAllBytes(path + "a.png"), "png");
}
[Test]
public void EnumerableWithLabelAndFormatter() =>
Approvals.VerifyAll(text, "collection", t => "" + t.Length);
[Test]
public void EnumerableWithHeaderAndFormatter()
{
var word = "Llewellyn";
Approvals.VerifyAll(word, word.ToCharArray(), c => c + " => " + (int) c);
}
[Test]
public void VerifyAllWithNull()
{
var words = new[] {"abc", null, "123", "!@#"};
Approvals.VerifyAll(words, "");
}
[Test]
public void VerifyAllNull()
{
string[] words = null;
Approvals.VerifyAll(words, "words");
}
[Test]
public void VerifyNullDictionary()
{
Dictionary<string, int> words = null;
Approvals.VerifyAll(words);
}
[Test]
public void DictionarySimple() =>
Approvals.VerifyAll(FireFlyMap());
[Test]
public void Dictionary() =>
Approvals.VerifyAll("Firefly", FireFlyMap());
[Test]
public void DictionaryCustom() =>
Approvals.VerifyAll("Firefly", FireFlyMap(), (k, v) => $"\"{k}\" => {v}");
[Test]
public void DictionaryCustomNoHeader() =>
Approvals.VerifyAll(FireFlyMap(), (k, v) => $"\"{k}\" => {v}");
static Dictionary<string, string> FireFlyMap() =>
new()
{
{"Caption", "Mal"},
{"2nd In Command", "Zoey"},
{"Pilot", "Wash"},
{"Companion", "Inara"},
{"Muscle", "Jayne"},
{"Mechanic", "Kaylee"},
{"Doctor", "Simon"},
{"Pastor", "Book"},
{"Stowaway", "River"}
};
[Test]
public void EnumerableWithFormatter() =>
Approvals.VerifyAll(text, t => "" + t.Length);
[Test]
public void JsonText()
{
var json = """{"GivenNames":"John","FamilyName":"Smith","Spouse":"Jill","Address":{"Street":"1 Puddle Lane","Suburb":null,"Country":"USA"},"Children":["Sam","Mary"],"Title":"Mr"}""";
Approvals.VerifyJson(json);
}
}