public void CollectAllTheClues_NoAssertions() { const string DIRECTORY_WITH_PUZ_FILES = @"C:\Users\Chip\Source\Repos\WordPuzzle3\WordPuzzlesTest\data\PUZ"; ClueRepository clues = new ClueRepository(); clues.ReadFromDisk(); foreach (string file in Directory.EnumerateFiles(DIRECTORY_WITH_PUZ_FILES, "*.json")) { Console.WriteLine($"Adding {file}, words so far {clues.CountOfWordWithClues}."); clues.ReadFromDisk(file); } // ReSharper disable StringLiteralTypo clues.WriteToDisk(DIRECTORY_WITH_PUZ_FILES + @"\allclues.json"); // ReSharper restore StringLiteralTypo }
public void AllWords_ContainsSpecificWords(string word) { ClueRepository clues = new ClueRepository(); clues.ReadFromDisk(); var cluesForWord = clues.GetCluesForWord(word); foreach (var clueForWord in cluesForWord) { Console.WriteLine($"{word.ToUpperInvariant()}: {clueForWord.ClueText}"); } Assert.Less(0, clues.GetCluesForWord(word).Count, $"Expected at least one clue for {word.ToUpperInvariant()}"); }
public void MultipleClues_PopulatesClueDictionary() { ClueRepository repository = new ClueRepository(); repository.ReadFromDisk(@"data\expected_nonempty_clue_repository.json"); Assert.AreEqual(2, repository.CountOfWordWithClues); List <Clue> clues = repository.GetCluesForWord("ONES"); Assert.AreEqual(2, clues.Count); List <Clue> cluesForLego = repository.GetCluesForWord("Lego"); Assert.AreEqual(1, cluesForLego.Count); Assert.AreEqual("A small colorful brick.", cluesForLego[0].ClueText); Assert.AreEqual(ClueSource.ClueSourceChip, cluesForLego[0].ClueSource); }
public void LongerPhrase_ReturnsExpectedResult(bool includeSolution) { const string HTML_DIRECTORY = @"html\ReadDownColumn\"; string SOURCE_DIRECTORY = ConfigurationManager.AppSettings["SourceDirectory"] + "ReadDownColumn"; ClueRepository clueRepository = new ClueRepository(); clueRepository.ReadFromDisk(); var puzzle = new ReadDownColumnPuzzle { Solution = "XRAY", Words = { "boxing", "parent", "brazen", "joyful" }, Clues = new List <string> { clueRepository.GetCluesForWord("boxing")[0].ClueText, clueRepository.GetCluesForWord("parent")[0].ClueText, clueRepository.GetCluesForWord("brazen")[0].ClueText, clueRepository.GetCluesForWord("joyful")[0].ClueText, } }; string generatedHtml = puzzle.FormatHtmlForGoogle(includeSolution); var actualFileName = "actualExample1.html"; if (includeSolution) { actualFileName = "actualExampleWithSolution1.html"; } File.WriteAllText(HTML_DIRECTORY + actualFileName, generatedHtml); var expectedFileName = "expectedExample1.html"; if (includeSolution) { expectedFileName = "expectedExampleWithSolution1.html"; } string[] expectedLines = new[] { " " };// need to have something to be different from generated file. if (File.Exists(HTML_DIRECTORY + expectedFileName)) { expectedLines = File.ReadAllLines(HTML_DIRECTORY + expectedFileName); } var actualLines = File.ReadAllLines(HTML_DIRECTORY + actualFileName); bool anyLinesDifferent = false; for (var index = 0; index < expectedLines.Length; index++) { string expectedLine = expectedLines[index]; string actualLine = "End of file already reached."; if (index >= 0 && actualLines.Length > index) { actualLine = actualLines[index]; } if (expectedLine != actualLine) { anyLinesDifferent = true; Console.WriteLine($"Expected Line {index}:{expectedLine}"); Console.WriteLine($" Actual Line {index}:{expectedLine}"); } } if (anyLinesDifferent) { Console.WriteLine("Updating source file. Will show up as a difference in source control."); File.WriteAllLines(SOURCE_DIRECTORY + $@"\{expectedFileName}", actualLines); } Assert.IsFalse(anyLinesDifferent, "Didn't expect any lines to be different."); }