public void CloseAccountCommand_Execute_Should_Call_Writer_With_Correct_Output() { // Arrange var writer = new Mock <IWriter>(); var userRepo = new Mock <IUserRepository>(); var accountingRepo = new Mock <IAccountingRepository>(); var user = new Mock <IUser>(); user.Setup(x => x.PhoneNumber).Returns("123456"); user.Setup(x => x.Bill).Returns(10m); user.Setup(x => x.FirstName).Returns("firstName"); user.Setup(x => x.LastName).Returns("lastName"); userRepo.SetupGet(x => x.Users).Returns(new List <IUser>() { user.Object }); var command = new CloseAccountCommand(userRepo.Object, accountingRepo.Object, writer.Object); command.Parameters = new List <string>() { "closeaccount", "123456" }; // Act command.Execute(); // Assert writer.Verify(x => x.WriteLine("firstName lastName's account was closed")); }
public void CloseAccountCommand_Execute_Should_Call_UserBill_Twice() { // Arrange var writer = new Mock <IWriter>(); var userRepo = new Mock <IUserRepository>(); var accountingRepo = new Mock <IAccountingRepository>(); var user = new Mock <IUser>(); user.Setup(x => x.PhoneNumber).Returns("123456"); user.Setup(x => x.Bill).Returns(10m); userRepo.SetupGet(x => x.Users).Returns(new List <IUser>() { user.Object }); var command = new CloseAccountCommand(userRepo.Object, accountingRepo.Object, writer.Object); command.Parameters = new List <string>() { "closeaccount", "123456" }; // Act command.Execute(); // Assert user.Verify(x => x.Bill, Times.AtLeastOnce); }
public void CloseAccountCommand_Execute_Should_Throw_ArgumentNullException_When_User_Not_Found() { // Arrange var writer = new Mock <IWriter>(); var userRepo = new Mock <IUserRepository>(); var accountingRepo = new Mock <IAccountingRepository>(); var user = new Mock <IUser>(); user.Setup(x => x.PhoneNumber).Returns("123456"); userRepo.SetupGet(x => x.Users).Returns(new List <IUser>() { user.Object }); var command = new CloseAccountCommand(userRepo.Object, accountingRepo.Object, writer.Object); command.Parameters = new List <string>() { "closeaccount", "111111" }; // Act & Assert Assert.ThrowsException <ArgumentNullException>(() => command.Execute()); }