76 lines
1.6 KiB
C++
76 lines
1.6 KiB
C++
|
#include <cxxtest/TestSuite.h>
|
||
|
|
||
|
#include "building.hh"
|
||
|
#include "waypoint.hh"
|
||
|
#include "area.hh"
|
||
|
|
||
|
class Building_test: public CxxTest::TestSuite
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
void test_constructors(void)
|
||
|
{
|
||
|
// Default constructor
|
||
|
Building b1 ;
|
||
|
Building b2("Unnamed building") ;
|
||
|
TS_ASSERT_EQUALS(b1, b2) ;
|
||
|
|
||
|
// Copy constructor
|
||
|
Building b3("My Enormous Building") ;
|
||
|
Building b4(b3) ;
|
||
|
TS_ASSERT_EQUALS(b3, b4) ;
|
||
|
}
|
||
|
|
||
|
|
||
|
void test_accessors(void)
|
||
|
{
|
||
|
// Simple read accessors
|
||
|
Building b1 ;
|
||
|
TS_ASSERT_EQUALS(b1.get_name(), "Unnamed building") ;
|
||
|
std::vector<Area*> va1 ;
|
||
|
TS_ASSERT_EQUALS(b1.get_areas(), va1) ;
|
||
|
std::vector<Waypoint*> vwp1 ;
|
||
|
TS_ASSERT_EQUALS(b1.get_waypoints(), vwp1) ;
|
||
|
|
||
|
// Write & read accessors
|
||
|
Building b2("My Building") ;
|
||
|
TS_ASSERT_EQUALS(b2.get_name(), "My Building") ;
|
||
|
b2.set_name("My Second Building") ;
|
||
|
TS_ASSERT_EQUALS(b2.get_name(), "My Second Building") ;
|
||
|
|
||
|
Waypoint *wp1 = new Waypoint(&b2, 43, 45, 909) ;
|
||
|
Waypoint *wp2 = new Waypoint(&b2, 12, 78, 2) ;
|
||
|
b2.add_waypoint(wp1) ;
|
||
|
b2.add_waypoint(wp2) ;
|
||
|
vwp1.push_back(wp1) ;
|
||
|
vwp1.push_back(wp2) ;
|
||
|
TS_ASSERT_EQUALS(b2.get_waypoints(), vwp1) ;
|
||
|
|
||
|
Area *a1 = new Area() ;
|
||
|
Area *a2 = new Area() ;
|
||
|
b2.add_area(a1) ;
|
||
|
b2.add_area(a2) ;
|
||
|
va1.push_back(a1) ;
|
||
|
va1.push_back(a2) ;
|
||
|
TS_ASSERT_EQUALS(b2.get_areas(), va1) ;
|
||
|
}
|
||
|
|
||
|
|
||
|
void test_operators(void)
|
||
|
{
|
||
|
// ==
|
||
|
Building b1("Build") ;
|
||
|
Building b2("Build") ;
|
||
|
TS_ASSERT_EQUALS(b1, b2) ;
|
||
|
|
||
|
// !=
|
||
|
Building b3("B2") ;
|
||
|
TS_ASSERT_DIFFERS(b1, b3) ;
|
||
|
|
||
|
// =
|
||
|
b2 = b3 ;
|
||
|
TS_ASSERT_EQUALS(b2, b3) ;
|
||
|
}
|
||
|
|
||
|
} ;
|