File: TestAllVehicles.cxx

package info (click to toggle)
mummy 1.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 1,628 kB
  • ctags: 1,000
  • sloc: cpp: 10,667; cs: 1,107; makefile: 22; xml: 8; sh: 5
file content (77 lines) | stat: -rw-r--r-- 1,842 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include "TestAllVehicles.h"

#include "Vehicle.h"
#include "Mustang.h"
#include "GenericMotorCycle.h"
#include "GenericSUV.h"
#include "RefCountedVehicle.h"
#include "UnwrappedClass.h"

#include <iostream>

int PrintAbstractVehicle(const char *context, AbstractVehicle *av)
{
  std::cerr << "context: " << context << std::endl;
  std::cerr << "  av: " << av << std::endl;
  std::cerr << "  GetVIN: " << (char*)(av->GetVIN() ? av->GetVIN() : "(null)") << std::endl;
  std::cerr << "  GetVehicleType: " << av->GetVehicleType() << std::endl;
  std::cerr << "  GetMileage: " << av->GetMileage() << std::endl;
  std::cerr << std::endl;

  return 0;
}

int TestAllVehicles::Main(int argc, char* argv[])
{
  int err = 0; // 0 == no error

  std::cerr << "CTEST_FULL_OUTPUT (Avoid ctest truncation of output)" << std::endl;
  std::cerr << "Begin TestAllVehicles::Main" << std::endl;

  Vehicle* vn = Vehicle::New();
  Vehicle& v1 = *vn;

  PrintAbstractVehicle("Vehicle", &v1);


  Mustang* mn = Mustang::New();
  Mustang& v2 = *mn;

  v2.SetVIN("non-default special VIN");
  PrintAbstractVehicle("Mustang", &v2);
  v2.StillWontBeWrapped(argc, argv, argv);


  GenericMotorCycle* mc3 =  GenericMotorCycle::New();
  GenericMotorCycle& v3 = *mc3;

  v3.SetVIN(0);
  PrintAbstractVehicle("GenericMotorCycle", &v3);


  GenericSUV* sn = GenericSUV::New();
  GenericSUV& v4 = *sn;

  v4.SetVIN(0);
  PrintAbstractVehicle("GenericSUV", &v4);


  std::cerr << "Calling RefCountedVehicle methods..." << std::endl;
  RefCountedVehicle* rcv = RefCountedVehicle::Create();
  rcv->MethodExcludedByBTXETX();
  rcv->Destroy();
  rcv = 0;


  UnwrappedClass* uwc = v4.YouCannotCallThisMethodFromTheWrappedLayer();
  delete uwc;

  v1.Delete();
  v2.Delete();
  v3.Delete();
  v4.Delete();

  std::cerr << "End TestAllVehicles::Main" << std::endl;

  return err;
}