public async Task GivenNoHandler_WhenActivated_ThenSubscribeToStream() { //Arrange + Act await Silo.CreateGrainAsync <PersistentListenerWithoutHandleInState>(1); //Assert Assert.Equal(1, _stream.Subscribed); var streamHandles = await _stream.GetAllSubscriptionHandles(); Assert.Equal(1, streamHandles.Count); }
public async Task GivenEmptyHandlerInState_WhenGrainActivates_ThenResumeHandler() { //Arrange var onResumeCalled = false; var onAttachingObserver = new Action <IAsyncObserver <ChatMessage> >(obs => onResumeCalled = true); _stateWithHandle.ChatMessageStreamSubscriptionHandle = await _stream.AddEmptyStreamHandler(onAttachingObserver); //Check to see there is a handler registered var handles = await _stream.GetAllSubscriptionHandles(); Assert.Equal(1, handles.Count); Assert.False(onResumeCalled); //Act var grain = await Silo.CreateGrainAsync <PersistentListenerWithHandleInState>(1); //Assert Assert.True(onResumeCalled); //Act await _stream.OnNextAsync(new ChatMessage("here's a message")); //Assert var receivedMessages = await grain.ReceivedCount(); Assert.Equal(1, receivedMessages); }