#include #include "calibrationrequest.hh" class CalibrationRequest_test: public CxxTest::TestSuite { public: void test_constructors(void) { // We can't test the default constructor with two different objects // like we usually do because the reception time is initialised by // the Request constructor. // Copy constructor Mobile mobile1 ; Timestamp timestamp1 ; timestamp1.now() ; Request request1(&mobile1, timestamp1) ; ReferencePoint referencepoint1 ; CalibrationRequest calibrationrequest1(request1, &referencepoint1) ; CalibrationRequest calibrationrequest2(calibrationrequest1) ; TS_ASSERT_EQUALS(calibrationrequest1, calibrationrequest2) ; // Request copy constructor /* We must force the request type to be the same in the Request and * in the CalibrationRequest, because by default it is set to * OWL_REQUEST_UNDEFINED for the Request and to * OWL_REQUEST_AUTOCALIBRATION for the CalibrationRequest. */ request1.set_type(OWL_REQUEST_CALIBRATION) ; CalibrationRequest calibrationrequest3(request1, &referencepoint1, Direction(1), OWL_REQUEST_CALIBRATION) ; TS_ASSERT_EQUALS(request1, calibrationrequest3) ; } void test_accessors(void) { // Note: for the moment, I leave the test of get_measurements() and // set_measurements() to Request_test. // Simple read accessors Mobile mobile1 ; Timestamp timestamp1 ; timestamp1.now() ; Request request1(&mobile1, timestamp1) ; Direction direction1(1) ; ReferencePoint referencepoint1(1,2,3) ; CalibrationRequest calibrationrequest1(request1, &referencepoint1, direction1) ; TS_ASSERT_EQUALS(calibrationrequest1.get_mobile(), &mobile1) ; TS_ASSERT_EQUALS(calibrationrequest1.get_time_sent(), timestamp1) ; TS_ASSERT_EQUALS(calibrationrequest1.get_direction(), direction1) ; TS_ASSERT_EQUALS(calibrationrequest1.get_reference_point(), &referencepoint1) ; // Write & read accessors Mobile mobile2 ; calibrationrequest1.set_mobile(&mobile2) ; TS_ASSERT_EQUALS(calibrationrequest1.get_mobile(), &mobile2) ; timestamp1 = 42 ; calibrationrequest1.set_time_sent(timestamp1) ; TS_ASSERT_EQUALS(calibrationrequest1.get_time_sent(), timestamp1) ; Direction direction2(2) ; calibrationrequest1.set_direction(direction2) ; TS_ASSERT_EQUALS(calibrationrequest1.get_direction(), direction2) ; ReferencePoint referencepoint2(4,3,2) ; calibrationrequest1.set_reference_point(&referencepoint2) ; TS_ASSERT_EQUALS(calibrationrequest1.get_reference_point(), &referencepoint2) ; calibrationrequest1.clear() ; CalibrationRequest calibrationrequest2 ; calibrationrequest2.clear() ; TS_ASSERT_EQUALS(calibrationrequest1, calibrationrequest2) ; } void test_operators(void) { // == Mobile mobile1 ; Timestamp timestamp1 ; timestamp1.now() ; Request request1(&mobile1, timestamp1) ; Direction direction1(1) ; ReferencePoint referencepoint1 ; CalibrationRequest calibrationrequest1(request1, &referencepoint1, direction1, OWL_REQUEST_CALIBRATION) ; CalibrationRequest calibrationrequest2(request1, &referencepoint1, direction1, OWL_REQUEST_CALIBRATION) ; TS_ASSERT_EQUALS(calibrationrequest1, calibrationrequest2) ; // != and == Direction direction2(2) ; calibrationrequest2.set_direction(direction2) ; TS_ASSERT(calibrationrequest1 != calibrationrequest2) ; calibrationrequest2.set_direction(direction1) ; TS_ASSERT_EQUALS(calibrationrequest1, calibrationrequest2) ; calibrationrequest2.set_type(OWL_REQUEST_AUTOCALIBRATION) ; TS_ASSERT(calibrationrequest1 != calibrationrequest2) ; calibrationrequest2.set_type(OWL_REQUEST_CALIBRATION) ; TS_ASSERT_EQUALS(calibrationrequest1, calibrationrequest2) ; timestamp1.now() ; Request request2(&mobile1, timestamp1) ; ReferencePoint referencepoint2 ; Direction direction3(3) ; CalibrationRequest calibrationrequest3(request2, &referencepoint2, direction3, OWL_REQUEST_AUTOCALIBRATION) ; TS_ASSERT(calibrationrequest1 != calibrationrequest3) ; // = calibrationrequest2 = calibrationrequest3 ; TS_ASSERT_EQUALS(calibrationrequest2, calibrationrequest3) ; } } ;