Blame examples/money/MoneyTest.cpp

Packit 8c9aa0
// MoneyTest.cpp
Packit 8c9aa0
Packit 8c9aa0
#include "StdAfx.h"
Packit 8c9aa0
#include <cppunit/config/SourcePrefix.h>
Packit 8c9aa0
#include "Money.h"
Packit 8c9aa0
#include "MoneyTest.h"
Packit 8c9aa0
Packit 8c9aa0
// Registers the fixture into the 'registry'
Packit 8c9aa0
CPPUNIT_TEST_SUITE_REGISTRATION( MoneyTest );
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
MoneyTest::setUp()
Packit 8c9aa0
{
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
MoneyTest::tearDown()
Packit 8c9aa0
{
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
MoneyTest::testConstructor()
Packit 8c9aa0
{
Packit 8c9aa0
  // Set up
Packit 8c9aa0
  const std::string currencyFF( "FF" );
Packit 8c9aa0
  const double longNumber = 1234.5678;
Packit 8c9aa0
Packit 8c9aa0
  // Process
Packit 8c9aa0
  Money money( longNumber, currencyFF );
Packit 8c9aa0
Packit 8c9aa0
  // Check
Packit 8c9aa0
  CPPUNIT_ASSERT_EQUAL( longNumber, money.getAmount() );
Packit 8c9aa0
  CPPUNIT_ASSERT_EQUAL( currencyFF, money.getCurrency() );
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void
Packit 8c9aa0
MoneyTest::testEqual()
Packit 8c9aa0
{
Packit 8c9aa0
  // Set up
Packit 8c9aa0
  const Money money123FF( 123, "FF" );
Packit 8c9aa0
  const Money money123USD( 123, "USD" );
Packit 8c9aa0
  const Money money12FF( 12, "FF" );
Packit 8c9aa0
  const Money money12USD( 12, "USD" );
Packit 8c9aa0
Packit 8c9aa0
  // Process & Check
Packit 8c9aa0
  CPPUNIT_ASSERT( money123FF == money123FF );    // ==
Packit 8c9aa0
  CPPUNIT_ASSERT( money12FF != money123FF );     // != amount
Packit 8c9aa0
  CPPUNIT_ASSERT( money123USD != money123FF );   // != currency
Packit 8c9aa0
  CPPUNIT_ASSERT( money12USD != money123FF );    // != currency and != amount
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
MoneyTest::testAdd()
Packit 8c9aa0
{
Packit 8c9aa0
  // Set up
Packit 8c9aa0
  const Money money12FF( 12, "FF" );
Packit 8c9aa0
  const Money expectedMoney( 135, "FF" );
Packit 8c9aa0
Packit 8c9aa0
  // Process
Packit 8c9aa0
  Money money( 123, "FF" );
Packit 8c9aa0
  money += money12FF;
Packit 8c9aa0
Packit 8c9aa0
  // Check
Packit 8c9aa0
  CPPUNIT_ASSERT_EQUAL( expectedMoney, money );           // add works
Packit 8c9aa0
  CPPUNIT_ASSERT( &money == &(money += money12FF) );  // add returns ref. on 'this'.
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
MoneyTest::testAddThrow()
Packit 8c9aa0
{
Packit 8c9aa0
  // Set up
Packit 8c9aa0
  const Money money123FF( 123, "FF" );
Packit 8c9aa0
Packit 8c9aa0
  // Process
Packit 8c9aa0
  Money money( 123, "USD" );
Packit 8c9aa0
  CPPUNIT_ASSERT_THROW( money += money123FF, IncompatibleMoneyError );
Packit 8c9aa0
}