|
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 |
}
|