Describe the bug 馃悶
There is no Switch operator version for virtualized changesets IChangeSet<TObject, TKey, VirtualContext<TObject>>.
In this case default reactive Switch operator is used, so the test fails.
[Fact]
public void SwitchSet_Switch_Virtualized()
{
BehaviorSubject<bool> enableSubj = new(true);
SourceCache<int, int> cache = new(x => x);
cache.Edit(updater => updater.AddOrUpdate(Enumerable.Range(0, 100)));
SortExpressionComparer<int> comparer = SortExpressionComparer<int>.Ascending(x => x);
int count = 10;
IObservable<VirtualRequest> virtualReqStream
= Observable.Return(new VirtualRequest(0, count)).Concat(Observable.Never<VirtualRequest>());
IObservable<IChangeSet<int, int, VirtualContext<int>>> virtualizedChangeSet = cache.Connect()
.SortAndVirtualize(comparer, virtualReqStream);
IObservable<IChangeSet<int, int, VirtualContext<int>>> testStream = enableSubj
.Select(enable =>
{
if (!enable)
return Observable.Empty<IChangeSet<int, int, VirtualContext<int>>>();
return virtualizedChangeSet;
})
.Switch();
TestScheduler scheduler = new();
ITestableObserver<IChangeSet<int, int, VirtualContext<int>>> observer
= scheduler.CreateObserver<IChangeSet<int, int, VirtualContext<int>>>();
testStream.Subscribe(observer);
enableSubj.OnNext(false);
Assert.Collection(
observer.Messages,
msg =>
{
Assert.Equal(NotificationKind.OnNext, msg.Value.Kind);
Assert.Equal(count, msg.Value.Value.Adds);
Assert.Equal(0, msg.Value.Value.Removes);
},
msg =>
{
Assert.Equal(NotificationKind.OnNext, msg.Value.Kind);
Assert.Equal(0, msg.Value.Value.Adds);
Assert.Equal(count, msg.Value.Value.Removes);
}
);
}
DynamicData Version
9.4.33
Describe the bug 馃悶
There is no Switch operator version for virtualized changesets
IChangeSet<TObject, TKey, VirtualContext<TObject>>.In this case default reactive
Switchoperator is used, so the test fails.DynamicData Version
9.4.33