public async Task Roll_InvalidId_ReturnCharacterNotFound() { // Arrange var provider = new MockCharacterProvider(); var statProvider = new MockStatisticProvider(); var controller = new RollController(provider, statProvider, new MockRollStrategy()); // Act var result = await controller.RollStatisticAsync(0, "strength"); // Assert Assert.Equal(CharacterResult.CharacterNotFound(), result); }
public async Task Roll_InvalidStat_ReturnStatNotFound() { // Arrange var provider = new MockCharacterProvider(); var statProvider = new MockStatisticProvider(); var controller = new RollController(provider, statProvider, new MockRollStrategy()); // Act var result = await controller.RollStatisticAsync(1, "invalid"); // Assert Assert.True(StatisticResult.StatisticNotFound().Equals(result)); }
public async Task RollAsync(string stat, params IUser[] users) { if (users.Length == 0) { var result = await _controller.RollStatisticAsync(Context.User.Id, stat); await ReplyAsync(result.Message); return; } else { StringBuilder messages = new StringBuilder(); foreach (var user in users) { var result = await _controller.RollStatisticAsync(user.Id, stat); messages.Append(result.Message + "\n"); } await ReplyAsync(messages.ToString()); } }
public async Task Roll_InvalidStatValues_ReturnRollFailed() { // Arrange var statProvider = new MockStatisticProvider(); var strength = await statProvider.GetStatisticAsync("Strength"); var provider = new MockCharacterProvider(); var controller = new RollController(provider, statProvider, new MockRollStrategy()); // Act // Character should have null or empty Statistics list. var result = await controller.RollStatisticAsync(1, "strength"); // Assert Assert.True(RollResult.RollFailed().Equals(result)); }
public async Task Roll_ValidValues_ReturnSuccess() { // Arrange var statProvider = new MockStatisticProvider(); var strength = await statProvider.GetStatisticAsync("Strength"); var provider = new MockCharacterProvider(); var chars = await provider.GetAllCharactersAsync(1); // Give the new character a Statistic to test chars[0].SetStatistic(strength, new StatisticValue(5)); await provider.UpdateCharacterAsync(chars[0]); var controller = new RollController(provider, statProvider, new MockRollStrategy()); // Act var result = await controller.RollStatisticAsync(1, "strength"); // Assert Assert.True(result.GetType() == typeof(RollResult) && result.IsSuccess); }