public async Task DeleteStatistic_ValidInput_CharacterNoLongerHasValue()
        {
            // Arrange
            var context = new RpgContext(new GeneralOptions
            {
                UseInMemoryDatabase = true,
                DatabaseName        = "DeleteStatistic_ValidInput_CharacterNoLongerHasValue"
            });

            var provider     = new EfStatisticProvider(context);
            var charProvider = new EfCharacterProvider(context);

            var strength = await provider.CreateAttributeAsync("strength");

            await charProvider.CreateCharacterAsync(1, "bob");

            var bob = await charProvider.GetActiveCharacterAsync(1);

            bob.SetStatistic(strength, new StatisticValue(5));

            // Act
            bool valueDidExist = bob.GetStatistic(strength) is StatisticValue;
            await provider.DeleteStatisticAsync(strength);

            bob = await charProvider.GetActiveCharacterAsync(1);

            bool valueNoLongerExists = bob.GetStatistic(strength) is null;

            // Assert
            Assert.True(valueDidExist && valueNoLongerExists);
        }
示例#2
0
        public async Task EntityFramework_CharacterStatistics_EntityMatchesInput()
        {
            var context = new RpgContext(new GeneralOptions
            {
                UseInMemoryDatabase = true,
                DatabaseName        = "CharacterStatistics_EntityMatchesInput"
            });

            var provider     = new EfCharacterProvider(context);
            var statProvider = new EfStatisticProvider(context);

            ulong  userIdentifier = 305847674974896128;
            string name           = "Melon Head";
            int    id             = 1;

            var strength = await statProvider.CreateAttributeAsync("Strength");

            var value = new StatisticValue(5);
            await provider.CreateCharacterAsync(id, userIdentifier, true, name);

            var result = await provider.GetActiveCharacterAsync(userIdentifier);

            result.SetStatistic(strength, value);
            await provider.UpdateCharacterAsync(result);

            result = await provider.GetActiveCharacterAsync(userIdentifier);

            Assert.True(result.Statistics.Count > 0);
        }
        public async Task CreateStatistic_ValidInput_EntityMatchesInput()
        {
            var context = new RpgContext(new GeneralOptions
            {
                UseInMemoryDatabase = true,
                DatabaseName        = "CreateStatistic_EntityMatchesInput"
            });

            var provider = new EfStatisticProvider(context);

            await provider.CreateAttributeAsync("Strength");

            var result = await provider.GetStatisticAsync("Strength");

            Assert.Equal("Strength", result.Name);
        }
        public async Task GetAllStatistics_ValidInput_EntityMatchesInput()
        {
            var context = new RpgContext(new GeneralOptions
            {
                UseInMemoryDatabase = true,
                DatabaseName        = "GetAllStatistics_EntityMatchesInput"
            });

            var statProvider = new EfStatisticProvider(context);

            await statProvider.CreateAttributeAsync("Strength");

            await statProvider.CreateSkillAsync("Powerlifting", "Strength");

            var result = await statProvider.GetAllStatisticsAsync();

            Assert.Equal(2, result.Count());
        }
        public async Task UpdateStatistic_ValidInput_EntityMatchesInput()
        {
            var context = new RpgContext(new GeneralOptions
            {
                UseInMemoryDatabase = true,
                DatabaseName        = "UpdateStatistic_EntityMatchesInput"
            });

            var provider = new EfStatisticProvider(context);

            await provider.CreateAttributeAsync("Strength");

            var result = await provider.GetStatisticAsync("Strength");

            result.Name    = "STR";
            result.Aliases = "STR" + "/";
            await provider.UpdateStatisticAsync(result);

            Assert.NotNull(await provider.GetStatisticAsync("STR"));
        }