Skip to content

Commit 0ee2035

Browse files
quinmarsOren Novotny
authored andcommitted
Test disposal order of Finally
1 parent 31e6aa8 commit 0ee2035

File tree

1 file changed

+44
-0
lines changed
  • Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable

1 file changed

+44
-0
lines changed

Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/FinallyTest.cs

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
// See the LICENSE file in the project root for more information.
44

55
using System;
6+
using System.Reactive;
67
using System.Reactive.Linq;
78
using Microsoft.Reactive.Testing;
89
using Xunit;
@@ -142,5 +143,48 @@ public void Finally_Throw()
142143
);
143144
}
144145

146+
[Fact]
147+
public void Finally_DisposeOrder_Empty()
148+
{
149+
var order = "";
150+
Observable
151+
.Empty<Unit>()
152+
.Finally(() => order += "1")
153+
.Finally(() => order += "2")
154+
.Finally(() => order += "3")
155+
.Subscribe();
156+
157+
Assert.Equal("123", order);
158+
}
159+
160+
[Fact]
161+
public void Finally_DisposeOrder_Return()
162+
{
163+
var order = "";
164+
Observable
165+
.Return(Unit.Default)
166+
.Finally(() => order += "1")
167+
.Finally(() => order += "2")
168+
.Finally(() => order += "3")
169+
.Subscribe();
170+
171+
Assert.Equal("123", order);
172+
}
173+
174+
[Fact]
175+
public void Finally_DisposeOrder_Never()
176+
{
177+
var order = "";
178+
var d = Observable
179+
.Never<Unit>()
180+
.Finally(() => order += "1")
181+
.Finally(() => order += "2")
182+
.Finally(() => order += "3")
183+
.Subscribe();
184+
185+
d.Dispose();
186+
187+
Assert.Equal("123", order);
188+
}
145189
}
146190
}

0 commit comments

Comments
 (0)