diff --git a/ModDescription.cpp b/ModDescription.cpp index 24ab406..515ded0 100644 --- a/ModDescription.cpp +++ b/ModDescription.cpp @@ -35,12 +35,12 @@ int ModDescription::getReleaseNr() { } std::string ModDescription::getNextDependency() { - if(_depsIterator + 2 < _deps.size()) { + if(_depsIterator + 1 < _deps.size()) { _depsIterator++; return _deps[_depsIterator]; } else { _depsAtEnd = true; - return "getNextDependency failed..."; + return ""; } } @@ -79,10 +79,13 @@ void ModDescription::setRepositoryAddress(std::string repoaddr) { _repoaddr = repoaddr; } -void resetDependencyIterator() { +void ModDescription::resetDependencyIterator() { _depsIterator = -1; + if(_depsAtEnd == true) { + _depsAtEnd = false; + } } -bool dependenciesEnd() { +bool ModDescription::dependenciesEnd() { return _depsAtEnd; } diff --git a/ModDescription.h b/ModDescription.h index e02d295..d41bfe4 100644 --- a/ModDescription.h +++ b/ModDescription.h @@ -10,7 +10,7 @@ /// \namespace mmm /// \brief A global namespace for 3m -namespace mmm } +namespace mmm { /// \class ModDescription /// \brief A class describing a mod. class ModDescription { @@ -30,7 +30,7 @@ public: ///< \return Mod name. std::string getDescription(); ///< \brief A function returning mod description. ///< \return Mod description. - std::string getReleaseNr(); ///< \brief A function returning 3m package release number. + int getReleaseNr(); ///< \brief A function returning 3m package release number. ///< \return 3m package release number. std::string getNextDependency(); ///< \brief A function returning next dependency from the dependency list. ///< \return Next dependency from the dependency list. diff --git a/OBJECTS b/OBJECTS index 4bc15eb..fb9b29f 100644 --- a/OBJECTS +++ b/OBJECTS @@ -1,5 +1,5 @@ ModDescription: name, description, release, deps, repotype, repoaddr -ModList: name, vector +ModList: ModListDescription, vector LocalModDescription: ModDescription + remoteModlist (inheritance) LocalModList: vector RepositoryModDescription: ModDescription + path (inheritance) diff --git a/filetesters/configparser b/filetesters/configparser new file mode 100755 index 0000000..f8f960f Binary files /dev/null and b/filetesters/configparser differ diff --git a/filetesters/modinfoparser b/filetesters/modinfoparser new file mode 100755 index 0000000..d1cc855 Binary files /dev/null and b/filetesters/modinfoparser differ diff --git a/filetesters/modlistparser b/filetesters/modlistparser new file mode 100755 index 0000000..76dba76 Binary files /dev/null and b/filetesters/modlistparser differ diff --git a/tests/Makefile b/tests/Makefile index 60461c7..3ea4225 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -1,7 +1,9 @@ CXXFLAGS=-Wall all: ${CXX} ${CXXFLAGS} -o ConfigFileTest ConfigFileTest.cpp ../ConfigFile.cpp ../3mExceptions.cpp + ${CXX} ${CXXFLAGS} -o ModDescriptionTest ModDescriptionTest.cpp ../ModDescription.cpp debug: ${CXX} ${CXXFLAGS} -o ConfigFileTest ConfigFileTest.cpp ../ConfigFile.cpp ../3mExceptions.cpp -g + ${CXX} ${CXXFLAGS} -o ModDescriptionTest ModDescriptionTest.cpp ../ModDescription.cpp -g clean: - rm -rf ConfigFileTest + rm -rf ConfigFileTest ModDescriptionTest diff --git a/tests/ModDescriptionTest.cpp b/tests/ModDescriptionTest.cpp new file mode 100644 index 0000000..110d955 --- /dev/null +++ b/tests/ModDescriptionTest.cpp @@ -0,0 +1,26 @@ +#include +#include +#include "../ModDescription.h" +using namespace std; + +int main() { +mmm::ModDescription md; +md.setName("test"); +md.setDescription("Test ModDescription entry"); +md.setReleaseNr(1); +md.setRepositoryType("archive"); +md.setRepositoryAddress("http://example.tld/mod.zip"); +md.insertDependency("test2"); +md.insertDependency("test3"); +cout << "Name: " << md.getName() << endl << "Description: " << md.getDescription() << endl << "Release number: " << md.getReleaseNr() << endl << "Depends on: "; +while(!md.dependenciesEnd()) { + cout << md.getNextDependency() << " "; +} +cout << endl << "Dependencies again: "; +md.resetDependencyIterator(); +while(!md.dependenciesEnd()) { + cout << md.getNextDependency() << " "; +} +cout << endl << "Repository type: " << md.getRepositoryType() << endl << "Repository address: " << md.getRepositoryAddress() << endl; +return EXIT_SUCCESS; +}