Exemplo n.º 1
0
        public void CanGetRolls()
        {
            var roller = new RollController(new DiceRoller());

            var result = roller.Get(1);

            result.ShouldBeEquivalentTo(1);
        }
Exemplo n.º 2
0
        public void Can_Dice_Roll()
        {
            var numberOfDice  = 1;
            var numberOfSides = 6;
            var result        = RollController.Rolling(numberOfDice, numberOfSides);

            Assert.That(result.Results.Length, Is.EqualTo(1));
            Assert.That(result.Total, Is.GreaterThanOrEqualTo(1));
            Assert.That(result.Total, Is.LessThanOrEqualTo(6));
        }
Exemplo n.º 3
0
        public void Can_Get_Number_Of_Sides()
        {
            var numberOfSides_below10 = RollController.GetNumberOfSides("1d2");

            Assert.IsTrue(Convert.ToInt32(numberOfSides_below10.Value) == 2);

            var numberOfSides_above10 = RollController.GetNumberOfSides("10d20");

            Assert.IsTrue(Convert.ToInt32(numberOfSides_above10.Value) == 20);
        }
Exemplo n.º 4
0
        public void Can_Get_Number_Of_Dice()
        {
            var numberOfDice_below10 = RollController.GetNumberOfDice("1d20");

            Assert.IsTrue(Convert.ToInt32(numberOfDice_below10.Value) == 1);

            var numberOfDice_above10 = RollController.GetNumberOfDice("20d20");

            Assert.IsTrue(Convert.ToInt32(numberOfDice_above10.Value) == 20);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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));
        }
Exemplo n.º 7
0
        public async Task RollAgainst_InvalidStatValues_ReturnRollFailed()
        {
            // Arrange
            var provider     = new MockCharacterProvider();
            var statProvider = new MockStatisticProvider();
            var controller   = new RollController(provider, statProvider, new MockRollStrategy());

            // Act
            var result = await controller.RollStatisticAgainstAsync(1, 2, "strength");

            // Assert
            Assert.Equal(RollResult.RollFailed(), result);
        }
Exemplo n.º 8
0
        public void Can_Validate_Dice_Roll_Input()
        {
            var validated = RollController.ValidateDiceRoll("1d20");

            Assert.IsTrue(validated.Success);

            var validated_cake = RollController.ValidateDiceRoll("Cake");

            Assert.IsFalse(validated_cake.Success);

            var validated_null = RollController.ValidateDiceRoll("");

            Assert.IsFalse(validated_null.Success);
        }
Exemplo n.º 9
0
        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));
        }
Exemplo n.º 10
0
        public async Task RollAgainst_ValidValues_ReturnSuccess()
        {
            // Arrange
            var statProvider = new MockStatisticProvider();
            var strength     = await statProvider.GetStatisticAsync("Strength");

            var provider = new MockCharacterProvider();

            // Give characters statistics
            (await provider.GetAllCharactersAsync(1))[0].SetStatistic(strength, new StatisticValue(5));
            (await provider.GetAllCharactersAsync(2))[0].SetStatistic(strength, new StatisticValue(5));

            var controller = new RollController(provider, statProvider, new MockRollStrategy());

            // Act
            var result = await controller.RollStatisticAgainstAsync(1, 2, "strength");

            // Assert
            Assert.True(result.GetType() == typeof(RollResult) && result.IsSuccess);
        }
Exemplo n.º 11
0
        public async Task Roll(string userInput)
        {
            //Validate the User input to make sure is in corret format
            Match diceValidation = RollController.ValidateDiceRoll(userInput);

            // If the Validation is Successful
            if (diceValidation.Success)
            {
                var msg                    = Context.Message;
                var discordId              = msg.Author.Username;
                int numberOfDiceRolledInt  = Convert.ToInt32(RollController.GetNumberOfDice(userInput).Value);
                int numberOfSidesOnDiceInt = Convert.ToInt32(RollController.GetNumberOfSides(userInput).Value);

                // If the number of dice or number of sides is above 100 display this message
                if (numberOfSidesOnDiceInt > 100 || numberOfDiceRolledInt > 100)
                {
                    await ReplyAsync(Resources.error_Too_Many_Dice);
                }

                // If the number of sides is 1 display this message
                else if (numberOfSidesOnDiceInt == 1)
                {
                    await ReplyAsync(Resources.error_OneSide_Dice);
                }

                // If the User input is correct and passes the checks run this
                else
                {
                    DiceResults rolledDice = RollController.Rolling(numberOfDiceRolledInt, numberOfSidesOnDiceInt);
                    // Send all the Information back into the chat to the user
                    //await ReplyAsync($"{discordId} Rolled: \r\n{rolledDice.Results} \r\nTotal: {rolledDice.Total.ToString()}");
                    await ReplyAsync(string.Format(Resources.response_Dice_Roll, discordId, rolledDice.Results, rolledDice.Total));
                }
            }
            else
            {
                //If the input is in an incorrect format display this message.
                await ReplyAsync(Resources.error_Incorrect_Format_Dice);
            }
        }
Exemplo n.º 12
0
        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);
        }
Exemplo n.º 13
0
 public RollModule(RollController controller)
 {
     _controller = controller;
 }