private void GetBlankPrimaryTab(CharacterVM vm) { PrimaryTabVM primaryTab = new PrimaryTabVM(); GetSelectableRaces(primaryTab); ClassRowCM[] selectedClasses = new ClassRowCM[1]; selectedClasses[0] = new ClassRowCM { Index = 1 }; GetSelectableClasses(selectedClasses); primaryTab.Classes = new ClassesCM { SelectedClasses = selectedClasses }; primaryTab.Stats = new StatsCM { Bonus = new StatBonusCM() }; primaryTab.Saves = new SavesCM(); primaryTab.Combat = new CombatCM(); primaryTab.Skills = new ProficiencyCM { isProficient = new IsProficientCM(), TotalBonus = new SkillBonusCM() }; vm.PrimaryTab = primaryTab; }
public void CMBuilder_buildNewClassRowCM() { //Arrange List <PlayableClass> playableClasses = CreateTestData.GetPlayableClasses(); List <ClassesListModel> ClassesLM = new List <ClassesListModel>(); foreach (PlayableClass playableClass in playableClasses) { ReadModelMapper <PlayableClass, ClassesListModel> mapper = new ReadModelMapper <PlayableClass, ClassesListModel>(); ClassesListModel lm = mapper.mapDataModelToViewModel(playableClass); ClassesLM.Add(lm); } var expected = new ClassRowCM { Index = 5, Level = 1, RemainingHitDice = 1, playableClasses = ClassesLM.ToArray() }; using (var mockAccess = AutoMock.GetLoose()) { mockAccess.Mock <IBaseUserAccess>() .Setup(x => x.GetAllPlayableClasses()).Returns(playableClasses); IBaseUserAccess access = mockAccess.Create <IBaseUserAccess>(); //Act ICharacterCMBuilder toTest = ProcessorFactory.GetCharacterCMBuilder(access); var actual = toTest.buildNewClassRowCM(5); //Assert actual.Should().BeEquivalentTo(expected); } }
public ClassRowCM buildKnownClassRowCM(int Index, Character_Class_Subclass ccsc, ClassesListModel[] CLM) { // Takes the set of list models as an argument, as //being passed references to the same set is more efficient than searching and obtaining the set again and again. //Still have to search for each class' subclasses, as that changes depending on the class. ReadModelMapper <Subclass, SubclassesListModel> subclassMapper = new ReadModelMapper <Subclass, SubclassesListModel>(); List <Subclass> foundSubclasses = _userAccess.GetAllSubclassesForClass(ccsc.Class_id).ToList(); List <SubclassesListModel> sclm = new List <SubclassesListModel>(); foreach (Subclass x in foundSubclasses) { SubclassesListModel lm = subclassMapper.mapDataModelToViewModel(x); sclm.Add(lm); } ClassRowCM cm = new ClassRowCM { Index = Index, playableClasses = CLM, SelectedClass_id = ccsc.Class_id, Level = ccsc.ClassLevel, RemainingHitDice = ccsc.RemainingHitDice, subclasses = sclm.ToArray(), SelectedSubclass_id = ccsc.Subclass_id }; return(cm); }
public static ClassesCM GetNonNullClassesCM() { List <ClassesListModel> classes = new List <ClassesListModel>(); foreach (PlayableClass pc in GetPlayableClasses()) { ClassesListModel clm = new ClassesListModel { Class_id = pc.Class_id, Name = pc.Name }; classes.Add(clm); } ClassRowCM classRowCM = new ClassRowCM { playableClasses = classes.ToArray(), Index = 1 }; ClassRowCM[] classesArray = new ClassRowCM[1]; classesArray[0] = classRowCM; ClassesCM classesCM = new ClassesCM { SelectedClasses = classesArray }; return(classesCM); }
//Subclasses are not set in here, as that is planned to be handled dynamically by javascript getting only subclasses for the class. public ClassRowCM buildNewClassRowCM(int Index) { ReadModelMapper <PlayableClass, ClassesListModel> mapper = new ReadModelMapper <PlayableClass, ClassesListModel>(); List <PlayableClass> foundClasses = _userAccess.GetAllPlayableClasses().ToList(); List <ClassesListModel> clm = new List <ClassesListModel>(); foreach (PlayableClass x in foundClasses) { ClassesListModel lm = mapper.mapDataModelToViewModel(x); clm.Add(lm); } ClassRowCM cm = new ClassRowCM { Index = Index, Level = 1, RemainingHitDice = 1, playableClasses = clm.ToArray() }; return(cm); }
public void CMBuilder_buildKnownClassRowCM() { //Arrange var Wizard_id = Guid.Parse("4e82620a-0496-4ecc-b6d4-05faa064310b"); var Caleb_id = Guid.Parse("361bd911-0702-437f-ab59-a29da0f9fba4"); var Transmutation_id = Guid.Parse("c8d2e23a-a193-4e06-8814-9180d4830732"); List <PlayableClass> playableClasses = CreateTestData.GetPlayableClasses(); List <ClassesListModel> ClassesLM = new List <ClassesListModel>(); foreach (PlayableClass playableClass in playableClasses) { ReadModelMapper <PlayableClass, ClassesListModel> mapper = new ReadModelMapper <PlayableClass, ClassesListModel>(); ClassesListModel lm = mapper.mapDataModelToViewModel(playableClass); ClassesLM.Add(lm); } List <Subclass> playableSubclasses = CreateTestData.GetListOfSubclass(); List <SubclassesListModel> SubclassesLM = new List <SubclassesListModel>(); foreach (Subclass subclass in playableSubclasses.Where(x => x.Class_id == Wizard_id)) { ReadModelMapper <Subclass, SubclassesListModel> mapper = new ReadModelMapper <Subclass, SubclassesListModel>(); SubclassesListModel lm = mapper.mapDataModelToViewModel(subclass); SubclassesLM.Add(lm); } Character_Class_Subclass Caleb_Wizard_Transmutation = new Character_Class_Subclass { Character_id = Guid.Parse("361bd911-0702-437f-ab59-a29da0f9fba4"), Class_id = Guid.Parse("4e82620a-0496-4ecc-b6d4-05faa064310b"), Subclass_id = Guid.Parse("c8d2e23a-a193-4e06-8814-9180d4830732"), RemainingHitDice = 12, ClassLevel = 12 }; ClassRowCM expected = new ClassRowCM { Index = 1, playableClasses = ClassesLM.ToArray(), SelectedClass_id = Wizard_id, Level = 12, RemainingHitDice = 12, subclasses = SubclassesLM.ToArray(), SelectedSubclass_id = Transmutation_id }; using (var mockAccess = AutoMock.GetLoose()) { mockAccess.Mock <IBaseUserAccess>() .Setup(x => x.GetKnownClassRecordOfCharaterAndClass(Caleb_id, Wizard_id)) .Returns(Caleb_Wizard_Transmutation); mockAccess.Mock <IBaseUserAccess>() .Setup(x => x.GetAllSubclassesForClass(Wizard_id)) .Returns(playableSubclasses.Where(x => x.Class_id == Wizard_id)); IBaseUserAccess access = mockAccess.Create <IBaseUserAccess>(); //Act ICharacterCMBuilder toTest = ProcessorFactory.GetCharacterCMBuilder(access); var actual = toTest.buildKnownClassRowCM(1, Caleb_Wizard_Transmutation, ClassesLM.ToArray()); //Assert actual.Should().BeEquivalentTo(expected); } }