Skip to content

Commit fbf948d

Browse files
committed
Change to struct
1 parent e1ff45e commit fbf948d

23 files changed

+648
-98
lines changed

ValveKeyValue/ValveKeyValue.Test/ConversionCoverageTestCase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -406,7 +406,7 @@ public void DictBackedCollectionSetNullStoresNullValue()
406406

407407
Assert.That(data, Has.Count.EqualTo(2));
408408

409-
data["key1"] = null!;
409+
data["key1"] = KVObject.Null();
410410

411411
Assert.That(data, Has.Count.EqualTo(2));
412412
using (Assert.EnterMultipleScope())

ValveKeyValue/ValveKeyValue.Test/EdgeCaseTestCase.cs

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ public void ChainedWriteCreatesNewChildInExistingCollection()
1818
var obj = KVObject.ListCollection();
1919
obj.Add("a", inner);
2020

21-
obj["a"]["b"] = 42;
21+
var a = obj["a"];
22+
a["b"] = 42;
2223

2324
using (Assert.EnterMultipleScope())
2425
{
@@ -98,7 +99,7 @@ public void IndexerSetNullStoresNullValue()
9899
obj.Add("a", "1");
99100
obj.Add("b", "2");
100101

101-
obj["a"] = null!;
102+
obj["a"] = KVObject.Null();
102103

103104
Assert.That(obj, Has.Count.EqualTo(2));
104105
using (Assert.EnterMultipleScope())
@@ -114,7 +115,7 @@ public void IndexerSetNullOnMissingKeyStoresNullValue()
114115
var obj = KVObject.ListCollection();
115116
obj.Add("a", "1");
116117

117-
obj["nonexistent"] = null!;
118+
obj["nonexistent"] = KVObject.Null();
118119

119120
using (Assert.EnterMultipleScope())
120121
{
@@ -367,7 +368,7 @@ public void EmptyArrayIteratesEmpty()
367368
public void AddNullElementToArrayStoresNullType()
368369
{
369370
var obj = KVObject.Array();
370-
obj.Add((KVObject)null!);
371+
obj.Add(KVObject.Null());
371372

372373
Assert.That(obj, Has.Count.EqualTo(1));
373374
Assert.That(obj[0].IsNull, Is.True);
@@ -380,8 +381,7 @@ public void AddNullElementToArrayStoresNullType()
380381
[Test]
381382
public void FlagMutationPreservesIntValue()
382383
{
383-
KVObject val = 42;
384-
val.Flag = KVFlag.Resource;
384+
KVObject val = new KVObject(42).WithFlag(KVFlag.Resource);
385385

386386
using (Assert.EnterMultipleScope())
387387
{
@@ -394,8 +394,7 @@ public void FlagMutationPreservesIntValue()
394394
[Test]
395395
public void FlagMutationPreservesStringValue()
396396
{
397-
KVObject val = "hello";
398-
val.Flag = KVFlag.SoundEvent;
397+
KVObject val = new KVObject("hello").WithFlag(KVFlag.SoundEvent);
399398

400399
using (Assert.EnterMultipleScope())
401400
{
@@ -409,10 +408,8 @@ public void FlagMutationPreservesStringValue()
409408
public void FlagMutationOnSeparateObjects()
410409
{
411410
KVObject val = 99;
412-
KVObject withResource = 99;
413-
withResource.Flag = KVFlag.Panorama;
414-
KVObject withBoth = 99;
415-
withBoth.Flag = KVFlag.EntityName;
411+
KVObject withResource = new KVObject(99).WithFlag(KVFlag.Panorama);
412+
KVObject withBoth = new KVObject(99).WithFlag(KVFlag.EntityName);
416413

417414
using (Assert.EnterMultipleScope())
418415
{
@@ -439,7 +436,7 @@ public void TryGetValueReturnsFalseForMissing()
439436
using (Assert.EnterMultipleScope())
440437
{
441438
Assert.That(result, Is.False);
442-
Assert.That(child, Is.Null);
439+
Assert.That(child.IsNull, Is.True);
443440
}
444441
}
445442

@@ -453,7 +450,7 @@ public void TryGetValueReturnsFalseOnScalar()
453450
using (Assert.EnterMultipleScope())
454451
{
455452
Assert.That(result, Is.False);
456-
Assert.That(child, Is.Null);
453+
Assert.That(child.IsNull, Is.True);
457454
}
458455
}
459456

@@ -472,8 +469,8 @@ public void TryGetValueReturnsTrueForExisting()
472469
using (Assert.EnterMultipleScope())
473470
{
474471
Assert.That(result, Is.True);
475-
Assert.That(child, Is.Not.Null);
476-
Assert.That((string)child!, Is.EqualTo("value"));
472+
Assert.That(child.IsNull, Is.False);
473+
Assert.That((string)child, Is.EqualTo("value"));
477474
}
478475
}
479476

@@ -487,10 +484,10 @@ public void TryGetValueOnDictBackedCollection()
487484
using (Assert.EnterMultipleScope())
488485
{
489486
Assert.That(obj.TryGetValue("key1", out var found), Is.True);
490-
Assert.That((string)found!, Is.EqualTo("value1"));
487+
Assert.That((string)found, Is.EqualTo("value1"));
491488

492489
Assert.That(obj.TryGetValue("missing", out var notFound), Is.False);
493-
Assert.That(notFound, Is.Null);
490+
Assert.That(notFound.IsNull, Is.True);
494491
}
495492
}
496493

@@ -575,7 +572,7 @@ public void TryAddAlwaysReturnsTrueForListCollection()
575572
public void AddNullValueStoresNullType()
576573
{
577574
var obj = KVObject.ListCollection();
578-
obj.Add("key", null!);
575+
obj.Add("key", KVObject.Null());
579576

580577
Assert.That(obj, Has.Count.EqualTo(1));
581578
Assert.That(obj["key"].IsNull, Is.True);
@@ -585,7 +582,7 @@ public void AddNullValueStoresNullType()
585582
public void TryAddNullValueStoresNullType()
586583
{
587584
var obj = KVObject.Collection();
588-
obj.TryAdd("key", null!);
585+
obj.TryAdd("key", KVObject.Null());
589586

590587
Assert.That(obj, Has.Count.EqualTo(1));
591588
Assert.That(obj["key"].IsNull, Is.True);
@@ -769,7 +766,7 @@ public void IndexerSetNullOnMissingKeyInDictCollectionStoresNullValue()
769766
var obj = KVObject.Collection();
770767
obj.Add("a", 1);
771768

772-
obj["nonexistent"] = null!;
769+
obj["nonexistent"] = KVObject.Null();
773770

774771
using (Assert.EnterMultipleScope())
775772
{

ValveKeyValue/ValveKeyValue.Test/KVObjectApiTestCase.cs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,9 @@ public void IndexerReturnsKVObjectForExistingKey()
1717
obj.Add("key", "value");
1818
var child = obj["key"];
1919

20-
Assert.That(child, Is.Not.Null);
2120
using (Assert.EnterMultipleScope())
2221
{
23-
Assert.That(child, Is.InstanceOf<KVObject>());
22+
Assert.That(child.IsNull, Is.False);
2423
Assert.That((string)child, Is.EqualTo("value"));
2524
}
2625
}
@@ -52,7 +51,8 @@ public void ChainedWriteModifiesTree()
5251
var obj = KVObject.ListCollection();
5352
obj.Add("a", inner);
5453

55-
obj["a"]["b"] = 42;
54+
var a = obj["a"];
55+
a["b"] = 42;
5656

5757
Assert.That((int)obj["a"]["b"], Is.EqualTo(42));
5858
}
@@ -374,8 +374,7 @@ public void NullKVObjectValueTypeIsNull()
374374
[Test]
375375
public void FlagMutationPreservesValueType()
376376
{
377-
KVObject value = 42;
378-
value.Flag = KVFlag.Resource;
377+
KVObject value = new KVObject(42).WithFlag(KVFlag.Resource);
379378

380379
using (Assert.EnterMultipleScope())
381380
{

ValveKeyValue/ValveKeyValue.Test/KVObjectCastTestCase.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -265,15 +265,15 @@ static IEnumerable CommonFailures
265265
}
266266

267267
[Test]
268-
public void CastingNullKVObjectToStringThrows()
268+
public void CastingNullKVObjectToStringReturnsNullString()
269269
{
270-
Assert.That(() => (string)(KVObject)null!, Throws.InstanceOf<NullReferenceException>());
270+
Assert.That((string)KVObject.Null(), Is.EqualTo("null"));
271271
}
272272

273273
[Test]
274274
public void CastingNullKVObjectToInt32Throws()
275275
{
276-
Assert.That(() => (int)(KVObject)null!, Throws.InstanceOf<NullReferenceException>());
276+
Assert.That(() => (int)KVObject.Null(), Throws.InstanceOf<NotSupportedException>());
277277
}
278278

279279
[TestCase(typeof(bool))]

0 commit comments

Comments
 (0)