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));
        }
Exemple #3
0
        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);
        }