/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2002</p>
 * <p>Company: Personal Concepts</p>
 * @author Dave Wilson
 * @version 1.0
 */

import junit.framework.TestCase;
import junit.framework.TestSuite;
import java.io.*;

//==========================================================================
public class LoanDataTest extends TestCase {

	//-----------------------------------------
	private double fAmount;
	private double fPercent;
	private double fYears;

	//-----------------------------------------
	public static void main (String[] args) {
		junit.textui.TestRunner.run (new TestSuite(LoanDataTest.class));
	}

	//-----------------------------------------
    public LoanDataTest(String name) {
		super(name);
    }

	//---------------------------------------------------------
	protected void setUp() {
		fAmount = 250000d;
		fPercent = 6.5d;
		fYears = 30d;
	}

	//-----------------------------------------
    public void testConstructor() {
		LoanData data = new LoanData(fAmount, fPercent, fYears);
		assertTrue(data.getAmount() == fAmount);
		assertTrue(data.getInterestPercent() == fPercent);
		assertTrue(data.getYears() == fYears);
    }

	//-----------------------------------------
    public void testSerialization() {
		LoanData dataIn = new LoanData(fAmount, fPercent, fYears);
		LoanData dataOut = null;
		try {
			ByteArrayOutputStream bos = new ByteArrayOutputStream();
			ObjectOutputStream out = new ObjectOutputStream(bos);
			out.writeObject(dataIn);
			out.close();
			byte[] bytes = bos.toByteArray();
			bos.close();

			ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
		    ObjectInputStream in = new ObjectInputStream(bis);
			dataOut = (LoanData)in.readObject();
			in.close();
			bis.close();
			assertEquals(dataIn, dataOut);
		} catch (Exception e) {e.printStackTrace();}
    }

}

