Blame examples/cppunittest/OrthodoxTest.h

Packit 8c9aa0
#ifndef ORTHODOXTEST_H
Packit 8c9aa0
#define ORTHODOXTEST_H
Packit 8c9aa0
Packit 8c9aa0
#include <cppunit/extensions/HelperMacros.h>
Packit 8c9aa0
#include "MockTestListener.h"
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
class OrthodoxTest : public CPPUNIT_NS::TestFixture
Packit 8c9aa0
{
Packit 8c9aa0
  CPPUNIT_TEST_SUITE( OrthodoxTest );
Packit 8c9aa0
  CPPUNIT_TEST( testValue );
Packit 8c9aa0
  CPPUNIT_TEST( testValueBadConstructor );
Packit 8c9aa0
  CPPUNIT_TEST( testValueBadInvert );
Packit 8c9aa0
  CPPUNIT_TEST( testValueBadEqual );
Packit 8c9aa0
  CPPUNIT_TEST( testValueBadNotEqual );
Packit 8c9aa0
  CPPUNIT_TEST( testValueBadCall );
Packit 8c9aa0
  CPPUNIT_TEST( testValueBadAssignment );
Packit 8c9aa0
  CPPUNIT_TEST_SUITE_END();
Packit 8c9aa0
Packit 8c9aa0
public:
Packit 8c9aa0
  OrthodoxTest();
Packit 8c9aa0
  virtual ~OrthodoxTest();
Packit 8c9aa0
Packit 8c9aa0
  virtual void setUp();
Packit 8c9aa0
  virtual void tearDown();
Packit 8c9aa0
Packit 8c9aa0
  void testValue();
Packit 8c9aa0
  void testValueBadConstructor();
Packit 8c9aa0
  void testValueBadInvert();
Packit 8c9aa0
  void testValueBadEqual();
Packit 8c9aa0
  void testValueBadNotEqual();
Packit 8c9aa0
  void testValueBadCall();
Packit 8c9aa0
  void testValueBadAssignment();
Packit 8c9aa0
Packit 8c9aa0
private:
Packit 8c9aa0
  class Value
Packit 8c9aa0
  {
Packit 8c9aa0
  public:
Packit 8c9aa0
    Value( int value =0 ) : m_value( value ) {}
Packit 8c9aa0
Packit 8c9aa0
    Value& operator= ( const Value& v )
Packit 8c9aa0
    {
Packit 8c9aa0
      m_value = v.m_value;
Packit 8c9aa0
      return *this;
Packit 8c9aa0
    }
Packit 8c9aa0
Packit 8c9aa0
    bool operator ==( const Value &other ) const
Packit 8c9aa0
    {
Packit 8c9aa0
      return m_value == other.m_value;
Packit 8c9aa0
    }
Packit 8c9aa0
Packit 8c9aa0
    bool operator !=( const Value &other )
Packit 8c9aa0
    {
Packit 8c9aa0
      return !( *this == other );
Packit 8c9aa0
    }
Packit 8c9aa0
Packit 8c9aa0
    Value operator !()
Packit 8c9aa0
    {
Packit 8c9aa0
      return Value( -1 - m_value );
Packit 8c9aa0
    }
Packit 8c9aa0
Packit 8c9aa0
  protected:
Packit 8c9aa0
    int m_value;
Packit 8c9aa0
  };
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
  class ValueBadConstructor : public Value
Packit 8c9aa0
  {
Packit 8c9aa0
  public:
Packit 8c9aa0
    ValueBadConstructor()
Packit 8c9aa0
    {
Packit 8c9aa0
      static int serialNumber = 0;
Packit 8c9aa0
      m_value = ++serialNumber;
Packit 8c9aa0
    }
Packit 8c9aa0
Packit 8c9aa0
    ValueBadConstructor( int value ) : Value( value ) {}
Packit 8c9aa0
Packit 8c9aa0
    ValueBadConstructor operator !()
Packit 8c9aa0
    {
Packit 8c9aa0
      return ValueBadConstructor( -1 - m_value );
Packit 8c9aa0
    }
Packit 8c9aa0
  };
Packit 8c9aa0
Packit 8c9aa0
  
Packit 8c9aa0
  class ValueBadInvert : public Value
Packit 8c9aa0
  {
Packit 8c9aa0
  public:
Packit 8c9aa0
    ValueBadInvert( int value =0 ) : Value( value ) {}
Packit 8c9aa0
Packit 8c9aa0
    ValueBadInvert operator !()
Packit 8c9aa0
    {
Packit 8c9aa0
      return ValueBadInvert( 1 );
Packit 8c9aa0
    }
Packit 8c9aa0
  };
Packit 8c9aa0
Packit 8c9aa0
  
Packit 8c9aa0
  class ValueBadEqual : public Value
Packit 8c9aa0
  {
Packit 8c9aa0
  public:
Packit 8c9aa0
    ValueBadEqual( int value =0 ) : Value( value ) {}
Packit 8c9aa0
Packit 8c9aa0
    ValueBadEqual operator !()
Packit 8c9aa0
    {
Packit 8c9aa0
      return ValueBadEqual( -1 - m_value );
Packit 8c9aa0
    }
Packit 8c9aa0
Packit 8c9aa0
    bool operator ==( const ValueBadEqual &other ) const
Packit 8c9aa0
    {
Packit 8c9aa0
      return m_value != other.m_value;
Packit 8c9aa0
    }
Packit 8c9aa0
  };
Packit 8c9aa0
Packit 8c9aa0
  
Packit 8c9aa0
  class ValueBadNotEqual : public Value
Packit 8c9aa0
  {
Packit 8c9aa0
  public:
Packit 8c9aa0
    ValueBadNotEqual( int value =0 ) : Value( value ) {}
Packit 8c9aa0
Packit 8c9aa0
    ValueBadNotEqual operator !()
Packit 8c9aa0
    {
Packit 8c9aa0
      return ValueBadNotEqual( -1 - m_value );
Packit 8c9aa0
    }
Packit 8c9aa0
Packit 8c9aa0
    bool operator !=( const ValueBadNotEqual &other )
Packit 8c9aa0
    {
Packit 8c9aa0
      return m_value == other.m_value;
Packit 8c9aa0
    }
Packit 8c9aa0
  };
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
  class ValueBadCall : public Value
Packit 8c9aa0
  {
Packit 8c9aa0
  public:
Packit 8c9aa0
    ValueBadCall( int value =0 ) : Value( value ) {}
Packit 8c9aa0
Packit 8c9aa0
    ValueBadCall( const ValueBadCall & ) : Value()
Packit 8c9aa0
    {
Packit 8c9aa0
      static int serialNumber = 0;
Packit 8c9aa0
      m_value = ++serialNumber;
Packit 8c9aa0
    }
Packit 8c9aa0
Packit 8c9aa0
    ValueBadCall operator !()
Packit 8c9aa0
    {
Packit 8c9aa0
      return ValueBadCall( -1 - m_value );
Packit 8c9aa0
    }
Packit 8c9aa0
  };
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
  class ValueBadAssignment: public Value
Packit 8c9aa0
  {
Packit 8c9aa0
  public:
Packit 8c9aa0
    ValueBadAssignment( int value =0 ) : Value( value ) {}
Packit 8c9aa0
Packit 8c9aa0
    ValueBadAssignment operator !()
Packit 8c9aa0
    {
Packit 8c9aa0
      return ValueBadAssignment( -1 - m_value );
Packit 8c9aa0
    }
Packit 8c9aa0
Packit 8c9aa0
    ValueBadAssignment &operator =( const ValueBadAssignment & )
Packit 8c9aa0
    {
Packit 8c9aa0
      ++m_value;
Packit 8c9aa0
      return *this;
Packit 8c9aa0
    }
Packit 8c9aa0
  };
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
  OrthodoxTest( const OrthodoxTest &copy );
Packit 8c9aa0
  void operator =( const OrthodoxTest &copy );
Packit 8c9aa0
Packit 8c9aa0
private:
Packit 8c9aa0
  CPPUNIT_NS::TestResult *m_result;
Packit 8c9aa0
  MockTestListener *m_testListener;
Packit 8c9aa0
};
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
#endif  // ORTHODOXTEST_H