@Override public ColumnSchema next() { ColumnType type = typeGen.next(); ColumnSchema.Builder builder = ColumnSchema.builder(MYSQL_NAME_GEN.next(), type); switch (type) { case STRING: case BINARY: builder.setMaxLength(lengthGen.next()); break; case LONG: case ULONG: case DOUBLE: builder.setIsAutoIncrement(RAND.nextBoolean()); break; case DECIMAL: int precision = RAND.nextInt(66); int scale = RAND.nextInt(Math.max(31, precision)); builder.setPrecision(precision).setScale(scale); break; default: break; } return builder.build(); } }
@Test public void testBuildStringColumnValidMaxLength() { new ColumnSchema.Builder(TEST_COLUMN, ColumnType.STRING).setMaxLength(0).build(); }
@Test(expected = IllegalArgumentException.class) public void testBuildStringColumnInvalidMaxLength() { new ColumnSchema.Builder(TEST_COLUMN, ColumnType.STRING).setMaxLength(-1).build(); }
@Test public void testBuildBinaryColumnValidMaxLength() { new ColumnSchema.Builder(TEST_COLUMN, ColumnType.BINARY).setMaxLength(0).build(); }
@Test(expected = IllegalArgumentException.class) public void testBuildBinaryColumnInvalidMaxLength() { new ColumnSchema.Builder(TEST_COLUMN, ColumnType.BINARY).setMaxLength(-1).build(); }
@Test(expected = IllegalArgumentException.class) public void testBuildDecimalColumnWithMaxLength() { new ColumnSchema.Builder(TEST_COLUMN, ColumnType.DECIMAL).setScale(0).setPrecision(0).setMaxLength(0).build(); }