public void TryCreateCharacterAndGenerateJson() { string characterName = characterNameField.text; Race race = raceDropdownController.SelectedOption; Class class_ = classDropdownController.SelectedOption; Alignment alignment = alignmentDropdownController.SelectedOption; int.TryParse(highestRollFromHitDiceText.text, out var highestRollFromHitDice); int.TryParse(charismaText.text, out var charisma); int.TryParse(constitutionText.text, out var constitution); int.TryParse(dexterityText.text, out var dexterity); int.TryParse(intelligenceText.text, out var intelligence); int.TryParse(strengthText.text, out var strength); int.TryParse(wisdomText.text, out var wisdom); // Check for any invalid data if (string.IsNullOrEmpty(characterName) || highestRollFromHitDice == 0 || charisma == 0 || constitution == 0 || dexterity == 0 || intelligence == 0 || strength == 0 || wisdom == 0) { jsonOutputField.text = EvaluationErrorMessage; return; } // Continue if everything is ok var characterModel = new CharacterSheetModel(characterName, race, class_, alignment, highestRollFromHitDice, charisma, constitution, dexterity, intelligence, strength, wisdom); jsonOutputField.text = characterModel.ToJson(); GameManager.Instance.SaveCharacterSheetModel(characterModel); }
public void ToJson_ValidProperties_CorrectJson() { // Arrange var sut = new CharacterSheetModel("Kasper Dissing", Race.HalfElf, Class.Barbarian, Alignment.ChaoticEvil, 3, 0, 1, 2, 3, 4, 5); const string expected = @"{ ""CharacterName"": ""Kasper Dissing"", ""AbilityCharisma"": 2, ""AbilityConstitution"": 3, ""AbilityDexterity"": 4, ""AbilityIntelligence"": 5, ""AbilityStrength"": 6, ""AbilityWisdom"": 7, ""Race"": ""Half-Elf"", ""Class"": ""Barbarian"", ""Alignment"": ""Chaotic Evil"", ""ArmorClass"": 12, ""ExperiencePoints"": 0, ""CurrentHitPoints"": 5, ""MaxHitPoints"": 5, ""WalkingSpeed"": 12, ""RunningSpeed"": 25, ""RunningHighJump"": 9, ""StandingHighJump"": 4, ""Items"": [] }"; // Act var actual = sut.ToJson(); // Assert // Remove whitespace var cleanedActual = Regex.Replace(actual, @"\s+", ""); var cleanedExpected = Regex.Replace(expected, @"\s+", ""); Assert.That(cleanedActual, Is.EqualTo(cleanedExpected)); }