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); }
private void RequestChangeBalance(ChangeBalanceMessage message) { _consoleWriter.WriteLine($"User '{message.UserId}' requested change for amount '{message.ChangedAmount}'"); _userAccountsCoordinatorRemoteActor.Tell(new ChangeBalance(message.UserId, message.ChangedAmount)); }
private static void SendBalanceChangeMessage(Guid userId, double changedAmount) { var message = new ChangeBalanceMessage(userId, changedAmount); _system.ActorSelection("akka://ActorSystem/user/UserBalance").Tell(message); }