/src/tests/net/sf/persist/tests/sqlserver/TestSqlserver.java

http://github.com/rufiao/persist · Java · 99 lines · 70 code · 25 blank · 4 comment · 0 complexity · 7e4cf97edd6fde5e3cd565696c02db74 MD5 · raw file

  1. // $Id$
  2. package net.sf.persist.tests.sqlserver;
  3. import java.io.InputStream;
  4. import java.io.Reader;
  5. import java.math.BigDecimal;
  6. import java.sql.SQLException;
  7. import net.sf.persist.tests.common.TestSimple;
  8. import net.sf.persist.tests.framework.BeanMap;
  9. import net.sf.persist.tests.framework.BeanTest;
  10. import net.sf.persist.tests.framework.FieldMap;
  11. import org.junit.Ignore;
  12. import org.junit.Test;
  13. @Ignore("ignoring until a windows VM is automated")
  14. public class TestSqlserver extends TestSimple {
  15. public String getProperties() {
  16. return "net/sf/persist/tests/sqlserver/sqlserver.properties";
  17. }
  18. // several tests are inherited from TestSimple
  19. @Test
  20. public void testStringTypes() throws SQLException {
  21. Class[] characterTypes = new Class[] {Character.class, char.class, String.class};
  22. Class[] stringTypes = new Class[] {String.class, char[].class, Character[].class};
  23. Class[] clobTypes = new Class[] {String.class, char[].class, Character[].class, Reader.class};
  24. BeanMap beanMap = new BeanMap("StringTypes")
  25. .addField( new FieldMap("charCol").setTypes(characterTypes).setSize(1) )
  26. .addField( new FieldMap("varcharCol").setTypes(stringTypes).setSize(255) )
  27. .addField( new FieldMap("textCol").setTypes(clobTypes).setSize(4096).setSupportsQueryByValue(false) )
  28. .addField( new FieldMap("ncharCol").setTypes(characterTypes).setSize(1) )
  29. .addField( new FieldMap("nvarcharCol").setTypes(stringTypes).setSize(255) )
  30. .addField( new FieldMap("ntextCol").setTypes(clobTypes).setSize(4096).setSupportsQueryByValue(false) );
  31. BeanTest.test(persist, beanMap);
  32. }
  33. @Test
  34. public void testNumericTypes() throws SQLException {
  35. Class[] integerTypes = new Class[] {Integer.class, int.class};
  36. Class[] booleanTypes = new Class[] {Boolean.class, boolean.class};
  37. Class[] byteTypes = new Class[] {Byte.class, byte.class};
  38. Class[] shortTypes = new Class[] {Short.class, short.class};
  39. Class[] longTypes = new Class[] {Long.class, long.class};
  40. Class[] doubleTypes = new Class[] {Double.class, double.class, BigDecimal.class};
  41. Class[] floatTypes = new Class[] {Float.class, float.class, Double.class, double.class, BigDecimal.class};
  42. BeanMap beanMap = new BeanMap("NumericTypes")
  43. .addField( new FieldMap("bitCol").setTypes(booleanTypes) )
  44. .addField( new FieldMap("tinyintCol").setTypes(byteTypes) )
  45. .addField( new FieldMap("smallintCol").setTypes(shortTypes) )
  46. .addField( new FieldMap("intCol").setTypes(integerTypes) )
  47. .addField( new FieldMap("bigintCol").setTypes(longTypes) )
  48. .addField( new FieldMap("smallmoneyCol").setTypes(doubleTypes).setBoundaries(0,9999) )
  49. .addField( new FieldMap("moneyCol").setTypes(doubleTypes).setBoundaries(0,9999) )
  50. .addField( new FieldMap("decimalCol").setTypes(integerTypes) )
  51. .addField( new FieldMap("numericCol").setTypes(integerTypes) )
  52. .addField( new FieldMap("floatCol").setTypes(floatTypes).setBoundaries(0,9999) )
  53. .addField( new FieldMap("realCol").setTypes(floatTypes).setBoundaries(0,9999) );
  54. BeanTest.test(persist, beanMap);
  55. }
  56. @Test
  57. public void testDatetimeTypes() throws SQLException {
  58. // smalldatetime is problematic to query by value because of the 1-minute rounding;
  59. // the bean has the current timestamp therefore it won't work properly
  60. BeanMap beanMap = new BeanMap("DatetimeTypes")
  61. .addField( new FieldMap("datetimeCol").setTypes(java.sql.Timestamp.class, java.util.Date.class) )
  62. .addField( new FieldMap("smalldatetimeCol").setTypes(java.sql.Timestamp.class, java.util.Date.class).setSupportsQueryByValue(false) );
  63. BeanTest.test(persist, beanMap);
  64. }
  65. @Test
  66. public void testBinaryTypes() throws SQLException {
  67. Class[] binaryTypes = new Class[] { byte[].class, InputStream.class };
  68. BeanMap beanMap = new BeanMap("BinaryTypes")
  69. .addField( new FieldMap("binaryCol").setTypes(binaryTypes).setSize(255) )
  70. .addField( new FieldMap("varbinaryCol").setTypes(binaryTypes).setSize(255) )
  71. .addField( new FieldMap("imageCol").setTypes(binaryTypes).setSize(16384).setSupportsQueryByValue(false) );
  72. BeanTest.test(persist, beanMap);
  73. }
  74. }