const char* fakeGenerats[] = {
"generats/Un autor - Una obra [imprimible].pdf",
"generats/Un autor - Una obra [marca d'aigua].pdf",
"generats/Un autor - Una obra [multiples fitxers html].war",
0 // Aquest zero es necessari per finalitzar el bucle
};
for (unsigned i = 0; fakeGenerats[i]; i++)
std::ofstream newfile( fakeGenerats[i] ) ;
ConversorHtml conversor;
creaFitxerOriginal("Original.odt", 99); // El metode helper l'heu de copiar d'un altre test
conversor.converteix("originals/Original.odt","generats/Prefix");
es crea un fitxer anomenat "generats/Prefix [multiples fitxers html].war".
Usa el LibFileSystem::llistaDirectoriOrdenadament per fer l'ASSERT.
Passem a verd ràpid simplement creant el fitxer amb un std::ofstream.
Després refactoritzem per usar els paràmetres que rep converteix
"War file generated from 'originals/Original.odt' with 99 pages\n"Ho podeu escriure, primer insertant el literal i, després cridant a la llibreria libOpenOffice2Html.
ConversorHtml conversorHtml;
Conversor & conversor = conversorHtml; // Variable polimorfica
creaFitxerOriginal("Original.odt", 222);
// cridara a un o l'altre segons si converteix esta o no definit virtual a la base i si la signatura es identica
conversor.converteix("originals/Original.odt","generats/Prefix");
ASSERT_EQUALS(...)
El test cascara o no depenen de si està definit converteix com a virtual o no.
Sempre que definiu una classe base amb funcions virtuals heu de
definir-li un destructor virtual, encara que sigui buit!!!!grupDeConversors.afegeix("html");
grupDeConversors.afegeix("pdf_imprimible"); // Sense marca d'aigua
grupDeConversors.afegeix("pdf_marcat"); // amb marca d'aigua
D'aquesta manera ocultem els tipus concrets de conversors als seus clients.
El grup de conversors defineix el seu propi mètode converteix
que crida recursivament als del seus agregats.
Els testos unitaris (TestGrupDeConversors.cxx) que cal fer
segueixen l'esquema de les altres composició múltiple que vam fer,
però, en un punt cal introduir el polimorfisme.
grupDeConversors.afegeix("doc");
que és un format que no suportem llencem una excepció
amb el missatge "Format no suportat".
std::ifstream config(configFilename.c_str()); std::string format; while (config >> format) // afegeix el format