Expanded ParserTest to test int based record with 1 to many records and items

This commit is contained in:
Kristian Flikka
2013-06-18 14:12:00 +02:00
parent de1983807d
commit 17dde28c49

View File

@@ -49,33 +49,69 @@ BOOST_AUTO_TEST_CASE(addKW_keyword_doesntfail) {
}
BOOST_AUTO_TEST_CASE(hasKeyword_hasKeyword_returnstrue) {
ParserPtr parser(new Parser());
parser->addKW(ParserKWConstPtr(new ParserKW("FJAS")));
BOOST_CHECK(parser->hasKeyword("FJAS"));
ParserPtr parser(new Parser());
parser->addKW(ParserKWConstPtr(new ParserKW("FJAS")));
BOOST_CHECK(parser->hasKeyword("FJAS"));
}
BOOST_AUTO_TEST_CASE(parseFromRawDeck_singleRawIntItem_deckReturned) {
ParserPtr parser(new Parser());
ParserKWPtr setupParserKWInt(int numberOfItems) {
ParserKWPtr parserKw(new ParserKW("RANDOM"));
ParserRecordPtr parserRecord(new ParserRecord());
ParserItemPtr intItem(new ParserIntItem("ETTALL", SINGLE));
parserRecord->addItem(intItem);
for (int i = 0; i < numberOfItems; i++) {
std::string name = "ITEM_" + boost::lexical_cast<std::string>(i);
ParserItemPtr intItem(new ParserIntItem(name, SINGLE));
parserRecord->addItem(intItem);
}
parserKw->setRecord(parserRecord);
parser->addKW(parserKw);
return parserKw;
}
RawDeckPtr setupRawDeckInt(int numberOfRecords, int numberOfItems) {
RawParserKWsConstPtr rawParserKWs(new RawParserKWs());
RawDeckPtr rawDeck(new RawDeck(rawParserKWs));
RawKeywordPtr rawKeyword(new RawKeyword("RANDOM"));
rawKeyword->addRawRecordString("1");
for (int records = 0; records < numberOfRecords; records++) {
for (int i = 0; i < numberOfItems; i++)
rawKeyword->addRawRecordString("42 ");
rawKeyword->addRawRecordString("/");
}
rawDeck->addKeyword(rawKeyword);
DeckPtr deck = parser->parseFromRawDeck(rawDeck);
BOOST_CHECK(deck->hasKeyword("RANDOM"));
return rawDeck;
}
BOOST_AUTO_TEST_CASE(parseFromRawDeck_singleRawSingleIntItem_deckReturned) {
ParserPtr parser(new Parser());
parser->addKW(setupParserKWInt(1));
DeckPtr deck = parser->parseFromRawDeck(setupRawDeckInt(1,1));
BOOST_CHECK(!deck->hasKeyword("ANDOM"));
BOOST_CHECK(deck->hasKeyword("RANDOM"));
BOOST_CHECK_EQUAL(1U, deck->getKeyword("RANDOM")->getRecord(0)->size());
}
BOOST_AUTO_TEST_CASE(parseFromRawDeck_singleRawRecordsSeveralIntItem_deckReturned) {
ParserPtr parser(new Parser());
parser->addKW(setupParserKWInt(50));
DeckPtr deck = parser->parseFromRawDeck(setupRawDeckInt(1, 50));
BOOST_CHECK(deck->hasKeyword("RANDOM"));
BOOST_CHECK_EQUAL(50U, deck->getKeyword("RANDOM")->getRecord(0)->size());
}
BOOST_AUTO_TEST_CASE(parseFromRawDeck_severalRawRecordsSeveralIntItem_deckReturned) {
ParserPtr parser(new Parser());
parser->addKW(setupParserKWInt(50));
DeckPtr deck = parser->parseFromRawDeck(setupRawDeckInt(10, 50));
BOOST_CHECK(deck->hasKeyword("RANDOM"));
BOOST_CHECK_EQUAL(10U, deck->getKeyword("RANDOM")->size());
BOOST_CHECK_EQUAL(50U, deck->getKeyword("RANDOM")->getRecord(0)->size());
}
@@ -84,3 +120,4 @@ BOOST_AUTO_TEST_CASE(parseFromRawDeck_singleRawIntItem_deckReturned) {