Work toward improving solidity. Add a few more unit tests, and some toString()
[cfb.git] / test / net / jaekl / cfb / db / TableMock.java
1 package net.jaekl.cfb.db;
2
3 import java.util.ArrayList;
4 import static org.junit.Assert.*;
5
6 public class TableMock extends Table {
7
8         private ArrayList<Row> m_rows;
9         
10         public TableMock(String name, Column[] columns) {
11                 super(name, columns);
12                 m_rows = new ArrayList<Row>();
13         }
14         
15         public TableMock(Table table) {
16                 this(table.m_name, table.m_columns.toArray(new Column[table.m_columns.size()]));
17         }
18         
19         public ArrayList<Row> mock_getRows() { return m_rows; }
20
21         public boolean mock_hasColumn(Column expectedCol) {
22                 for (Column col : m_columns) {
23                         if (col.equals(expectedCol)) {
24                                 return true;
25                         }
26                 }
27                 return false;
28         }
29         
30         public Column[] mock_getColumns() { 
31                 return m_columns.toArray(new Column[m_columns.size()]);
32         }
33         
34         public void mock_insert(Row row) {
35                 assertEquals(getNumColumns(), row.getNumColumns());
36                 for (int i = 0; i < getNumColumns(); ++i) {
37                         assertEquals(getColumn(i).getType(), row.getColumn(i).getType());
38                 }
39                 m_rows.add(row);
40         }
41         
42         @Override
43         public String toString()
44         {
45                 StringBuilder sb = new StringBuilder("" + getName() + "={\n");
46                 for (Row row : m_rows) {
47                         sb.append("" + row + "\n");
48                 }
49                 sb.append("}");
50                 return sb.toString();
51         }
52 }