// // SkillsTests.cs // // Copyright (c) František Boháček. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. using Xunit.Abstractions; namespace NosSmooth.Game.Tests.Modules; /// /// Tests for Game.Skills. /// public class SkillsTests { private readonly ITestOutputHelper _testOutputHelper; /// /// Initializes a new instance of the class. /// /// The test output helper. public SkillsTests(ITestOutputHelper testOutputHelper) { _testOutputHelper = testOutputHelper; } /// /// Tests packets from init_morph_use.log. /// /// A representing the asynchronous unit test. [Fact] public async Task Init_Morph_Use() { var data = PacketFileClient.CreateFor("init_morph_use", _testOutputHelper); data.Game.Skills.ShouldBeNull(); await data.Client.ExecuteUntilLabelAsync("AFTER_SKILLS_INITIALIZED"); data.Game.Skills.ShouldNotBeNull(); data.Game.Skills.PrimarySkill.SkillVNum.ShouldBe(240); data.Game.Skills.SecondarySkill.SkillVNum.ShouldBe(241); data.Game.Skills.OtherSkills.ShouldNotBeEmpty(); data.Game.Skills.OtherSkills.Count.ShouldBe(3); data.Game.Skills.OtherSkills.Last().SkillVNum.ShouldBe(236); await data.Client.ExecuteUntilLabelAsync("AFTER_MORPH"); data.Game.Skills.ShouldNotBeNull(); data.Game.Skills.PrimarySkill.SkillVNum.ShouldBe(922); data.Game.Skills.SecondarySkill.SkillVNum.ShouldBe(922); data.Game.Skills.OtherSkills.Count.ShouldBe(11); data.Game.Skills.OtherSkills.ShouldAllBe(x => x.SkillVNum > 921 && x.SkillVNum < 933); await data.Client.ExecuteUntilLabelAsync("AFTER_MORPH_OFF"); data.Game.Skills.ShouldNotBeNull(); data.Game.Skills.PrimarySkill.SkillVNum.ShouldBe(240); data.Game.Skills.SecondarySkill.SkillVNum.ShouldBe(241); data.Game.Skills.OtherSkills.ShouldNotBeEmpty(); data.Game.Skills.OtherSkills.Count.ShouldBe(3); data.Game.Skills.OtherSkills.Last().SkillVNum.ShouldBe(236); await data.Client.ExecuteUntilLabelAsync("AFTER_SKILL_USED"); data.Game.Skills.ShouldNotBeNull(); data.Game.Skills.PrimarySkill.IsOnCooldown.ShouldBeTrue(); await data.Client.ExecuteUntilLabelAsync("AFTER_SKILL_REFRESHED"); data.Game.Skills.ShouldNotBeNull(); data.Game.Skills.PrimarySkill.IsOnCooldown.ShouldBeFalse(); } }