public async Task <IResult> GiveMoneyToOtherAsync(ulong callerId, ulong targetId, int moneyToGive) { var caller = await _provider.GetActiveCharacterAsync(callerId); if (caller == null) { return(CharacterResult.CharacterNotFound()); } var target = await _provider.GetActiveCharacterAsync(targetId); if (target == null) { return(CharacterResult.CharacterNotFound()); } if (caller.Money - moneyToGive >= 0) { caller.Money -= moneyToGive; target.Money += moneyToGive; await _provider.UpdateCharacterAsync(caller); await _provider.UpdateCharacterAsync(target); return(CharacterResult.MoneyGiven(moneyToGive, target.Name)); } else { return(GenericResult.ValueTooHigh()); } }
public async Task SetStatisticAsync_AboveMaximum_ReturnTooHigh() { // Arrange var charProvider = new MockCharacterProvider(); var statProvider = new MockStatisticProvider(); var statOptions = new StatisticOptions { InitialAttributeMax = 10, InitialAttributePoints = 12, }; var controller = new StatisticController(charProvider, statProvider, new GenericProgressionStrategy(statProvider, statOptions)); // Act var result = await controller.SetStatisticAsync(1, "strength", 11); // Assert Assert.Equal(GenericResult.ValueTooHigh(), result); }