Skip to content

Commit 0865a05

Browse files
committed
add tests (closes #34)
1 parent 943c35a commit 0865a05

File tree

2 files changed

+54
-0
lines changed

2 files changed

+54
-0
lines changed

src/TinkState/Tests/TestDictionary.cs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,36 @@ string s(IReadOnlyDictionary<int, string> d)
221221
Assert.That(auto.Value, Is.EqualTo("0-!,1-a,3-c"));
222222
}
223223

224+
[Test]
225+
public void TestObserveAndDictionaryUsedInAuto()
226+
{
227+
var dict = Observable.Dictionary<int, string>();
228+
dict[1] = "a";
229+
dict[2] = "b";
230+
var dictAsObservable = dict.Observe();
231+
232+
List<string> Sorted(IEnumerable<string> values)
233+
{
234+
var list = new List<string>(values);
235+
list.Sort();
236+
return list;
237+
}
238+
239+
var auto = Observable.Auto(() =>
240+
{
241+
var a = string.Join(',', Sorted(dict.Values.ToArray()));
242+
var b = string.Join('.', Sorted(dictAsObservable.Value.Values));
243+
return $"{a}-{b}";
244+
});
245+
246+
Assert.That(auto.Value, Is.EqualTo("a,b-a.b"));
247+
248+
dict[1] = "A";
249+
dict[2] = "B";
250+
dict[3] = "C";
251+
Assert.That(auto.Value, Is.EqualTo("A,B,C-A.B.C"));
252+
}
253+
224254
void Helper<R>(Func<R> compute, R initialExpectedValue, Action<Action<R, Action>> tests)
225255
{
226256
var auto = Observable.Auto(compute);

src/TinkState/Tests/TestList.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,30 @@ public void TestObserve()
176176
Assert.That(auto.Value, Is.EqualTo("0,1,2,3"));
177177
}
178178

179+
180+
[Test]
181+
public void TestObserveAndListUsedInAuto()
182+
{
183+
var list = Observable.List<string>();
184+
list.Add("a");
185+
list.Add("b");
186+
var listAsObservable = list.Observe();
187+
188+
var auto = Observable.Auto(() =>
189+
{
190+
var a = string.Join(',', list);
191+
var b = string.Join('.', listAsObservable.Value);
192+
return $"{a}-{b}";
193+
});
194+
195+
Assert.That(auto.Value, Is.EqualTo("a,b-a.b"));
196+
197+
list[0] = "A";
198+
list[1] = "B";
199+
list.Add("C");
200+
Assert.That(auto.Value, Is.EqualTo("A,B,C-A.B.C"));
201+
}
202+
179203
void Helper<R>(Func<R> compute, R initialExpectedValue, Action<Action<R, Action>> tests)
180204
{
181205
var auto = Observable.Auto(compute);

0 commit comments

Comments
 (0)