diff --git a/Directory.Build.props b/Directory.Build.props new file mode 100644 index 0000000..2d37186 --- /dev/null +++ b/Directory.Build.props @@ -0,0 +1,11 @@ + + + 1.3.0-prerelease + Liam Morrow + Apache-2.0 + true + snupkg + true + https://github.com/LiamMorrow/OrgnalR + + diff --git a/src/OrgnalR.Backplane.GrainAdaptors/DelegateClientMessageObserver.cs b/src/OrgnalR.Backplane.GrainAdaptors/DelegateClientMessageObserver.cs index d6d3f28..c38caf5 100644 --- a/src/OrgnalR.Backplane.GrainAdaptors/DelegateClientMessageObserver.cs +++ b/src/OrgnalR.Backplane.GrainAdaptors/DelegateClientMessageObserver.cs @@ -20,7 +20,7 @@ public DelegateClientMessageObserver(string connectionId, Func OrgnalR.Backplane.GrainAdaptors - 1.2.1 Liam Morrow OrgnalR Backplane Grain Adaptors @@ -16,11 +15,6 @@ <Description> A core package of OrgnalR. You likely want one of either `OrgnalR.SignalR`, or `OrgnalR.OrleansSilo` </Description> - <PackageLicenseExpression>Apache-2.0</PackageLicenseExpression> - <IncludeSymbols>true</IncludeSymbols> - <SymbolPackageFormat>snupkg</SymbolPackageFormat> - <IncludeSource>true</IncludeSource> - <RepositoryUrl>https://github.com/LiamMorrow/OrgnalR</RepositoryUrl> </PropertyGroup> <ItemGroup> <ProjectReference Include="..\OrgnalR.Backplane.GrainInterfaces\OrgnalR.Backplane.GrainInterfaces.csproj" /> diff --git a/src/OrgnalR.Backplane.GrainImplementations/ClientGrain.cs b/src/OrgnalR.Backplane.GrainImplementations/ClientGrain.cs index 65cefeb..8b4af87 100644 --- a/src/OrgnalR.Backplane.GrainImplementations/ClientGrain.cs +++ b/src/OrgnalR.Backplane.GrainImplementations/ClientGrain.cs @@ -16,11 +16,11 @@ public class ClientGrain : Grain, IClientGrain OnFailBeforeDefunct = x => x.SubscriptionEnded() }; - private IRewindableMessageGrain<HubInvocationMessage> rewoundMessagesGrain = null!; + private IRewindableMessageGrain<MethodMessage> rewoundMessagesGrain = null!; public override Task OnActivateAsync() { - rewoundMessagesGrain = GrainFactory.GetGrain<IRewindableMessageGrain<HubInvocationMessage>>(this.GetPrimaryKeyString()); + rewoundMessagesGrain = GrainFactory.GetGrain<IRewindableMessageGrain<MethodMessage>>(this.GetPrimaryKeyString()); return base.OnActivateAsync(); } @@ -33,7 +33,7 @@ public override Task OnDeactivateAsync() return base.OnDeactivateAsync(); } - public async Task AcceptMessageAsync(HubInvocationMessage message, GrainCancellationToken cancellationToken) + public async Task AcceptMessageAsync(MethodMessage message, GrainCancellationToken cancellationToken) { var handle = await rewoundMessagesGrain.PushMessageAsync(message); observers.Notify(x => x.ReceiveMessage(message, handle)); diff --git a/src/OrgnalR.Backplane.GrainImplementations/OrgnalR.Backplane.GrainImplementations.csproj b/src/OrgnalR.Backplane.GrainImplementations/OrgnalR.Backplane.GrainImplementations.csproj index a13fa88..f73c9e9 100644 --- a/src/OrgnalR.Backplane.GrainImplementations/OrgnalR.Backplane.GrainImplementations.csproj +++ b/src/OrgnalR.Backplane.GrainImplementations/OrgnalR.Backplane.GrainImplementations.csproj @@ -8,7 +8,6 @@ </PropertyGroup> <PropertyGroup> <PackageId>OrgnalR.Backplane.GrainImplementations</PackageId> - <Version>1.2.1</Version> <Authors>Liam Morrow</Authors> <Title> OrgnalR Backplane Grain Implementations @@ -16,11 +15,6 @@ <Description> A core package of OrgnalR. You likely want one of either `OrgnalR.SignalR`, or `OrgnalR.OrleansSilo` </Description> - <PackageLicenseExpression>Apache-2.0</PackageLicenseExpression> - <IncludeSymbols>true</IncludeSymbols> - <SymbolPackageFormat>snupkg</SymbolPackageFormat> - <IncludeSource>true</IncludeSource> - <RepositoryUrl>https://github.com/LiamMorrow/OrgnalR</RepositoryUrl> </PropertyGroup> <ItemGroup> <ProjectReference Include="..\OrgnalR.Backplane.GrainInterfaces\OrgnalR.Backplane.GrainInterfaces.csproj" /> diff --git a/src/OrgnalR.Backplane.GrainInterfaces/IClientGrain.cs b/src/OrgnalR.Backplane.GrainInterfaces/IClientGrain.cs index 1c8f838..62af90a 100644 --- a/src/OrgnalR.Backplane.GrainInterfaces/IClientGrain.cs +++ b/src/OrgnalR.Backplane.GrainInterfaces/IClientGrain.cs @@ -7,7 +7,7 @@ namespace OrgnalR.Backplane.GrainInterfaces { public interface IClientGrain : IGrainWithStringKey { - Task AcceptMessageAsync(HubInvocationMessage message, GrainCancellationToken cancellationToken); + Task AcceptMessageAsync(MethodMessage message, GrainCancellationToken cancellationToken); /// <summary> /// Subscribes to messages for this client, optionally replaying all messages since a last seen message /// </summary> @@ -19,7 +19,7 @@ public interface IClientGrain : IGrainWithStringKey public interface IClientMessageObserver : IGrainObserver { - void ReceiveMessage(HubInvocationMessage message, MessageHandle handle); + void ReceiveMessage(MethodMessage message, MessageHandle handle); void SubscriptionEnded(); } } diff --git a/src/OrgnalR.Backplane.GrainInterfaces/OrgnalR.Backplane.GrainInterfaces.csproj b/src/OrgnalR.Backplane.GrainInterfaces/OrgnalR.Backplane.GrainInterfaces.csproj index c031046..942b72f 100644 --- a/src/OrgnalR.Backplane.GrainInterfaces/OrgnalR.Backplane.GrainInterfaces.csproj +++ b/src/OrgnalR.Backplane.GrainInterfaces/OrgnalR.Backplane.GrainInterfaces.csproj @@ -8,7 +8,6 @@ </PropertyGroup> <PropertyGroup> <PackageId>OrgnalR.GrainInterfaces</PackageId> - <Version>1.2.1</Version> <Authors>Liam Morrow</Authors> <Title> OrgnalR Grain Interfaces package @@ -16,11 +15,6 @@ <Description> A core package of OrgnalR. You likely want one of either `OrgnalR.SignalR`, or `OrgnalR.OrleansSilo` </Description> - <PackageLicenseExpression>Apache-2.0</PackageLicenseExpression> - <IncludeSymbols>true</IncludeSymbols> - <SymbolPackageFormat>snupkg</SymbolPackageFormat> - <IncludeSource>true</IncludeSource> - <RepositoryUrl>https://github.com/LiamMorrow/OrgnalR</RepositoryUrl> </PropertyGroup> <ItemGroup> <ProjectReference Include="..\OrgnalR.Core\OrgnalR.Core.csproj" /> diff --git a/src/OrgnalR.Backplane/OrgnalR.Backplane.csproj b/src/OrgnalR.Backplane/OrgnalR.Backplane.csproj index 46bf71a..6895400 100644 --- a/src/OrgnalR.Backplane/OrgnalR.Backplane.csproj +++ b/src/OrgnalR.Backplane/OrgnalR.Backplane.csproj @@ -8,7 +8,6 @@ </PropertyGroup> <PropertyGroup> <PackageId>OrgnalR.Backplane</PackageId> - <Version>1.2.1</Version> <Authors>Liam Morrow</Authors> <Title> OrgnalR Backplane package @@ -16,11 +15,6 @@ <Description> A core package of OrgnalR. You likely want one of either `OrgnalR.SignalR`, or `OrgnalR.OrleansSilo` </Description> - <PackageLicenseExpression>Apache-2.0</PackageLicenseExpression> - <IncludeSymbols>true</IncludeSymbols> - <SymbolPackageFormat>snupkg</SymbolPackageFormat> - <IncludeSource>true</IncludeSource> - <RepositoryUrl>https://github.com/LiamMorrow/OrgnalR</RepositoryUrl> </PropertyGroup> <ItemGroup> <ProjectReference Include="..\OrgnalR.Core\OrgnalR.Core.csproj" /> diff --git a/src/OrgnalR.Backplane/OrgnalRHubLifetimeManager.cs b/src/OrgnalR.Backplane/OrgnalRHubLifetimeManager.cs index db514a3..cad3493 100644 --- a/src/OrgnalR.Backplane/OrgnalRHubLifetimeManager.cs +++ b/src/OrgnalR.Backplane/OrgnalRHubLifetimeManager.cs @@ -113,12 +113,12 @@ public override Task RemoveFromGroupAsync(string connectionId, string groupName, public override Task SendAllAsync(string methodName, object[] args, CancellationToken cancellationToken = default) { - return messageObserver.SendAllMessageAsync(new AnonymousMessage(EmptySet<string>.Instance, new InvocationMessage(methodName, args)), cancellationToken); + return messageObserver.SendAllMessageAsync(new AnonymousMessage(EmptySet<string>.Instance, new MethodMessage(methodName, args)), cancellationToken); } public override Task SendAllExceptAsync(string methodName, object[] args, IReadOnlyList<string> excludedConnectionIds, CancellationToken cancellationToken = default) { - return messageObserver.SendAllMessageAsync(new AnonymousMessage(excludedConnectionIds.ToSet(), new InvocationMessage(methodName, args)), cancellationToken); + return messageObserver.SendAllMessageAsync(new AnonymousMessage(excludedConnectionIds.ToSet(), new MethodMessage(methodName, args)), cancellationToken); } public override Task SendConnectionAsync(string connectionId, string methodName, object[] args, CancellationToken cancellationToken = default) @@ -132,7 +132,7 @@ public override Task SendConnectionsAsync(IReadOnlyList<string> connectionIds, s foreach (var connectionId in connectionIds) { var local = hubConnectionStore[connectionId]; - var msg = new AddressedMessage(connectionId, new InvocationMessage(methodName, args)); + var msg = new AddressedMessage(connectionId, new MethodMessage(methodName, args)); if (local != null) { toAwait.Add(OnAddressedMessageReceived(msg, default)); @@ -148,13 +148,13 @@ public override Task SendConnectionsAsync(IReadOnlyList<string> connectionIds, s public override Task SendGroupAsync(string groupName, string methodName, object[] args, CancellationToken cancellationToken = default) { var group = groupActorProvider.GetGroupActor(groupName); - return group.AcceptMessageAsync(new AnonymousMessage(EmptySet<string>.Instance, new InvocationMessage(methodName, args)), cancellationToken); + return group.AcceptMessageAsync(new AnonymousMessage(EmptySet<string>.Instance, new MethodMessage(methodName, args)), cancellationToken); } public override Task SendGroupExceptAsync(string groupName, string methodName, object[] args, IReadOnlyList<string> excludedConnectionIds, CancellationToken cancellationToken = default) { var group = groupActorProvider.GetGroupActor(groupName); - return group.AcceptMessageAsync(new AnonymousMessage(excludedConnectionIds.ToSet(), new InvocationMessage(methodName, args)), cancellationToken); + return group.AcceptMessageAsync(new AnonymousMessage(excludedConnectionIds.ToSet(), new MethodMessage(methodName, args)), cancellationToken); } public override Task SendGroupsAsync(IReadOnlyList<string> groupNames, string methodName, object[] args, CancellationToken cancellationToken = default) @@ -167,7 +167,7 @@ public override Task SendGroupsAsync(IReadOnlyList<string> groupNames, string me public override Task SendUserAsync(string userId, string methodName, object[] args, CancellationToken cancellationToken = default) { var user = userActorProvider.GetUserActor(userId); - return user.AcceptMessageAsync(new AnonymousMessage(EmptySet<string>.Instance, new InvocationMessage(methodName, args)), cancellationToken); + return user.AcceptMessageAsync(new AnonymousMessage(EmptySet<string>.Instance, new MethodMessage(methodName, args)), cancellationToken); } public override Task SendUsersAsync(IReadOnlyList<string> userIds, string methodName, object[] args, CancellationToken cancellationToken = default) @@ -204,7 +204,7 @@ private async Task OnAddressedMessageReceived(AddressedMessage arg, MessageHandl return; if (connection.ConnectionAborted.IsCancellationRequested) return; - await connection.WriteAsync(arg.Payload); + await connection.WriteAsync(new InvocationMessage(arg.Payload.MethodName, arg.Payload.Args)); var latestClientMessageHandle = GetClientMessageHandle(connection); if (handle != default @@ -248,7 +248,7 @@ private async Task OnAnonymousMessageReceived(AnonymousMessage msg, MessageHandl continue; if (conn.ConnectionAborted.IsCancellationRequested) continue; - toAwait.Add(conn.WriteAsync(msg.Payload)); + toAwait.Add(conn.WriteAsync(new InvocationMessage(msg.Payload.MethodName, msg.Payload.Args))); } await Task.WhenAll(toAwait.Where(vt => !vt.IsCompleted).Select(vt => vt.AsTask())); if (handle != default diff --git a/src/OrgnalR.Core/OrgnalR.Core.csproj b/src/OrgnalR.Core/OrgnalR.Core.csproj index 5d34664..e0d1fe4 100644 --- a/src/OrgnalR.Core/OrgnalR.Core.csproj +++ b/src/OrgnalR.Core/OrgnalR.Core.csproj @@ -8,7 +8,6 @@ </PropertyGroup> <PropertyGroup> <PackageId>OrgnalR.Core</PackageId> - <Version>1.2.1</Version> <Authors>Liam Morrow</Authors> <Title> OrgnalR Core package @@ -16,13 +15,13 @@ <Description> A core package of OrgnalR. You likely want one of either `OrgnalR.SignalR`, or `OrgnalR.OrleansSilo` </Description> - <PackageLicenseExpression>Apache-2.0</PackageLicenseExpression> - <IncludeSymbols>true</IncludeSymbols> - <SymbolPackageFormat>snupkg</SymbolPackageFormat> - <IncludeSource>true</IncludeSource> - <RepositoryUrl>https://github.com/LiamMorrow/OrgnalR</RepositoryUrl> </PropertyGroup> <ItemGroup> + <PackageReference Include="Microsoft.Orleans.CodeGenerator.MSBuild" Version="3.1.6"> + <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> + <PrivateAssets>all</PrivateAssets> + </PackageReference> + <PackageReference Include="Microsoft.Orleans.Runtime.Abstractions" Version="3.1.6" /> <PackageReference Include="Microsoft.AspNetCore.SignalR.Core" Version="1.1.0" /> </ItemGroup> </Project> diff --git a/src/OrgnalR.Core/Provider/AddressedMessage.cs b/src/OrgnalR.Core/Provider/AddressedMessage.cs index 16c1d39..fe6bb22 100644 --- a/src/OrgnalR.Core/Provider/AddressedMessage.cs +++ b/src/OrgnalR.Core/Provider/AddressedMessage.cs @@ -6,11 +6,11 @@ namespace OrgnalR.Core.Provider public class AddressedMessage { public string ConnectionId { get; } - public HubInvocationMessage Payload { get; } - public AddressedMessage(string connectionId, HubInvocationMessage messagePayload) + public MethodMessage Payload { get; } + public AddressedMessage(string connectionId, MethodMessage payload) { ConnectionId = connectionId; - Payload = messagePayload; + Payload = payload; } } diff --git a/src/OrgnalR.Core/Provider/AnonymousMessage.cs b/src/OrgnalR.Core/Provider/AnonymousMessage.cs index bce9d35..8850d09 100644 --- a/src/OrgnalR.Core/Provider/AnonymousMessage.cs +++ b/src/OrgnalR.Core/Provider/AnonymousMessage.cs @@ -6,11 +6,12 @@ namespace OrgnalR.Core.Provider public class AnonymousMessage { public ISet<string> Excluding { get; } - public HubInvocationMessage Payload { get; } - public AnonymousMessage(ISet<string> excluding, HubInvocationMessage messagePayload) + public MethodMessage Payload { get; } + + public AnonymousMessage(ISet<string> excluding, MethodMessage payload) { Excluding = excluding; - Payload = messagePayload; + Payload = payload; } } diff --git a/src/OrgnalR.Core/Provider/MethodMessage.cs b/src/OrgnalR.Core/Provider/MethodMessage.cs new file mode 100644 index 0000000..8837637 --- /dev/null +++ b/src/OrgnalR.Core/Provider/MethodMessage.cs @@ -0,0 +1,15 @@ +namespace OrgnalR.Core.Provider +{ + public class MethodMessage + { + public string MethodName { get; } + + public object[] Args { get; } + + public MethodMessage(string methodName, object[] args) + { + MethodName = methodName; + Args = args; + } + } +} diff --git a/src/OrgnalR.OrleansSilo/OrgnalR.OrleansSilo.csproj b/src/OrgnalR.OrleansSilo/OrgnalR.OrleansSilo.csproj index 4c2cba4..d220a72 100644 --- a/src/OrgnalR.OrleansSilo/OrgnalR.OrleansSilo.csproj +++ b/src/OrgnalR.OrleansSilo/OrgnalR.OrleansSilo.csproj @@ -8,7 +8,6 @@ </PropertyGroup> <PropertyGroup> <PackageId>OrgnalR.OrleansSilo</PackageId> - <Version>1.2.1</Version> <Authors>Liam Morrow</Authors> <Title> OrgnalR Orleans Silo @@ -17,11 +16,6 @@ The Orleans silo library for OrgnalR. This is the package you'd want on the Orleans Silo application. For the SignalR server, use OrgnalR.SignalR </Description> - <PackageLicenseExpression>Apache-2.0</PackageLicenseExpression> - <IncludeSymbols>true</IncludeSymbols> - <SymbolPackageFormat>snupkg</SymbolPackageFormat> - <IncludeSource>true</IncludeSource> - <RepositoryUrl>https://github.com/LiamMorrow/OrgnalR</RepositoryUrl> </PropertyGroup> <ItemGroup> <ProjectReference Include="..\OrgnalR.Backplane.GrainImplementations\OrgnalR.Backplane.GrainImplementations.csproj" /> diff --git a/src/OrgnalR.SignalR/Extensions.cs b/src/OrgnalR.SignalR/Extensions.cs index 1e51404..3e09a95 100644 --- a/src/OrgnalR.SignalR/Extensions.cs +++ b/src/OrgnalR.SignalR/Extensions.cs @@ -164,7 +164,7 @@ public OrgnalRHubLifetimeManagerFactory(IServiceProvider services) services.GetService<IMessageObservable<T>>(), services.GetService<IMessageObserver<T>>(), services.GetRequiredService<ILogger<OrgnalRHubLifetimeManager<T>>>() - ).Result; + ).GetAwaiter().GetResult(); } public override Task AddToGroupAsync(string connectionId, string groupName, CancellationToken cancellationToken = default) { diff --git a/src/OrgnalR.SignalR/OrgnalR.SignalR.csproj b/src/OrgnalR.SignalR/OrgnalR.SignalR.csproj index 9fd5b08..68779be 100644 --- a/src/OrgnalR.SignalR/OrgnalR.SignalR.csproj +++ b/src/OrgnalR.SignalR/OrgnalR.SignalR.csproj @@ -8,7 +8,6 @@ </PropertyGroup> <PropertyGroup> <PackageId>OrgnalR.SignalR</PackageId> - <Version>1.2.1</Version> <Authors>Liam Morrow</Authors> <Title> OrgnalR SignalR @@ -17,11 +16,6 @@ The SignalR library for OrgnalR. This is the package you'd want on the SignalR server. For the Orleans Silo, use OrgnalR.OrleansSilo </Description> - <PackageLicenseExpression>Apache-2.0</PackageLicenseExpression> - <IncludeSymbols>true</IncludeSymbols> - <SymbolPackageFormat>snupkg</SymbolPackageFormat> - <IncludeSource>true</IncludeSource> - <RepositoryUrl>https://github.com/LiamMorrow/OrgnalR</RepositoryUrl> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.AspNetCore.SignalR.Core" Version="1.1.0" /> diff --git a/test/OrgnalR.Tests/Grains/RewindableMessageGrainTests.cs b/test/OrgnalR.Tests/Grains/RewindableMessageGrainTests.cs index 3c614b4..4e6abec 100644 --- a/test/OrgnalR.Tests/Grains/RewindableMessageGrainTests.cs +++ b/test/OrgnalR.Tests/Grains/RewindableMessageGrainTests.cs @@ -16,15 +16,16 @@ public class RewindableMessageGrainTests : TestKitBase [Fact] public async Task GetMessageSinceReturnsAllMessagesIfInBounds() { - Silo.ServiceProvider.AddService(new OrgnalRSiloConfig - { - MaxMessageRewind = 1 - }); + Silo.ServiceProvider.AddService( + new OrgnalRSiloConfig + { + MaxMessageRewind = 1, + }); var grain = await Silo.CreateGrainAsync<RewindableMessageGrain<AnonymousMessage>>(Guid.NewGuid().ToString()); - var handle = await grain.PushMessageAsync(new AnonymousMessage(new HashSet<string>(), new InvocationMessage("TestTarget1", new object[0]))); + var handle = await grain.PushMessageAsync(new AnonymousMessage(new HashSet<string>(), new MethodMessage("TestTarget1", new object[0]))); var since = await grain.GetMessagesSinceAsync(handle); Assert.Empty(since); - var secondMsg = new AnonymousMessage(new HashSet<string>(), new InvocationMessage("TestTarget2", new object[0])); + var secondMsg = new AnonymousMessage(new HashSet<string>(), new MethodMessage("TestTarget2", new object[0])); var handle2 = await grain.PushMessageAsync(secondMsg); since = await grain.GetMessagesSinceAsync(handle2); Assert.Empty(since); @@ -44,7 +45,7 @@ public async Task GetMessageSinceReturnsAllMessagesIfInBoundsLargerSet() }); var grain = await Silo.CreateGrainAsync<RewindableMessageGrain<AnonymousMessage>>(Guid.NewGuid().ToString()); var handles = Enumerable.Range(0, 20) - .Select(i => grain.PushMessageAsync(new AnonymousMessage(new HashSet<string>(), new InvocationMessage(i.ToString(), new object[0])))) + .Select(i => grain.PushMessageAsync(new AnonymousMessage(new HashSet<string>(), new MethodMessage(i.ToString(), new object[0])))) .Select(x => x.Result) .ToList(); @@ -75,9 +76,9 @@ public async Task GetMessageSinceThrowsWhenOutOfBounds() MaxMessageRewind = 1 }); var grain = await Silo.CreateGrainAsync<RewindableMessageGrain<AnonymousMessage>>(Guid.NewGuid().ToString()); - var handle = await grain.PushMessageAsync(new AnonymousMessage(new HashSet<string>(), new InvocationMessage("TestTarget1", new object[0]))); - await grain.PushMessageAsync(new AnonymousMessage(new HashSet<string>(), new InvocationMessage("TestTarget2", new object[0]))); - await grain.PushMessageAsync(new AnonymousMessage(new HashSet<string>(), new InvocationMessage("TestTarget3", new object[0]))); + var handle = await grain.PushMessageAsync(new AnonymousMessage(new HashSet<string>(), new MethodMessage("TestTarget1", new object[0]))); + await grain.PushMessageAsync(new AnonymousMessage(new HashSet<string>(), new MethodMessage("TestTarget2", new object[0]))); + await grain.PushMessageAsync(new AnonymousMessage(new HashSet<string>(), new MethodMessage("TestTarget3", new object[0]))); await Assert.ThrowsAsync<ArgumentOutOfRangeException>(async () => { await grain.GetMessagesSinceAsync(handle); @@ -92,7 +93,7 @@ public async Task GetMessageSinceReturnsEmptyWhenGroupChanges() MaxMessageRewind = 1 }); var grain = await Silo.CreateGrainAsync<RewindableMessageGrain<AnonymousMessage>>(Guid.NewGuid().ToString()); - var handle = await grain.PushMessageAsync(new AnonymousMessage(new HashSet<string>(), new InvocationMessage("TestTarget1", new object[0]))); + var handle = await grain.PushMessageAsync(new AnonymousMessage(new HashSet<string>(), new MethodMessage("TestTarget1", new object[0]))); handle = new MessageHandle(handle.MessageId, Guid.NewGuid()); Assert.Empty(await grain.GetMessagesSinceAsync(handle)); } @@ -105,7 +106,7 @@ public async Task GetMessageSinceReturnsEmptyWhenHandleNewer() MaxMessageRewind = 1 }); var grain = await Silo.CreateGrainAsync<RewindableMessageGrain<AnonymousMessage>>(Guid.NewGuid().ToString()); - var handle = await grain.PushMessageAsync(new AnonymousMessage(new HashSet<string>(), new InvocationMessage("TestTarget1", new object[0]))); + var handle = await grain.PushMessageAsync(new AnonymousMessage(new HashSet<string>(), new MethodMessage("TestTarget1", new object[0]))); handle = new MessageHandle(handle.MessageId + 1, handle.MessageGroup); Assert.Empty(await grain.GetMessagesSinceAsync(handle)); }