Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include <ept/test.h>
00020 #include <ept/apt/apt.h>
00021 #include <set>
00022 #include <algorithm>
00023
00024 using namespace std;
00025 using namespace ept;
00026 using namespace ept::apt;
00027
00028 struct TestApt : AptTestEnvironment {
00029 Apt apt;
00030
00031
00032 Test iterators()
00033 {
00034 Apt::iterator i = apt.begin();
00035 assert(i != apt.end());
00036
00037 size_t count = 0;
00038 for (; i != apt.end(); ++i)
00039 ++count;
00040
00041 assert(count > 100);
00042 }
00043
00044
00045 Test aptExists()
00046 {
00047 set<string> packages;
00048
00049 std::copy(apt.begin(), apt.end(), inserter(packages, packages.begin()));
00050
00051 assert(packages.find("libsp1") != packages.end());
00052
00053
00054
00055 assert(packages.find("") == packages.end());
00056 }
00057
00058
00059 Test timestamp()
00060 {
00061 time_t ts = apt.timestamp();
00062 assert(ts > 1000000);
00063 }
00064
00065
00066 Test validity()
00067 {
00068 assert(apt.isValid("apt"));
00069 assert(!apt.isValid("this-package-does-not-really-exists"));
00070 }
00071
00072
00073 Test versions()
00074 {
00075 std::string pkg("apt");
00076 Version ver = apt.candidateVersion(pkg);
00077 assert(ver.isValid());
00078
00079 ver = apt.installedVersion(pkg);
00080 assert(ver.isValid());
00081
00082 ver = apt.anyVersion(pkg);
00083 assert(ver.isValid());
00084
00085 std::string pkg1("this-package-does-not-really-exists");
00086 ver = apt.candidateVersion(pkg1);
00087 assert(!ver.isValid());
00088
00089 ver = apt.installedVersion(pkg1);
00090 assert(!ver.isValid());
00091
00092 ver = apt.anyVersion(pkg1);
00093 assert(!ver.isValid());
00094 }
00095
00096
00097 Test versionValidity()
00098 {
00099 Version ver = apt.candidateVersion("apt");
00100 assert(apt.validate(ver) == ver);
00101
00102 ver = Version("this-package-does-not-really-exists", "0.1");
00103 assert(!apt.validate(ver).isValid());
00104
00105 ver = Version("apt", "0.31415");
00106 assert(!apt.validate(ver).isValid());
00107 }
00108
00109
00110 Test rawRecord()
00111 {
00112 string pkg("sp");
00113 Version ver = apt.candidateVersion(pkg);
00114 assert(ver.isValid());
00115 assert(apt.validate(ver) == ver);
00116
00117 string record = apt.rawRecord(ver);
00118 assert(record.find("Package: sp") != string::npos);
00119 assert(record.find("Section: text") != string::npos);
00120
00121 record = apt.rawRecord(Version("sp", "0.31415"));
00122 assert_eq(record, string());
00123
00124 assert_eq(apt.rawRecord(pkg), apt.rawRecord(apt.anyVersion(pkg)));
00125 }
00126
00127
00128 Test state()
00129 {
00130 PackageState s = apt.state("kdenetwork");
00131 assert(s.isValid());
00132 assert(s.isInstalled());
00133
00134 s = apt.state("this-package-does-not-really-exists");
00135 assert(!s.isValid());
00136 }
00137
00138
00139 Test recordIteration()
00140 {
00141 size_t count = 0;
00142 for (Apt::record_iterator i = apt.recordBegin();
00143 i != apt.recordEnd(); ++i)
00144 {
00145 assert((*i).size() > 8);
00146 assert_eq((*i).substr(0, 8), "Package:");
00147 ++count;
00148 }
00149 assert(count > 200);
00150 }
00151
00152
00153 Test recordIteration2()
00154 {
00155 size_t count = 0;
00156 for (Apt::record_iterator i = apt.recordBegin();
00157 i != apt.recordEnd(); ++i)
00158 {
00159 assert(i->size() > 8);
00160 assert_eq(i->substr(0, 8), "Package:");
00161 ++count;
00162 }
00163 assert(count > 200);
00164 }
00165
00166
00167 Test stlIteration()
00168 {
00169 vector<string> out;
00170 std::copy(apt.begin(), apt.end(), back_inserter(out));
00171 }
00172
00173
00174 Test stlRecordIteration()
00175 {
00176 vector<string> out;
00177 std::copy(apt.recordBegin(), apt.recordEnd(), back_inserter(out));
00178 }
00179
00180
00181 Test checkUpdates()
00182 {
00183 assert(apt.isValid("apt"));
00184 apt.checkCacheUpdates();
00185 assert(apt.isValid("apt"));
00186 apt.invalidateTimestamp();
00187 apt.checkCacheUpdates();
00188 assert(apt.isValid("apt"));
00189 }
00190
00191 };
00192
00193