Added more line by line checks, very much WIP. Failing unit test.

This commit is contained in:
Kristian Flikka
2013-03-15 16:09:24 +01:00
parent 307c09602f
commit 1fab5c2e1c
2 changed files with 27 additions and 5 deletions
+15 -5
View File
@@ -5,6 +5,7 @@
* Created on March 11, 2013, 3:40 PM
*/
#include <boost/filesystem.hpp>
#include <boost/algorithm/string.hpp>
#include <iostream>
#include <fstream>
using std::ifstream;
@@ -29,16 +30,25 @@ EclipseDeck Parser::parse() {
m_log.append("ERROR: unable to open file");
return deck;
}
std::string line;
while (!inputstream.eof()) {
std::getline(inputstream, line);
if (line.substr(0, 2) != "--") {
deck.addKeyword(line);
if (line.substr(0, 2) == "--") {
m_log.append("COMMENT LINE < " + line + ">\n");
}
else if (boost::algorithm::trim_copy(line).length() == 0) {
m_log.append("EMPTY LINE <" + line + ">\n");
}
else if (line.substr(0, 1) != " " && boost::algorithm::to_upper_copy(line) == line) {
deck.addKeyword(line);
m_log.append("KEYWORD LINE <" + line + ">\n");
}
else {
m_log.append("SOMETHING ELSE <" + line + ">\n");
}
m_log.append("Line: " + line + "\n");
}
writeLogToFile();
inputstream.close();
return deck;
}
+12
View File
@@ -34,6 +34,18 @@ TEST(ParserTest, ParseFileWithOneKeyword) {
delete parser;
}
TEST(ParserTest, ParseFileWithManyKeywords) {
boost::filesystem::path multipleKeywordFile("testdata/ECLIPSE.DATA");
Parser * parser = new Parser(multipleKeywordFile.string());
EclipseDeck deck = parser->parse();
ASSERT_EQ(1, deck.getNumberOfKeywords());
ASSERT_EQ((unsigned int)1, deck.getKeywords().size());
delete parser;
}
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();