public void AdddingCharacterToCombatSequence_CharacterIsOrderedByPhasesAndDex() { CombatSequence sequence = Factory.SequenceWithFastMediumAndSlowCharacters; sequence.StartCombat(); //segment 12 Segment currentSegment = sequence.ActiveSegment; List <Phase> phases = currentSegment.CombatPhases; HeroSystemCharacter currentCharacter = phases.First().Character; Assert.AreEqual("Fast Character", currentCharacter.Name); currentCharacter = phases.ElementAt(1).Character; Assert.AreEqual("Medium Character", currentCharacter.Name); currentCharacter = phases.ElementAt(2).Character; Assert.AreEqual("Slow Character", currentCharacter.Name); //segment 2 currentSegment = sequence.SegmentAfter(currentSegment); currentSegment = sequence.SegmentAfter(currentSegment); phases = currentSegment.CombatPhases; currentCharacter = phases.ElementAt(0).Character; Assert.AreEqual("Fast Character", currentCharacter.Name); //segment 3 currentSegment = sequence.SegmentAfter(currentSegment); phases = currentSegment.CombatPhases; currentCharacter = phases.ElementAt(0).Character; Assert.AreEqual("Medium Character", currentCharacter.Name); //segment 4 currentSegment = sequence.SegmentAfter(currentSegment); phases = currentSegment.CombatPhases; currentCharacter = phases.First().Character; Assert.AreEqual("Fast Character", currentCharacter.Name); //segment 6 currentSegment = sequence.SegmentAfter(currentSegment); currentSegment = sequence.SegmentAfter(currentSegment); phases = currentSegment.CombatPhases; currentCharacter = phases.First().Character; Assert.AreEqual("Fast Character", currentCharacter.Name); currentCharacter = phases.ElementAt(1).Character; Assert.AreEqual("Medium Character", currentCharacter.Name); currentCharacter = phases.ElementAt(2).Character; Assert.AreEqual("Slow Character", currentCharacter.Name); }