#include #include "request.hh" #include "mobile.hh" class Request_test: public CxxTest::TestSuite { public: void test_constructors(void) { // Default constructor Request r1 ; std::unordered_map measurements ; Request r2(measurements) ; TS_ASSERT_EQUALS(r1, r2) ; // Copy constructor struct timespec current_time ; Measurement meas1 ; measurements["aa:bb:cc:dd:ee:ff"] = meas1 ; clock_gettime(CLOCK_REALTIME, ¤t_time) ; Mobile mob1 ; Request r3(&mob1, current_time, measurements) ; Request r4(r3) ; TS_ASSERT_EQUALS(r3, r4) ; } void test_accessors(void) { // Simple read accessors Timestamp current_time ; current_time.now() ; AccessPoint ap1(Point3D(1,2,3), "192.168.0.1", "aa:bb:cc:dd:ee:ff") ; Measurement meas1(&ap1) ; std::unordered_map measurements ; measurements["aa:bb:cc:dd:ee:ff"] = meas1 ; Mobile mob1 ; Request r1(&mob1, current_time, measurements) ; TS_ASSERT_EQUALS(r1.get_mobile(), &mob1) ; TS_ASSERT_EQUALS(r1.get_time_sent(), current_time) ; TS_ASSERT_EQUALS(r1.get_measurements(), measurements) ; // Write & read accessors Mobile mob2 ; r1.set_mobile(&mob2) ; TS_ASSERT_EQUALS(r1.get_mobile(), &mob2) ; current_time = static_cast(current_time) + 10 ; r1.set_time_sent(current_time) ; TS_ASSERT_EQUALS(r1.get_time_sent(), current_time) ; AccessPoint ap2(Point3D(3,2,1), "192.168.0.2", "aa:bb:cc:dd:ee:02") ; Measurement meas2(&ap2) ; measurements["aa:bb:cc:dd:ee:02"] = meas2 ; r1.set_measurements(measurements) ; TS_ASSERT_EQUALS(r1.get_measurements(), measurements) ; // clear() r1.clear() ; Request r2 ; TS_ASSERT_EQUALS(r1, r2) ; } void test_operators(void) { // == struct timespec current_time ; std::unordered_map measurements ; Measurement meas1 ; measurements["aa:bb:cc:dd:ee:00"] = meas1 ; clock_gettime(CLOCK_REALTIME, ¤t_time) ; Request r1(current_time, measurements) ; Request r2(current_time, measurements) ; TS_ASSERT_EQUALS(r1, r2) ; Mobile mob1 ; Request r3(&mob1, current_time, measurements) ; Request r4(&mob1, current_time, measurements) ; TS_ASSERT_EQUALS(r3, r4) ; // != Measurement meas2 ; measurements["aa:bb:cc:dd:ee:01"] = meas2 ; Request r5(&mob1, current_time, measurements) ; TS_ASSERT(r4 != r5) ; // = r2 = r3 ; TS_ASSERT_EQUALS(r2, r3) ; // bool TS_ASSERT(r5) ; Request r6 ; TS_ASSERT(! r6) ; } } ;