public void PlayerPaysRentToOwnerWhenBothUtilitiesAreOwned() { var startingMoney = new Money(100); var owner = new Player("car", startingMoney); var player = new Player("horse", startingMoney); var fakeProperty = new FakeProperty(owner: owner); var fakeDice = new FakeDice(); fakeDice.LoadRoll(3, 7); fakeDice.Roll(); var expectedRent = new Money(10 * fakeDice.LastRoll.Total); var expectedOwnerMoney = startingMoney.Add(expectedRent); var expectedPlayerMoney = startingMoney.Remove(expectedRent); var rentAction = new UtilityRentAction(new FakeBoard(numberOfUtilitiesOwned: 2), fakeDice); rentAction.ProcessAction(player, fakeProperty); Assert.AreEqual(expectedOwnerMoney, owner.Balance); Assert.AreEqual(expectedPlayerMoney, player.Balance); }
public UtilityFactory(IBoard board, IDice dice) { utilityRentAction = new UtilityRentAction(board, dice); }