Exemple #1
0
        public async Task SetStatisticAsync_LevelTooHighButAttributesUnset_ReturnSuccess()
        {
            // Arrange
            var charProvider = new MockCharacterProvider();
            var character    = await charProvider.CreateCharacterAsync(100, "TooHigh");

            // the important bit
            character.Experience = 50000;

            var statProvider = new MockStatisticProvider();
            var statOptions  = new StatisticOptions
            {
                InitialAttributeMin    = 1,
                InitialAttributeMax    = 10,
                InitialAttributePoints = 10,
                InitialSetupMaxLevel   = 1
            };

            var controller = new StatisticController(charProvider, statProvider, new GenericProgressionStrategy(statProvider, statOptions));

            // Act
            var result = await controller.SetStatisticAsync(100, "strength", 3);

            // Assert
            Assert.Equal(StatisticResult.StatisticSetSucessfully(), result);
        }
Exemple #2
0
        public async Task SetStatisticAsync_LevelTooHigh_ReturnLevelTooHigh()
        {
            // Arrange
            var charProvider = new MockCharacterProvider();
            var character    = await charProvider.CreateCharacterAsync(100, "TooHigh");

            var statProvider = new MockStatisticProvider();
            var statOptions  = new StatisticOptions
            {
                InitialAttributeMin      = 1,
                InitialAttributeMax      = 10,
                InitialAttributePoints   = 40,
                InitialSkillPoints       = 1,
                InitialSetupMaxLevel     = 1,
                AttributePointsOnLevelUp = 0
            };

            var controller = new StatisticController(charProvider, statProvider, new GenericProgressionStrategy(statProvider, statOptions));

            // Act

            // Set initial special
            await controller.SetStatisticAsync(100, "strength", 10);

            await controller.SetStatisticAsync(100, "perception", 2);

            await controller.SetStatisticAsync(100, "endurance", 6);

            await controller.SetStatisticAsync(100, "charisma", 6);

            await controller.SetStatisticAsync(100, "intelligence", 6);

            await controller.SetStatisticAsync(100, "agility", 5);

            await controller.SetStatisticAsync(100, "luck", 5);

            character.Experience = 50000;
            await charProvider.UpdateCharacterAsync(character);

            // Attempt to set initial special again after going past InitialSetupMaxLevel
            var result = await controller.SetStatisticAsync(100, "strength", 4);

            // Assert
            Assert.Equal(CharacterResult.LevelTooHigh(), result);
        }
Exemple #3
0
        public async Task SetStatisticAsync_NewValueLowerThanCurrent_ReturnInvalidInput()
        {
            // Arrange
            var charProvider = new MockCharacterProvider();
            var character    = await charProvider.CreateCharacterAsync(100, "TooHigh");

            var statProvider = new MockStatisticProvider();
            var statOptions  = new StatisticOptions
            {
                InitialAttributeMin      = 1,
                InitialAttributeMax      = 10,
                InitialAttributePoints   = 40,
                InitialSetupMaxLevel     = 1,
                AttributePointsOnLevelUp = 0
            };

            var controller = new StatisticController(charProvider, statProvider, new GenericProgressionStrategy(statProvider, statOptions));

            // Act
            // Set initial special
            await controller.SetStatisticAsync(100, "strength", 10);

            await controller.SetStatisticAsync(100, "perception", 2);

            await controller.SetStatisticAsync(100, "endurance", 6);

            await controller.SetStatisticAsync(100, "charisma", 6);

            await controller.SetStatisticAsync(100, "intelligence", 6);

            await controller.SetStatisticAsync(100, "agility", 5);

            await controller.SetStatisticAsync(100, "luck", 5);

            character.Experience = 50000;
            await charProvider.UpdateCharacterAsync(character);

            // Attempt to set special lower than current value
            var result = await controller.SetStatisticAsync(100, "strength", 4);

            // Assert
            Assert.Equal(Messages.INVALID_INPUT, result.Message);
        }