Skip to content

Commit 0d7ec2a

Browse files
committed
Add kv1 -> kv3 test
1 parent 239a2e6 commit 0d7ec2a

File tree

3 files changed

+120
-0
lines changed

3 files changed

+120
-0
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
<!-- kv3 encoding:text:version{e21c7f3c-8a33-41c5-9977-a76d3a32aa0d} format:generic:version{7412167c-06e9-4698-aff2-e63eb59037e7} -->
2+
{
3+
arrayValue = {
4+
0 = "a"
5+
1 = "b"
6+
}
7+
arrayOnSingleLine = {
8+
0 = 16.7551
9+
1 = 20.3763
10+
2 = 19.6448
11+
}
12+
arrayNoSpace = {
13+
0 = 1.3763
14+
1 = 19.6448
15+
}
16+
arrayMixedTypes = {
17+
0 = "a"
18+
1 = "1"
19+
2 = "True"
20+
3 = "False"
21+
4 = ""
22+
5 = {
23+
foo = "bar"
24+
}
25+
6 = {
26+
0 = "1"
27+
1 = "3"
28+
2 = "3"
29+
3 = "7"
30+
}
31+
7 = "11 FF"
32+
8 = "hello.world"
33+
9 = """
34+
multiline
35+
string
36+
"""
37+
10 = -69.42
38+
}
39+
test = "success"
40+
test = "success"
41+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<!-- kv3 encoding:text:version{e21c7f3c-8a33-41c5-9977-a76d3a32aa0d} format:generic:version{7412167c-06e9-4698-aff2-e63eb59037e7} -->
2+
{
3+
foo = "bar"
4+
bar = "foo"
5+
uppercase = "foo"
6+
flaggedNumber = "-1234"
7+
multipleFlags = "cool value"
8+
soundEvent = "event sound"
9+
noFlags = "5"
10+
flaggedObject = {
11+
1 = "test1"
12+
2 = "test2"
13+
3 = {
14+
0 = "test3"
15+
}
16+
4 = "test4"
17+
}
18+
test = "success"
19+
test = "success"
20+
}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
using System;
2+
using System.IO;
3+
using NUnit.Framework;
4+
5+
namespace ValveKeyValue.Test.TextKV3
6+
{
7+
class Kv1ToKv3TestCase
8+
{
9+
[Test]
10+
public void SerializesBasicObjects()
11+
{
12+
using var stream = TestDataHelper.OpenResource("TextKV3.flagged_value_kv1.vdf");
13+
var expected = TestDataHelper.ReadTextResource("TextKV3.flagged_value_from_kv1.kv3");
14+
15+
var kv1 = KVSerializer.Create(KVSerializationFormat.KeyValues1Text);
16+
var kv3 = KVSerializer.Create(KVSerializationFormat.KeyValues3Text);
17+
var data = kv1.Deserialize(stream);
18+
19+
data.Add(new KVObject("test", "success"));
20+
21+
string text;
22+
using (var ms = new MemoryStream())
23+
{
24+
kv3.Serialize(ms, data);
25+
26+
ms.Seek(0, SeekOrigin.Begin);
27+
using var reader = new StreamReader(ms);
28+
text = reader.ReadToEnd();
29+
}
30+
31+
Assert.That(text, Is.EqualTo(expected));
32+
}
33+
34+
[Test]
35+
public void SerializesAndKeepsLinearObjects() // TODO: Perhaps in the future KV1 arrays can use the KVArray type so it can be emitted as an array
36+
{
37+
using var stream = TestDataHelper.OpenResource("TextKV3.array_kv1.vdf");
38+
var expected = TestDataHelper.ReadTextResource("TextKV3.array_from_kv1.kv3");
39+
40+
var kv1 = KVSerializer.Create(KVSerializationFormat.KeyValues1Text);
41+
var kv3 = KVSerializer.Create(KVSerializationFormat.KeyValues3Text);
42+
var data = kv1.Deserialize(stream);
43+
44+
data.Add(new KVObject("test", "success"));
45+
46+
string text;
47+
using (var ms = new MemoryStream())
48+
{
49+
kv3.Serialize(ms, data);
50+
51+
ms.Seek(0, SeekOrigin.Begin);
52+
using var reader = new StreamReader(ms);
53+
text = reader.ReadToEnd();
54+
}
55+
56+
Assert.That(text, Is.EqualTo(expected));
57+
}
58+
}
59+
}

0 commit comments

Comments
 (0)