void CompareReadLines(size_t count, const wxChar* expected[], EReadTextFile criteria) { CTextFile file; ASSERT_FALSE(file.IsOpened()); ASSERT_TRUE(file.Eof()); for (size_t j = 0; j < ArraySize(g_filesDefault); ++j) { CONTEXT(wxString(wxT("Checking file: ")) + g_filesDefault[j]); ASSERT_TRUE(file.Open(CPath(wxSTRINGIZE_T(SRCDIR)).JoinPaths(CPath(g_filesDefault[j])).GetRaw(), CTextFile::read)); wxArrayString lines = file.ReadLines(criteria); ASSERT_EQUALS(ArrToStr(count, expected), ArrToStr(lines)); ASSERT_EQUALS(count, lines.GetCount()); } ASSERT_TRUE(file.IsOpened()); ASSERT_TRUE(file.Eof()); };
virtual void run() { const wxChar* lines[] = { wxT(" # comment"), wxT("abc"), wxT("# foo bar"), wxT(" "), wxT("def ghi "), wxT(""), wxT("# xyz"), wxT(" xyz"), wxT(" "), wxT("") }; { CONTEXT(wxT("Writing lines manually")); CTextFile file; ASSERT_TRUE(file.Open(wxT("testfile.txt"), CTextFile::write)); for (size_t i = 0; i < ArraySize(lines); ++i) { CONTEXT(wxString::Format(wxT("Writing the %i'th line."), static_cast<int>(i))); ASSERT_TRUE(file.WriteLine(lines[i])); } } { CONTEXT(wxT("Reading manually written lines")); CTextFile file; ASSERT_TRUE(file.Open(wxT("testfile.txt"), CTextFile::read)); ASSERT_FALSE(file.Eof()); for (size_t i = 0; i < ArraySize(lines); ++i) { CONTEXT(wxString::Format(wxT("Reading the %i'th line."), static_cast<int>(i))); ASSERT_EQUALS(lines[i], file.GetNextLine()); } ASSERT_TRUE(file.Eof()); } { CONTEXT(wxT("Writing lines automatically")); CTextFile file; ASSERT_FALSE(file.IsOpened()); ASSERT_TRUE(file.Open(wxT("testfile.txt"), CTextFile::write)); ASSERT_TRUE(file.WriteLines(wxArrayString(ArraySize(lines), lines))); ASSERT_TRUE(file.IsOpened()); } { CONTEXT(wxT("Reading automatically written lines")); CTextFile file; ASSERT_FALSE(file.IsOpened()); ASSERT_TRUE(file.Open(wxT("testfile.txt"), CTextFile::read)); ASSERT_TRUE(file.IsOpened()); ASSERT_FALSE(file.Eof()); for (size_t i = 0; i < ArraySize(lines); ++i) { CONTEXT(wxString::Format(wxT("Reading the %i'th line."), static_cast<int>(i))); ASSERT_EQUALS(lines[i], file.GetNextLine()); } ASSERT_TRUE(file.Eof()); } }