Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }