DocCasoPrueba.cpp

Ir a la documentaciĆ³n de este archivo.
00001 // vim: set expandtab tabstop=8 shiftwidth=8 foldmethod=marker:
00013 #include <sstream>
00014 #include <vector>
00015 
00016 #include "DocCasoPrueba.hpp"
00017 
00018 CPPUNIT_TEST_SUITE_REGISTRATION(DocCasoPrueba);
00019 
00020 void DocCasoPrueba::prueba_base()
00021 {
00022         Doc d("u", "c", "2009-09-30");
00023         CPPUNIT_ASSERT(d.URL == "u");
00024         CPPUNIT_ASSERT(d.cond == "c");
00025         CPPUNIT_ASSERT(d.fecha == "2009-09-30");
00026 
00027         std::stringstream ss;
00028         ss.clear();
00029         ss.str("");
00030 
00031         ss << d ;
00032         CPPUNIT_ASSERT(ss.str() == "u c 2009-09-30\n");
00033 
00034         Doc g("con\nnoimp", "c", "2010-01-05");
00035         ss.clear();
00036         ss.str("");
00037         ss << g ;
00038         //clog << "ss es " << ss.str() << endl;
00039         string cc = "con\%0anoimp c 2010-01-05\n";
00040         //clog << "cc es " << cc << endl;
00041         CPPUNIT_ASSERT(ss.str() == cc);
00042 
00043         ss.clear();
00044         ss.str("");
00045         for (unsigned int i = 0; i < MAXLURL; i++) {
00046                 ss << "aa";
00047         }
00048 
00049         g.URL = ss.str();
00050         CPPUNIT_ASSERT_THROW(ss << g, std::string);
00051 
00052 
00053         d.numoc=1;
00054         Doc e("u", "c", "2009-09-30");
00055         e.numoc=2;
00056         CPPUNIT_ASSERT(d < e);
00057         Doc f("u", "c", "2009-09-29");
00058         CPPUNIT_ASSERT(f < d);
00059         CPPUNIT_ASSERT(f < e);
00060 
00061 }
00062 
00063 void DocCasoPrueba::prueba_escribeDocs()
00064 {
00065 
00066         vector<Doc> vdoc;
00067 
00068         vdoc.push_back(Doc("x","y","2009-09-30"));
00069 
00070         std::stringstream sos;
00071 
00072         sos.clear();
00073         sos << "";
00074         escribeDocs(sos, vdoc);
00075         CPPUNIT_ASSERT(sos.str() == "x y 2009-09-30\n" );
00076 
00077         vdoc.push_back(Doc("u","v","2008-09-30"));
00078         sos.clear();
00079         sos.str("");
00080         escribeDocs(sos, vdoc);
00081         CPPUNIT_ASSERT(sos.str() == "x y 2009-09-30\nu v 2008-09-30\n" );
00082 
00083         sos.clear();
00084         sos.str("");
00085         vector<long> reord;
00086         reord.push_back(1);
00087         reord.push_back(0);
00088         escribeDocs(sos, vdoc, &reord);
00089         CPPUNIT_ASSERT(sos.str() == "u v 2008-09-30\nx y 2009-09-30\n" );
00090 }
00091 
00092 void DocCasoPrueba::prueba_leeDocs()
00093 {
00094         std::stringstream ss;
00095         ss.clear();
00096         ss.str("");
00097         vector<Doc> vdoc;
00098         vdoc = leeDocs(ss);
00099         CPPUNIT_ASSERT(vdoc.size() == 0);
00100         ss.clear();
00101         ss.str("a");
00102         CPPUNIT_ASSERT_THROW(leeDocs(ss), std::string);
00103         ss.clear();
00104         ss.str("a b");
00105         CPPUNIT_ASSERT_THROW(leeDocs(ss), std::string);
00106         ss.clear();
00107         ss.str("a b c");
00108         CPPUNIT_ASSERT_THROW(leeDocs(ss), std::string);
00109         ss.clear();
00110         ss.str("a b 2009-01");
00111         CPPUNIT_ASSERT_THROW(leeDocs(ss), std::string);
00112         //clog << "1" << endl;
00113         ss.clear();
00114         ss.str("a\n b 2009-01");
00115         CPPUNIT_ASSERT_THROW(leeDocs(ss), std::string);
00116         //clog << "2" << endl;
00117         ss.clear();
00118         ss.str("a b 2009-01-\n");
00119         CPPUNIT_ASSERT_THROW(leeDocs(ss), std::string);
00120         //clog << "3" << endl;
00121         ss.clear();
00122         ss.str("a b 2009-01-01");
00123         CPPUNIT_ASSERT_THROW(leeDocs(ss), std::string);
00124 
00125         //clog << "4" << endl;
00126 
00127         ss.clear();
00128         ss.str("a b 2009-01-01\n");
00129         vdoc = leeDocs(ss);
00130         //clog << "vdoc.size=" << vdoc.size() << endl;
00131         CPPUNIT_ASSERT(vdoc.size() == 1);
00132         CPPUNIT_ASSERT(vdoc[0].URL == "a");
00133         CPPUNIT_ASSERT(vdoc[0].cond == "b");
00134         CPPUNIT_ASSERT(vdoc[0].fecha == "2009-01-01");
00135 }
00136 
00137 
00138 void DocCasoPrueba::prueba_mezclaDocs()
00139 {
00140         std::stringstream ss;
00141         ss.clear();
00142         ss << "";
00143 
00144         vector<Doc> docs1;
00145         docs1.push_back(Doc("a", "d", "2001-01-01"));
00146         vector<Doc> docs2;
00147         docs2.push_back(Doc("a", "b", "2009-01-01"));
00148         docs1.push_back(Doc("b", "b", "2009-01-01"));
00149 
00150         vector<long> renum = mezclaDocs(docs1, docs2);
00151         CPPUNIT_ASSERT(renum.size() == 2);
00152         CPPUNIT_ASSERT(renum[0] == 0);
00153         CPPUNIT_ASSERT(docs1.size() == 2);
00154         CPPUNIT_ASSERT(docs2.size() == 2);
00155         CPPUNIT_ASSERT(docs2[0].URL == "a");
00156         CPPUNIT_ASSERT(docs2[0].cond == "d");
00157         CPPUNIT_ASSERT(docs2[0].fecha == "2001-01-01");
00158 }
00159 

Generado el Wed Jan 6 06:58:21 2010 para Mt77 por  doxygen 1.5.4