public void GetAllMutations_EmptyDictionary_ReturnsEmptyResult()
        {
            MutationFinder finder = new MutationFinder(new MutationCheckerAlwaysFalse());
            List<string> result = finder.GetAllMutations("", new List<string>());

            Assert.That(result.Count, Is.EqualTo(0));
        }
        public void GetAllMutations_ForDictionaryWithTenElementsAndThreeValidMutations_ReturnThreeElements()
        {
            var checker = new MutationChecker();
            MutationFinder finder = new MutationFinder(checker);
            var sourceDict = new List<string> { "cot", "bat", "fat", "aaa", "bbb", "ccc", "ddd", "eee", "fff", "xxx" };
            List<string> result = finder.GetAllMutations("cat", sourceDict);

            Assert.That(result.Count, Is.EqualTo(3));
        }
        public void GetAllMutations_ForDictionaryOfValidMutations_ReturnAllElements()
        {
            var checker = new MutationCheckerAlwaysTrue();
            MutationFinder finder = new MutationFinder(checker);
            var sourceDict = new List<string> { "cot", "bat" };
            List<string> result = finder.GetAllMutations("cat", sourceDict);

            Assert.That(result.Count, Is.EqualTo(sourceDict.Count));
        }
        public void GetAllMuations_NotEmptyDictionary_MutationCheckerIsCalled()
        {
            var checker = new MutationCheckerAlwaysFalse();
            MutationFinder finder = new MutationFinder(checker);

            List<string> result = finder.GetAllMutations("cat", new List<string> { "hello", "eins" });

            Assert.That(checker.WasCalled, Is.True);
        }