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);
        }
        public async Task MakeSureCharacterHasTheEffects()
        {
            var context = new RpgContext(new GeneralOptions
            {
                UseInMemoryDatabase = true,
                DatabaseName        = "MakeSureCharacterHasTheEffects"
            });

            var effectProvider = new EfEffectProvider(context);
            var charProvider   = new EfCharacterProvider(context);

            var effect1 = await effectProvider.CreateEffectAsync(1, "Effect1");

            var effect2 = await effectProvider.CreateEffectAsync(1, "Effect2");

            var char1 = await charProvider.CreateCharacterAsync(1, "Char1");

            char1.Active = true;
            char1.Effects.Add(effect1);
            char1.Effects.Add(effect2);

            await charProvider.UpdateCharacterAsync(char1);

            char1 = await charProvider.GetActiveCharacterAsync(1);

            Assert.True(char1.Effects.Count == 2);
        }
Exemple #3
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);
        }
Exemple #4
0
        public async Task EntityFramework_CreateCharacter_EntityMatchesInput()
        {
            var context = new RpgContext(new GeneralOptions
            {
                UseInMemoryDatabase = true,
                DatabaseName        = "CreateCharacter_EntityMatchesInput"
            });

            var provider = new EfCharacterProvider(context);

            await provider.CreateCharacterAsync(1, 305847674974896128, true, "Melon Head");

            var result = await provider.GetActiveCharacterAsync(305847674974896128);

            Assert.True(result.UserIdentifier == 305847674974896128);
        }
Exemple #5
0
        public async Task EntityFramework_UpdateCharacter_EntityMatchesInput()
        {
            var context = new RpgContext(new GeneralOptions
            {
                UseInMemoryDatabase = true,
                DatabaseName        = "UpdateCharacter_EntityMatchesInput"
            });

            var provider = new EfCharacterProvider(context);

            ulong  userIdentifier = 305847674974896128;
            string oldName = "Melon Head", newName = "Mr. Melon";
            int    id = 1;

            var result = await provider.CreateCharacterAsync(id, userIdentifier, true, oldName);

            result.Name = newName;
            await provider.UpdateCharacterAsync(result);

            result = await provider.GetActiveCharacterAsync(userIdentifier);

            Assert.Equal(newName, result.Name);
        }