public void RequestChangeBalanceSendsCorrectMessage()
        {
            //prepare
            var consoleMock     = new Mock <IConsoleWriter>();
            var mockRemoteActor = CreateTestProbe();
            var actor           = ActorOfAsTestActorRef <UserBalanceActor>(Props.Create(() => new UserBalanceActor(consoleMock.Object, mockRemoteActor)));
            var message         = new ChangeBalanceMessage(Guid.NewGuid(), 100);

            //execute
            actor.Tell(message);

            //assert
            var sentMessage = mockRemoteActor.ExpectMsg <ChangeBalance>();

            Assert.Equal(message.UserId, sentMessage.UserId);
            Assert.Equal(message.ChangedAmount, sentMessage.ChangedAmount);
        }
        public void RequestChangeBalanceOutputsBalanceChangeRequest()
        {
            //prepare
            var consoleMock = new Mock <IConsoleWriter>();
            var output      = string.Empty;

            consoleMock.Setup(x => x.WriteLine(It.IsAny <string>())).Callback((string x) => output = x);

            var actor   = ActorOfAsTestActorRef <UserBalanceActor>(Props.Create(() => new UserBalanceActor(consoleMock.Object, null)));
            var message = new ChangeBalanceMessage(Guid.NewGuid(), 100);

            //execute
            actor.Tell(message);

            //assert
            consoleMock.Verify(x => x.WriteLine(It.IsAny <string>()), Times.Once);
            Assert.Equal($"User '{message.UserId}' requested change for amount '{message.ChangedAmount}'", output);
        }
Пример #3
0
        private void RequestChangeBalance(ChangeBalanceMessage message)
        {
            _consoleWriter.WriteLine($"User '{message.UserId}' requested change for amount '{message.ChangedAmount}'");

            _userAccountsCoordinatorRemoteActor.Tell(new ChangeBalance(message.UserId, message.ChangedAmount));
        }
Пример #4
0
        private static void SendBalanceChangeMessage(Guid userId, double changedAmount)
        {
            var message = new ChangeBalanceMessage(userId, changedAmount);

            _system.ActorSelection("akka://ActorSystem/user/UserBalance").Tell(message);
        }