void StandardDocumentProcessorTestCase::testProcessWithEmptyField() { String sPath = writeTestFile("file_with_empty_field.txt", TEST_FILE_WITH_EMPTY_FIELD); StandardDocumentProcessor processor; processor.init(m_pDocSchema.get()); DocumentSource docSource(m_pDocSchema.get()); RawDocumentPtr pRawDoc = new RawDocument(); pRawDoc->setPath(sPath); docSource.setRawDocument(pRawDoc); processor.process(docSource); DocumentPtr pDoc = docSource.stealLastDocument(); CPPUNIT_ASSERT(pDoc.isNotNull()); Answer ans; makeAnswer(TEST_FILE_WITH_EMPTY_FIELD, ans); Document::Iterator it = pDoc->iterator(); CPPUNIT_ASSERT_EQUAL(ans.size(), it.size()); size_t i = 0; while (it.hasNext()) { const Field* pField = it.next(); // cout << ans[i].first << " : " << ans[i].second << endl; CPPUNIT_ASSERT_EQUAL(ans[i].first, pField->getFieldSchema()->getName()); CPPUNIT_ASSERT_EQUAL(ans[i].second, std::string(pField->getValue().c_str())); ++i; } }
void StandardDocumentProcessorTestCase::testProcessMultiFile() { string sPath = writeTestFile("file2.txt", TEST_FILE2); StandardDocumentProcessor processor; processor.init(m_pDocSchema.get()); DocumentSource docSource(m_pDocSchema.get()); Answer ans; makeAnswer(TEST_FILE2, ans); RawDocumentPtr pRawDoc = new RawDocument(); pRawDoc->setPath(sPath); docSource.setRawDocument(pRawDoc); size_t i = 0; do { processor.process(docSource); DocumentPtr pDoc = docSource.stealLastDocument(); CPPUNIT_ASSERT(pDoc.isNotNull()); Document::Iterator it = pDoc->iterator(); while (it.hasNext()) { const Field* pField = it.next(); CPPUNIT_ASSERT_EQUAL(ans[i].first, pField->getFieldSchema()->getName()); CPPUNIT_ASSERT_EQUAL(ans[i].second, std::string(pField->getValue().c_str())); ++i; } } while(docSource.toBeContinued()); CPPUNIT_ASSERT_EQUAL(ans.size(), i); }