1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.dbunit.dataset.datatype;
22
23 import java.math.BigDecimal;
24 import java.sql.Types;
25
26 import org.dbunit.dataset.datatype.ToleratedDeltaMap.ToleratedDelta;
27
28
29
30
31
32
33
34
35 public class DefaultDataTypeFactoryTest extends AbstractDataTypeFactoryTest
36 {
37 public DefaultDataTypeFactoryTest(String s)
38 {
39 super(s);
40 }
41
42 public IDataTypeFactory createFactory() throws Exception
43 {
44 return new DefaultDataTypeFactory();
45 }
46
47 public void testCreateNumberTolerantDataType_Numeric() throws Exception
48 {
49 int sqlType = Types.NUMERIC;
50 String sqlTypeName = "NUMBER";
51
52 DefaultDataTypeFactory factory = new DefaultDataTypeFactory();
53 factory.addToleratedDelta(new ToleratedDelta("TEST_TABLE", "COLUMN0", 1E-5));
54 DataType actual = factory.createDataType(sqlType, sqlTypeName, "TEST_TABLE", "COLUMN0");
55 assertEquals("type", NumberTolerantDataType.class, actual.getClass());
56 assertEquals(new BigDecimal("1.0E-5"), ((NumberTolerantDataType)actual).getToleratedDelta().getDelta());
57 }
58
59
60 public void testCreateNumberTolerantDataType_Decimal() throws Exception
61 {
62 int sqlType = Types.DECIMAL;
63 String sqlTypeName = "DECIMAL";
64
65 DefaultDataTypeFactory factory = new DefaultDataTypeFactory();
66 factory.addToleratedDelta(new ToleratedDelta("TEST_TABLE", "COLUMN0", 1E-5));
67 DataType actual = factory.createDataType(sqlType, sqlTypeName, "TEST_TABLE", "COLUMN0");
68 assertEquals("type", NumberTolerantDataType.class, actual.getClass());
69 assertEquals(new BigDecimal("1.0E-5"), ((NumberTolerantDataType)actual).getToleratedDelta().getDelta());
70 }
71
72
73 public void testCreateNumberTolerantDataTypeAndNoToleranceSetForColumn_Numeric() throws Exception
74 {
75 int sqlType = Types.NUMERIC;
76 String sqlTypeName = "NUMBER";
77
78 DefaultDataTypeFactory factory = new DefaultDataTypeFactory();
79 factory.addToleratedDelta(new ToleratedDelta("TEST_TABLE", "COLUMN0", 1E-5));
80 DataType actual = factory.createDataType(sqlType, sqlTypeName, "TEST_TABLE", "COLUMNXYZ-withoutTolerance");
81 assertSame("type", DataType.NUMERIC, actual);
82 }
83
84 public void testCreateNumberTolerantDataTypeAndNoToleranceSetForColumn_Decimal() throws Exception
85 {
86 int sqlType = Types.DECIMAL;
87 String sqlTypeName = "DECIMAL";
88
89 DefaultDataTypeFactory factory = new DefaultDataTypeFactory();
90 factory.addToleratedDelta(new ToleratedDelta("TEST_TABLE", "COLUMN0", 1E-5));
91 DataType actual = factory.createDataType(sqlType, sqlTypeName, "TEST_TABLE", "COLUMNXYZ-withoutTolerance");
92 assertSame("type", DataType.DECIMAL, actual);
93 }
94
95 }