using System.Collections.Generic; using Domain; using NUnit.Framework; public class KeySequenceTests { [Test] public void NoPresses_DontContain() { List sequence = new() { 0x1, 0x2, 0x3 }; KeyHistory history = new(); Assert.IsFalse(history.ContainsSequence(sequence)); } [Test] public void CorrectPresses_Contains() { List sequence = new() { 0x1, 0x2, 0x3 }; KeyHistory history = new(); history.KeyPressed(0x1); history.KeyPressed(0x2); history.KeyPressed(0x3); Assert.IsTrue(history.ContainsSequence(sequence)); } [Test] public void CorrectPresses_BeforeLast_DontContain() { List sequence = new() { 0x1, 0x2, 0x3 }; KeyHistory history = new(); history.KeyPressed(0x1); history.KeyPressed(0x2); history.KeyPressed(0x3); history.KeyPressed(0x1); Assert.IsFalse(history.ContainsSequence(sequence)); } [Test] public void IncorrectPresses_DontContain() { List sequence = new() { 0x1, 0x2, 0x3 }; KeyHistory history = new(); history.KeyPressed(0x1); history.KeyPressed(0x3); history.KeyPressed(0x2); Assert.IsFalse(history.ContainsSequence(sequence)); } [Test] public void BeginsWithSpecial_MustContain_Contains() { List sequence = new() { 0x1, 0x2, 0x3 }; KeyHistory history = new(); history.KeyPressed(0x5, true); history.KeyPressed(0x1); history.KeyPressed(0x2); history.KeyPressed(0x3); Assert.IsTrue(history.ContainsSequence(sequence, 0x5, true)); } [Test] public void DoesntBeginWithSpecial_MustContain_DontContain() { List sequence = new() { 0x1, 0x2, 0x3 }; KeyHistory history = new(); history.KeyPressed(0x1); history.KeyPressed(0x1); history.KeyPressed(0x2); history.KeyPressed(0x3); Assert.IsFalse(history.ContainsSequence(sequence, 0x5, true)); } [Test] public void BeginsWithSpecial_MustntContain_DontContain() { List sequence = new() { 0x1, 0x2, 0x3 }; KeyHistory history = new(); history.KeyPressed(0x5, true); history.KeyPressed(0x1); history.KeyPressed(0x2); history.KeyPressed(0x3); Assert.IsFalse(history.ContainsSequence(sequence, 0x5, false)); } [Test] public void DoesntBeginWithSpecial_MustntContain_Contains() { List sequence = new() { 0x1, 0x2, 0x3 }; KeyHistory history = new(); history.KeyPressed(0x1); history.KeyPressed(0x2); history.KeyPressed(0x3); Assert.IsTrue(history.ContainsSequence(sequence, 0x5, false)); } }