From 1b02e36595c50792f7051bc6577c985ff11aa1c4 Mon Sep 17 00:00:00 2001 From: Tomas Lycken Date: Wed, 1 Nov 2017 13:02:28 +0100 Subject: [PATCH] Fix build warning (#38) * Add task extensions to enumerate IEnumerables * Fix build warning by checking count as well * Add NuGet metadata to new package --- .../EventStoreTests/ExtraMetaTests.cs | 6 ++++- src/tlycken.Extensions/TaskExtensions.cs | 22 +++++++++++++++++++ .../tlycken.Extensions.csproj | 13 +++++++++++ 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 src/tlycken.Extensions/TaskExtensions.cs diff --git a/src/RdbmsEventStore.EntityFramework.Tests/EventStoreTests/ExtraMetaTests.cs b/src/RdbmsEventStore.EntityFramework.Tests/EventStoreTests/ExtraMetaTests.cs index f3f97d3..f2ffd1f 100644 --- a/src/RdbmsEventStore.EntityFramework.Tests/EventStoreTests/ExtraMetaTests.cs +++ b/src/RdbmsEventStore.EntityFramework.Tests/EventStoreTests/ExtraMetaTests.cs @@ -64,7 +64,11 @@ public async Task ReturnsEventsAccordingToQuery(string streamId, long expectedCo public async Task ReturnsEventsWithMetadata(string streamId, long expectedCount) { var store = _fixture.BuildEventStore(_dbContext) as IEventStore; - var events = await store.Events(streamId, es => es.Where(e => e.ExtraMeta.StartsWith("Foo"))); + var events = await store + .Events(streamId, es => es.Where(e => e.ExtraMeta.StartsWith("Foo"))) + .ToReadOnlyCollection(); + + Assert.Equal(expectedCount, events.Count); Assert.All(events, @event => Assert.StartsWith("Foo", @event.ExtraMeta)); } diff --git a/src/tlycken.Extensions/TaskExtensions.cs b/src/tlycken.Extensions/TaskExtensions.cs new file mode 100644 index 0000000..622a4b4 --- /dev/null +++ b/src/tlycken.Extensions/TaskExtensions.cs @@ -0,0 +1,22 @@ +using System.Collections.Generic; +using System.Linq; + +// ReSharper disable once CheckNamespace +namespace System.Threading.Tasks +{ + public static class TaskExtensions + { + /// + /// Appends a continuation to the task, which iterates the resulting into a . + /// + public static Task> ToList(this Task> task) + => task.ContinueWith(t => t.Result.ToList()); + + /// + /// Appends a continuation to the task, which iterates the resulting into a + /// and returns it as an . + /// + public static Task> ToReadOnlyCollection(this Task> task) + => task.ContinueWith(t => t.Result.ToList() as IReadOnlyCollection); + } +} \ No newline at end of file diff --git a/src/tlycken.Extensions/tlycken.Extensions.csproj b/src/tlycken.Extensions/tlycken.Extensions.csproj index 9f5c4f4..343dd42 100644 --- a/src/tlycken.Extensions/tlycken.Extensions.csproj +++ b/src/tlycken.Extensions/tlycken.Extensions.csproj @@ -2,6 +2,19 @@ netstandard2.0 + + 0.0.0 + 0.0.0 + + tlycken.Extensions + Extensions for the .NET Standard Library + Tomas Lycken (@tlycken) + 2017 Tomas Lycken + https://github.com/tlycken/RdbmsEventStore + https://github.com/tlycken/RdbmsEventStore + https://github.com/tlycken/RdbmsEventStore/blob/master/LICENSE.md + True + True