diff --git a/DynamicData.Tests/Cache/FilterControllerFixture.cs b/DynamicData.Tests/Cache/FilterControllerFixture.cs index cfb36a412..e3de3bd41 100644 --- a/DynamicData.Tests/Cache/FilterControllerFixture.cs +++ b/DynamicData.Tests/Cache/FilterControllerFixture.cs @@ -47,6 +47,20 @@ public void ChangeFilter() _results.Data.Items.All(p => p.Age <= 50).Should().BeTrue(); } + [Fact] + public void ReapplyFilterDoesntThrow() + { + using (var source = new SourceCache(p => p.Key)) + { + source.AddOrUpdate(Enumerable.Range(1, 100).Select(i => new Person("P" + i, i)).ToArray()); + + var ex = Record.Exception(() => source.Connect() + .Filter(Observable.Return(Unit.Default)) + .AsObservableCache()); + Assert.Null(ex); + } + } + [Fact] public void RepeatedApply() { diff --git a/DynamicData/Cache/ObservableCacheEx.cs b/DynamicData/Cache/ObservableCacheEx.cs index 11f92f672..600e6e680 100644 --- a/DynamicData/Cache/ObservableCacheEx.cs +++ b/DynamicData/Cache/ObservableCacheEx.cs @@ -1478,7 +1478,8 @@ public static IObservable> StartWithEmpty(this IObserv { if (source == null) throw new ArgumentNullException(nameof(source)); if (reapplyFilter == null) throw new ArgumentNullException(nameof(reapplyFilter)); - return new DynamicFilter(source, null, reapplyFilter).Run(); + var empty = Observable.Empty>(); + return new DynamicFilter(source, empty, reapplyFilter).Run(); }