/*
* 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.ui.model;
import static org.junit.Assert.*;
import javax.swing.table.TableModel;
import no.ntnu.mmfplanner.ProjectTestFixture;
import no.ntnu.mmfplanner.model.Mmf;
import no.ntnu.mmfplanner.model.MmfException;
import org.junit.Before;
import org.junit.Test;
/**
* Test suite for {@link RevenueTableModel}
*/
public class RevenueTableModelTest extends ProjectTestFixture {
TableModel model;
@Before
public void setUp() throws Exception {
model = new RevenueTableModel(project);
}
@Test
public void testIsCellEditable() {
assertFalse(model.isCellEditable(0, 0));
for (int i = 1; i < 13; i++) {
assertTrue(model.isCellEditable(i, i));
}
}
@Test
public void testGetColumnCount() throws MmfException {
assertEquals(13, model.getColumnCount());
project.setPeriods(63);
assertEquals(64, model.getColumnCount());
project.setPeriods(1);
assertEquals(2, model.getColumnCount());
}
@Test
public void testGetColumnNameInt() {
assertEquals(RevenueTableModel.COLUMN_MMF, model.getColumnName(0));
for (int i = 1; i < 13; i++) {
assertEquals("+" + i, model.getColumnName(i));
}
}
@Test
public void testGetRowCount() {
assertEquals(2, model.getRowCount());
project.add(new Mmf("C", "Test C"));
assertEquals(3, model.getRowCount());
project.remove(mmfA);
project.remove(project.get(0));
project.remove(project.get(0));
assertEquals(0, model.getRowCount());
}
@Test
public void testGetValueAt() {
assertEquals("A: Test A", model.getValueAt(0, 0));
for (int i = 1; i < 13; i++) {
assertEquals(mmfA.getRevenue(i), model.getValueAt(0, i));
int rev = (int) (i * Math.PI);
mmfA.setRevenue(i, rev);
assertEquals(rev, model.getValueAt(0, i));
}
}
@Test
public void testSetValueAtObjectIntInt() {
model.setValueAt("T: T", 0, 0);
assertEquals("A: Test A", model.getValueAt(0, 0));
for (int i = 1; i < 13; i++) {
int rev = (int) (i * Math.E);
model.setValueAt(rev, 0, i);
assertEquals(rev, mmfA.getRevenue(i));
}
}
@Test
public void testGetColumnClassInt() {
assertEquals(String.class, model.getColumnClass(0));
for (int i = 1; i < 13; i++) {
assertEquals(Integer.class, model.getColumnClass(i));
}
}
}