diff --git a/src/Nitride.Temporal/FilterOutFutureInstant.cs b/src/Nitride.Temporal/FilterOutFutureInstant.cs index d46343a..a84688d 100644 --- a/src/Nitride.Temporal/FilterOutFutureInstant.cs +++ b/src/Nitride.Temporal/FilterOutFutureInstant.cs @@ -25,9 +25,9 @@ public partial class FilterOutFutureInstant : OperationBase { Instant now = this.Timekeeper.Clock.GetCurrentInstant(); - return input.SelectEntity( + return input.WhereEntity( ( - entity, - instant) => instant.CompareTo(now) <= 0 ? null : entity); + _, + instant) => instant.CompareTo(now) <= 0); } } diff --git a/tests/Nitride.Temporal.Tests/CreateDateIndexesTests.cs b/tests/Nitride.Temporal.Tests/CreateDateIndexesTests.cs index 4e247f2..1c0392e 100644 --- a/tests/Nitride.Temporal.Tests/CreateDateIndexesTests.cs +++ b/tests/Nitride.Temporal.Tests/CreateDateIndexesTests.cs @@ -12,11 +12,11 @@ using Xunit.Abstractions; namespace Nitride.Temporal.Tests; public class CreateDateIndexesTests : TemporalTestBase -{ - public CreateDateIndexesTests(ITestOutputHelper output) - : base(output) { - } + public CreateDateIndexesTests(ITestOutputHelper output) + : base(output) + { + } [Fact] public void MonthOnlyIndexes() diff --git a/tests/Nitride.Temporal.Tests/FilterOutFutureInstantTests.cs b/tests/Nitride.Temporal.Tests/FilterOutFutureInstantTests.cs new file mode 100644 index 0000000..d446cd3 --- /dev/null +++ b/tests/Nitride.Temporal.Tests/FilterOutFutureInstantTests.cs @@ -0,0 +1,49 @@ +using System.Collections.Generic; + +using Gallium; + +using NodaTime; +using NodaTime.Testing; + +using Xunit; +using Xunit.Abstractions; + +namespace Nitride.Temporal.Tests; + +public class FilterOutFutureInstantTests : TemporalTestBase +{ + public FilterOutFutureInstantTests(ITestOutputHelper output) + : base(output) + { + } + + [Fact] + public void FiltersOutFutureInstants() + { + // Create the context and set the timestamp to a constant value. + using TemporalTestContext context = this.CreateContext(); + Timekeeper timekeeper = context.Resolve(); + var now = Instant.FromUtc(2000, 6, 1, 0, 0); + + timekeeper.Clock = new FakeClock(now); + + // Create the entities. + List input = new() + { + new Entity() + .Add("past") + .Add(Instant.FromUtc(1990, 6, 1, 0, 0)), + new Entity() + .Add("future") + .Add(Instant.FromUtc(2020, 6, 1, 0, 0)), + }; + + // Create the operation and run it. + FilterOutFutureInstant op = context.Resolve(); + IEnumerable output = input.Run(op); + + // Verify the values. + Entity entity = Assert.Single(output); + Assert.Equal("past", entity.Get()); + } +}