Expanded ParserTest to test int based record with 1 to many records and items
This commit is contained in:
@@ -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) {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user