|
33 | 33 | import com.github.shyiko.mysql.binlog.network.AuthenticationException; |
34 | 34 | import com.github.shyiko.mysql.binlog.network.ServerException; |
35 | 35 | import org.mockito.InOrder; |
| 36 | +import org.testng.SkipException; |
36 | 37 | import org.testng.annotations.AfterClass; |
37 | 38 | import org.testng.annotations.AfterMethod; |
38 | 39 | import org.testng.annotations.BeforeClass; |
|
49 | 50 | import java.sql.Connection; |
50 | 51 | import java.sql.DriverManager; |
51 | 52 | import java.sql.SQLException; |
| 53 | +import java.sql.SQLSyntaxErrorException; |
52 | 54 | import java.sql.Statement; |
53 | 55 | import java.util.BitSet; |
54 | 56 | import java.util.Calendar; |
@@ -240,6 +242,36 @@ public void testDeserializationOfDifferentColumnTypes() throws Exception { |
240 | 242 | assertEquals(writeAndCaptureRow("set('a','b','c')", "'a,c'"), new Serializable[]{5L}); |
241 | 243 | } |
242 | 244 |
|
| 245 | + @Test |
| 246 | + public void testFSP() throws Exception { |
| 247 | + try { |
| 248 | + master.execute(new Callback<Statement>() { |
| 249 | + @Override |
| 250 | + public void execute(Statement statement) throws SQLException { |
| 251 | + statement.execute("create table fsp_check (column_ datetime(0))"); |
| 252 | + } |
| 253 | + }); |
| 254 | + } catch (SQLSyntaxErrorException e) { |
| 255 | + throw new SkipException("MySQL < 5.6.4+"); |
| 256 | + } |
| 257 | + assertEquals(writeAndCaptureRow("datetime(0)", "'1989-03-21 01:02:03.777777'"), new Serializable[]{ |
| 258 | + new java.util.Date(generateTime(1989, 3, 21, 1, 2, 4, 0))}); |
| 259 | + assertEquals(writeAndCaptureRow("datetime(1)", "'1989-03-21 01:02:03.777777'"), new Serializable[]{ |
| 260 | + new java.util.Date(generateTime(1989, 3, 21, 1, 2, 3, 800))}); |
| 261 | + assertEquals(writeAndCaptureRow("datetime(2)", "'1989-03-21 01:02:03.777777'"), new Serializable[]{ |
| 262 | + new java.util.Date(generateTime(1989, 3, 21, 1, 2, 3, 780))}); |
| 263 | + assertEquals(writeAndCaptureRow("datetime(3)", "'1989-03-21 01:02:03.777777'"), new Serializable[]{ |
| 264 | + new java.util.Date(generateTime(1989, 3, 21, 1, 2, 3, 778))}); |
| 265 | + assertEquals(writeAndCaptureRow("datetime(3)", "'1989-03-21 01:02:03.777'"), new Serializable[]{ |
| 266 | + new java.util.Date(generateTime(1989, 3, 21, 1, 2, 3, 777))}); |
| 267 | + assertEquals(writeAndCaptureRow("datetime(4)", "'1989-03-21 01:02:03.777777'"), new Serializable[]{ |
| 268 | + new java.util.Date(generateTime(1989, 3, 21, 1, 2, 3, 777))}); |
| 269 | + assertEquals(writeAndCaptureRow("datetime(5)", "'1989-03-21 01:02:03.777777'"), new Serializable[]{ |
| 270 | + new java.util.Date(generateTime(1989, 3, 21, 1, 2, 3, 777))}); |
| 271 | + assertEquals(writeAndCaptureRow("datetime(6)", "'1989-03-21 01:02:03.777777'"), new Serializable[]{ |
| 272 | + new java.util.Date(generateTime(1989, 3, 21, 1, 2, 3, 777))}); |
| 273 | + } |
| 274 | + |
243 | 275 | private BitSet bitSet(int... bitsToSetTrue) { |
244 | 276 | BitSet result = new BitSet(bitsToSetTrue.length); |
245 | 277 | for (int bit : bitsToSetTrue) { |
|
0 commit comments