import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import waelti.statistics.queries.ResultMatrix;
import ch.rgw.tools.Money;
public class ResultMatrixTest {
private ResultMatrix matrix;
// layout:
// Names Money1 Money2 Count [HEADING]
// Name1 100 10 12
// Name2 200 20 25
// Name3 300 30 36
// Name4 400 40 48
@Before
public void setUp(){
List<Object[]> list = new ArrayList<Object[]>();
List<String> head = new ArrayList<String>();
list.add(new Object[] {
"Name1", new Money(100), new Money(10), new Integer(12)
});
list.add(new Object[] {
"Name2", new Money(200), new Money(20), new Integer(25)
});
list.add(new Object[] {
"Name3", new Money(300), new Money(30), new Integer(36)
});
list.add(new Object[] {
"Name4", new Money(400), new Money(40), new Integer(48)
});
head.add("Names");
head.add("Money1");
head.add("Money2");
head.add("Count");
matrix = new ResultMatrix(list, head);
}
@Test
public void testGet(){
assertTrue(matrix.get(0, 0).equals("Name1"));
// no changes when calling:
assertTrue(matrix.get(0, 0).equals("Name1"));
assertTrue(matrix.get(2, 3).equals(new Money(40)));
}
@Test
public void testGetRow(){
Object[] row3 = matrix.getRow(3);
assertTrue(row3[0].equals("Name4"));
assertTrue(row3.length == 4);
assertTrue(row3[3].equals(48));
}
@Test
public void testGetColumn(){
Object[] col = matrix.getColumn(2);
assertTrue(col[0].equals(new Money(10)));
assertTrue(col[1].equals(new Money(20)));
assertTrue(col[3].equals(new Money(40)));
assertTrue(col.length == 4);
}
@Test
public void testAddRow(){
Object[] col = matrix.getColumn(0);
assertTrue(col.length == 4);
matrix.addRow();
col = matrix.getColumn(0);
assertTrue(col.length == 5);
assertTrue(col[4] == null); // added row
}
@Test
public void testAddRowObjectArray(){
Object[] newRow = new Object[] {
"Name5", new Money(500), new Money(50), new Integer(59)
};
matrix.addRow(newRow);
assertTrue(matrix.getRow(4)[0].equals("Name5"));
assertTrue(matrix.getRow(3)[0].equals("Name4"));
}
@Test
public void testHeadings(){
assertTrue(matrix.getHeadings().get(0).equals("Names"));
List<String> newHeading = new ArrayList<String>();
newHeading.add("New Name");
newHeading.add("New Money1");
newHeading.add("New Money2");
newHeading.add("New Count");
matrix.setHeadings(newHeading);
assertTrue(matrix.getHeadings().get(0).equals("New Name"));
}
}