/*
* Copyright (C) 2007 Snorre Gylterud, Stein Magnus Jodal, Johannes Knutsen,
* Erik Bagge Ottesen, Ralf Bjarne Taraldset, and Iterate AS
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2
* as published by the Free Software Foundation.
*/
package no.ntnu.mmfplanner;
import java.awt.Color;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import org.junit.Before;
import no.ntnu.mmfplanner.model.Category;
import no.ntnu.mmfplanner.model.Mmf;
import no.ntnu.mmfplanner.model.Project;
/**
* Fixture for all tests that depend on a Project. Project is set up with two
* MMFs, two categories, and other default values.
*/
public abstract class ProjectTestFixture {
protected Project project;
protected Mmf mmfA, mmfB;
protected Category category1, category2;
protected PropertyChangeEvent propEvt;
protected PropertyChangeListener propChg = new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent evt) {
propCount++;
propEvt = evt;
}
};
protected int propCount = 0;
@Before
public void setUpFixture() throws Exception {
project = new Project();
project.setName("Test project");
project.setPeriods(12);
project.setInterestRate(0.008);
category1 = new Category("Online Travel Agency", Color.RED, null);
project.addCategory(category1);
category2 = new Category("Trip Planner", Color.BLUE, category1);
project.addCategory(category2);
mmfA = new Mmf("A", "Test A");
int revenues[] = new int[] { -200, -200, 100, 120, 140, 160, 200, 220,
240, 300, 320, 340, 1000, 2000, 3000 };
for (int i = 1; i <= revenues.length; i++) {
mmfA.setRevenue(i, revenues[i - 1]);
}
mmfA.setPeriod(2);
mmfA.setLocked(true);
project.add(mmfA);
mmfB = new Mmf("B", "Test B");
mmfB.setPeriod(1);
project.add(mmfB);
mmfB.setCategory(category1);
mmfB.addPrecursor(mmfA);
}
}