#include #include "inputcsv.hh" #include "stock.hh" #include #include #include class InputCSV_test: public CxxTest::TestSuite { private: std::string csv_file_name ; // Test CSV file name std::vector aps ; // List of test CapturePoint public: InputCSV_test(void) { // If we cannot open the file, we want to stop the test CxxTest::setAbortTestOnFail(true) ; csv_file_name = "/tmp/InputCSV_test_csv_file.csv" ; TestUtil::create_test_csv_file(csv_file_name, true) ; // Back to the normal behaviour (i.e. do not abort on fail) CxxTest::setAbortTestOnFail(false) ; } ~InputCSV_test(void) { // Delete the test CSV file TestUtil::remove_file(csv_file_name) ; } static InputCSV_test* createSuite(void) { return new InputCSV_test() ; } static void destroySuite(InputCSV_test *suite) { delete suite ; } void test_inputcsv(void) { // Opening file InputCSV inputcsv1(csv_file_name) ; TS_ASSERT(inputcsv1) ; TS_ASSERT(! inputcsv1.eof()) ; Request request1 ; // First Request // request1 = inputcsv1.get_next_request() ; TS_ASSERT(request1) ; assert(request1.get_mobile()) ; TS_ASSERT_EQUALS(request1.get_mobile()->get_mac_addr(), TestUtil::mobiles[0].get_mac_addr()) ; TS_ASSERT_EQUALS(request1.get_time_sent(), TestUtil::requests.at(0)->get_time_sent()) ; for (auto i = TestUtil::aps.begin() ; i != TestUtil::aps.end() ; ++i) { std::unordered_map::const_iterator measurement_it1 = request1.get_measurements().find(i->get_mac_addr()) ; TS_ASSERT(request1.get_measurements().end() != measurement_it1) ; // We cannot compare the complete ss_list since there is not a // Measurement::get_ss_list() any more. } TS_ASSERT(inputcsv1) ; TS_ASSERT(! inputcsv1.eof()) ; // Second Request // request1 = inputcsv1.get_next_request() ; TS_ASSERT(request1) ; assert(request1.get_mobile()) ; TS_ASSERT_EQUALS(request1.get_mobile()->get_mac_addr(), TestUtil::mobiles[1].get_mac_addr()) ; TS_ASSERT_EQUALS(request1.get_time_sent(), TestUtil::requests.at(1)->get_time_sent()) ; for (auto i = TestUtil::aps.begin() ; i != TestUtil::aps.end() ; ++i) { std::unordered_map::const_iterator measurement_it1 = request1.get_measurements().find(i->get_mac_addr()) ; TS_ASSERT(request1.get_measurements().end() != measurement_it1) ; } // Third Request // TS_ASSERT(inputcsv1) ; TS_ASSERT(request1) ; assert(request1.get_mobile()) ; TS_ASSERT(! inputcsv1.eof()) ; request1 = inputcsv1.get_next_request() ; TS_ASSERT_EQUALS(request1.get_mobile()->get_mac_addr(), TestUtil::mobiles[0].get_mac_addr()) ; TS_ASSERT_EQUALS(request1.get_time_sent(), TestUtil::requests.at(2)->get_time_sent()) ; for (auto i = TestUtil::aps.begin() ; i != TestUtil::aps.end() ; ++i) { std::unordered_map::const_iterator measurement_it1 = request1.get_measurements().find(i->get_mac_addr()) ; TS_ASSERT(request1.get_measurements().end() != measurement_it1) ; } // End of file TS_ASSERT(inputcsv1) ; TS_ASSERT(! inputcsv1.eof()) ; request1 = inputcsv1.get_next_request() ; TS_ASSERT(! request1) ; TS_ASSERT(! inputcsv1) ; TS_ASSERT(inputcsv1.eof()) ; } } ;