public void TellWaiter_TellMessageWithNoSender_TellsRecipient()
        {
            //arrange
            TellWaiter sut = CreateTellWaiter();

            //act
            sut.TellMessage(Waiter, this, Recipient, Message, ExpectedEventCount);

            //assert
            RecipientMock.Verify(actorRef => actorRef.Tell(Message, TestActor));
        }
        public void TellWaiter_TellMessageWithNoSender_WaitsForEventAfterTellingRecipient()
        {
            //arrange
            TellWaiter sut = CreateTellWaiter();

            //act
            sut.TellMessage(Waiter, this, Recipient, Message, ExpectedEventCount);

            //assert
            CallOrder.Should().ContainInOrder(
                nameof(IActorRef.Tell),
                nameof(IWaiter.Wait));
        }
        public void TellWaiter_TellMessage_StartsWaitingForEventBeforeTellingRecipient()
        {
            //arrange
            TellWaiter sut = CreateTellWaiter();

            //act
            sut.TellMessage(Waiter, this, Recipient, Message, ExpectedEventCount, Sender);

            //assert
            CallOrder.Should().ContainInOrder(
                nameof(IWaiter.Start),
                nameof(IActorRef.Tell) + "Sender");
        }
        public void TellWaiter_TellMessageWithNoSender_WaitsForEvents()
        {
            //arrange
            TellWaiter sut = CreateTellWaiter();

            //act
            sut.TellMessage(Waiter, this, Recipient, Message, ExpectedEventCount);

            //assert
            WaiterMock.Verify(
                waiter => waiter.Wait(),
                Times.Once);
        }
        public void TellWaiter_TellMessage_StartsWaitingForEvents()
        {
            //arrange
            TellWaiter sut = CreateTellWaiter();

            //act
            sut.TellMessage(Waiter, this, Recipient, Message, ExpectedEventCount, Sender);

            //assert
            WaiterMock.Verify(
                waiter => waiter.Start(this, ExpectedEventCount),
                Times.Once);
        }
        public void TellWaiter_TellMessageWithNullWaiterAndTestKitBaseAndRecipientAndMessage_ThrowsArgumentNullException()
        {
            //arrange
            TellWaiter sut = CreateTellWaiter();

            //act
            Action act = () => sut.TellMessage <object>(
                null,
                null,
                null,
                null,
                ExpectedEventCount,
                Sender);

            //assert
            act.Should().Throw <ArgumentNullException>();
        }
        public void TellWaiter_TellMessageWithNullRecipient_ThrowsArgumentNullException()
        {
            //arrange
            TellWaiter sut = CreateTellWaiter();

            //act
            Action act = () => sut.TellMessage(
                Waiter,
                this,
                null,
                Message,
                ExpectedEventCount,
                Sender);

            //assert
            act.Should().Throw <ArgumentNullException>();
        }