Exemple #1
0
        public void ToDomain_ShouldCalculateHpCorrectly_NoItems_MultipleClasses_WithConMod()
        {
            RpgClass firstClass = new RpgClass {
                ClassLevel = 2, HitDiceValue = 10, Name = "firstClass"
            };
            RpgClass secondClass = new RpgClass {
                ClassLevel = 1, HitDiceValue = 6, Name = "secondClass"
            };
            RpgClass thirdClass = new RpgClass {
                ClassLevel = 5, HitDiceValue = 12, Name = "thirdClass"
            };
            List <RpgClass> singletonClass = new List <RpgClass> {
                firstClass, secondClass, thirdClass
            };
            Stats conMod = new Stats {
                Constitution = 14
            };
            Character noItemCharacter = new Character
            {
                Classes = singletonClass,
                Stats   = conMod,
            };

            DomainCharacter actualCharacter = CharacterConverter.ToDomain(noItemCharacter);

            Assert.Equal(67, actualCharacter.MaxHitpoints);
            Assert.Equal(67, actualCharacter.CurrentHitpoints);
        }
Exemple #2
0
        public void ToDomain_ShouldTranslateCharacterName()
        {
            Character namedCharacter = new Character {
                Name = "bob"
            };

            DomainCharacter actualCharacter = CharacterConverter.ToDomain(namedCharacter);

            Assert.Equal("bob", actualCharacter.Name);
        }
 public static void SeedDatabase(IApplicationBuilder app)
 {
     using (var serviceScope = app.ApplicationServices.CreateScope())
     {
         ICharacterRepositoryAdapter adapter = serviceScope.ServiceProvider.GetService <ICharacterRepositoryAdapter>();
         using (StreamReader r = new StreamReader("briv.json"))
         {
             string          json        = r.ReadToEnd();
             Character       character   = JsonConvert.DeserializeObject <Character>(json);
             DomainCharacter initialChar = CharacterConverter.ToDomain(character);
             adapter.SaveCharacter(initialChar);
         }
     }
 }
Exemple #4
0
        public void ToDomain_ShouldTranslateDefenseResistances()
        {
            CharacterDefense fireImmunity = new CharacterDefense {
                Defense = "resistance", Type = "radiant"
            };
            CharacterDefense slashingImmunity = new CharacterDefense {
                Defense = "resistance", Type = "force"
            };
            Character characterWithImmunities = new Character {
                Defenses = new List <CharacterDefense> {
                    fireImmunity, slashingImmunity
                }
            };

            DomainCharacter actualCharacter = CharacterConverter.ToDomain(characterWithImmunities);

            Assert.Equal(new List <string> {
                "radiant", "force"
            }, actualCharacter.Resistances);
        }
Exemple #5
0
        public void ToDomain_ShouldTranslateDefenseVulnerabilities()
        {
            CharacterDefense fireImmunity = new CharacterDefense {
                Defense = "vulnerable", Type = "bludgeoning"
            };
            CharacterDefense slashingImmunity = new CharacterDefense {
                Defense = "vulnerable", Type = "slashing"
            };
            Character characterWithImmunities = new Character {
                Defenses = new List <CharacterDefense> {
                    fireImmunity, slashingImmunity
                }
            };

            DomainCharacter actualCharacter = CharacterConverter.ToDomain(characterWithImmunities);

            Assert.Equal(new List <string> {
                "bludgeoning", "slashing"
            }, actualCharacter.Vulnerabilities);
        }
Exemple #6
0
        public void ToDomain_ShouldCalculateHpCorrectly_WithItemsThatModifyCon()
        {
            RpgClass firstClass = new RpgClass {
                ClassLevel = 2, HitDiceValue = 10, Name = "firstClass"
            };
            RpgClass secondClass = new RpgClass {
                ClassLevel = 1, HitDiceValue = 6, Name = "secondClass"
            };
            RpgClass thirdClass = new RpgClass {
                ClassLevel = 5, HitDiceValue = 12, Name = "thirdClass"
            };
            List <RpgClass> singletonClass = new List <RpgClass> {
                firstClass, secondClass, thirdClass
            };
            Modifier conModification = new Modifier
            {
                AffectedObject = "stats",
                AffectedValue  = "constitution",
                Value          = 2
            };
            Item item = new Item {
                Name = "Ioun Stone of Fortitude", Modifier = conModification
            };
            Stats conMod = new Stats {
                Constitution = 14
            };
            Character characterWithConItem = new Character
            {
                Classes = singletonClass,
                Stats   = conMod,
                Items   = new List <Item> {
                    item, item
                }
            };

            DomainCharacter actualCharacter = CharacterConverter.ToDomain(characterWithConItem);

            Assert.Equal(83, actualCharacter.MaxHitpoints);
            Assert.Equal(83, actualCharacter.CurrentHitpoints);
        }
Exemple #7
0
        public void ToDomain_ShouldCalculateHpCorrectly_NoItems_SingleClass_WithConMod(int constitutionScore, int classLevel, int hitDiceValue, int expectedHp)
        {
            RpgClass onlyClass = new RpgClass {
                ClassLevel = classLevel, HitDiceValue = hitDiceValue, Name = "singleClass"
            };
            List <RpgClass> singletonClass = new List <RpgClass> {
                onlyClass
            };
            Stats conMod = new Stats {
                Constitution = constitutionScore
            };
            Character noItemCharacter = new Character
            {
                Classes = singletonClass,
                Stats   = conMod,
            };

            DomainCharacter actualCharacter = CharacterConverter.ToDomain(noItemCharacter);

            Assert.Equal(expectedHp, actualCharacter.MaxHitpoints);
            Assert.Equal(expectedHp, actualCharacter.CurrentHitpoints);
        }
Exemple #8
0
 public void ToDomain_ShouldReturnNull_WhenNullCharacterPassed()
 {
     Assert.Null(CharacterConverter.ToDomain(null));
 }
Exemple #9
0
 public ActionResult <DomainCharacter> AddCharacter([FromBody] Character characterToConvert)
 {
     return(repositoryAdapter.SaveCharacter(CharacterConverter.ToDomain(characterToConvert)));
 }