Skip to content

Commit b2a35a9

Browse files
ig-sinicynandrewvk
authored andcommitted
Exception checks for disposable tests
1 parent c6042f9 commit b2a35a9

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

Main/tests/DisposableTests.cs

+18-6
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,26 @@
11
using System;
2+
using System.Linq;
23

34
using NUnit.Framework;
45

56
namespace CodeJam
67
{
7-
[TestFixture(Category="Disposable")]
8+
[TestFixture(Category = "Disposable")]
89
public static class DisposableTests
910
{
1011
[Test]
1112
public static void TestDisposable()
1213
{
1314
var value = 0;
1415
var disposable = Disposable.Create(() => value++);
15-
1616
// Fails if Disposable.Create returns struct
1717
var disposable2 = disposable;
1818

1919
Assert.That(value, Is.EqualTo(0));
20+
2021
disposable.Dispose();
2122
Assert.That(value, Is.EqualTo(1));
23+
2224
disposable.Dispose();
2325
Assert.That(value, Is.EqualTo(1));
2426

@@ -37,14 +39,17 @@ public static void TestDisposableThrow()
3739
if (value != 3)
3840
throw new InvalidOperationException();
3941
});
40-
4142
Assert.That(value, Is.EqualTo(0));
43+
4244
Assert.Throws<InvalidOperationException>(() => disposable.Dispose());
4345
Assert.That(value, Is.EqualTo(1));
46+
4447
Assert.Throws<InvalidOperationException>(() => disposable.Dispose());
4548
Assert.That(value, Is.EqualTo(2));
49+
4650
Assert.DoesNotThrow(() => disposable.Dispose());
4751
Assert.That(value, Is.EqualTo(3));
52+
4853
Assert.DoesNotThrow(() => disposable.Dispose());
4954
Assert.That(value, Is.EqualTo(3));
5055
}
@@ -68,26 +73,33 @@ public static void TestDisposableMerge()
6873
{
6974
value3++;
7075
if (value3 != 3)
71-
throw new InvalidOperationException();
76+
throw new InvalidOperationException("Test message");
7277
});
7378

7479
var disposable = Disposable.Merge(disposable1, disposable2, disposable3);
75-
7680
Assert.That(value1, Is.EqualTo(0));
7781
Assert.That(value2, Is.EqualTo(0));
7882
Assert.That(value3, Is.EqualTo(0));
79-
Assert.Throws<AggregateException>(() => disposable.Dispose());
83+
84+
var ex = Assert.Throws<AggregateException>(() => disposable.Dispose());
85+
Assert.That(ex.InnerExceptions.Count, Is.EqualTo(1));
86+
Assert.That(
87+
ex.InnerExceptions.Cast<InvalidOperationException>().Single().Message,
88+
Is.EqualTo("Test message"));
8089
Assert.That(value1, Is.EqualTo(2));
8190
Assert.That(value2, Is.EqualTo(1));
8291
Assert.That(value3, Is.EqualTo(1));
92+
8393
Assert.Throws<AggregateException>(() => disposable.Dispose());
8494
Assert.That(value1, Is.EqualTo(2));
8595
Assert.That(value2, Is.EqualTo(1));
8696
Assert.That(value3, Is.EqualTo(2));
97+
8798
Assert.DoesNotThrow(() => disposable.Dispose());
8899
Assert.That(value1, Is.EqualTo(2));
89100
Assert.That(value2, Is.EqualTo(1));
90101
Assert.That(value3, Is.EqualTo(3));
102+
91103
Assert.DoesNotThrow(() => disposable.Dispose());
92104
Assert.That(value1, Is.EqualTo(2));
93105
Assert.That(value2, Is.EqualTo(1));

0 commit comments

Comments
 (0)