@@ -357,4 +357,138 @@ private int generateRandomPositiveInt() {
357357
358358 }
359359
360+
361+ @ Test public void
362+ should_generate_an_insert_statement_with_a_date_type () {
363+
364+ // GIVEN
365+ TestTable playerTable =
366+ buildUniqueTable (DATA_SOURCE
367+ , "Table"
368+ , "date Date"
369+ )
370+ .create ()
371+ .insertValues ("'2012-09-17'" );
372+
373+ // WHEN
374+ String playerTableName = playerTable .getTableName ();
375+ String select = "SELECT * FROM " + playerTableName ;
376+ SqlTestDataGenerator sqlTestDataGenerator = SqlTestDataGenerator .buildFrom (DATA_SOURCE );
377+ String insertScript = sqlTestDataGenerator .generateInsertScriptFor (select );
378+
379+ // THEN
380+ playerTable .recreate ();
381+ SQL_EXECUTOR .execute (insertScript );
382+ assertThat (playerTable ).withScript (insertScript )
383+ .hasNumberOfRows (1 )
384+ .row (0 ).hasValues ("2012-09-17" );
385+
386+ }
387+
388+ @ Test public void
389+ should_generate_an_insert_statement_with_a_timestamp_type () {
390+ // DATETIME2 is a timestamp type an accuracy of 100 nanoseconds
391+ TestTable playerTable =
392+ buildUniqueTable ( DATA_SOURCE
393+ , "Table"
394+ , "timestampCol DATETIME2"
395+ )
396+ .create ()
397+ .insertValues ("'2012-09-17 19:56:47.32'" );
398+
399+ // WHEN
400+ String playerTableName = playerTable .getTableName ();
401+ String select = "SELECT * FROM " + playerTableName ;
402+ SqlTestDataGenerator sqlTestDataGenerator = SqlTestDataGenerator .buildFrom (DATA_SOURCE );
403+ String insertScript = sqlTestDataGenerator .generateInsertScriptFor (select );
404+
405+ // THEN
406+ playerTable .recreate ();
407+ SQL_EXECUTOR .execute (insertScript );
408+ assertThat (playerTable ).withScript (insertScript )
409+ .hasNumberOfRows (1 );
410+ Assertions .assertThat (insertScript ).contains ("'2012-09-17 19:56:47.32'" );
411+ }
412+
413+ @ Test public void
414+ should_generate_an_insert_statement_with_a_small_datetime_type () {
415+ // SMALLDATETIME is a timestamp type an accuracy of 1 minute
416+ TestTable playerTable =
417+ buildUniqueTable ( DATA_SOURCE
418+ , "Table"
419+ , "timestampCol SMALLDATETIME"
420+ )
421+ .create ()
422+ .insertValues ("'2012-09-17 19:56:47.32'" );
423+
424+ // WHEN
425+ String playerTableName = playerTable .getTableName ();
426+ String select = "SELECT * FROM " + playerTableName ;
427+ SqlTestDataGenerator sqlTestDataGenerator = SqlTestDataGenerator .buildFrom (DATA_SOURCE );
428+ String insertScript = sqlTestDataGenerator .generateInsertScriptFor (select );
429+
430+ // THEN
431+ playerTable .recreate ();
432+ SQL_EXECUTOR .execute (insertScript );
433+ assertThat (playerTable ).withScript (insertScript )
434+ .hasNumberOfRows (1 );
435+ Assertions .assertThat (insertScript ).contains ("'2012-09-17 19:57:00.0'" );
436+ }
437+
438+
439+ @ Test public void
440+ should_generate_an_insert_statement_with_a_timestamp_with_time_zone_type () {
441+
442+ // GIVEN
443+ TestTable playerTable =
444+ buildUniqueTable (DATA_SOURCE
445+ , "Table"
446+ , "col DATETIMEOFFSET"
447+ )
448+ .create ()
449+ .insertValues ("'2020-12-20 17:20:13 +03:00'" );
450+
451+ // WHEN
452+ String playerTableName = playerTable .getTableName ();
453+ String select = "SELECT * FROM " + playerTableName ;
454+ SqlTestDataGenerator sqlTestDataGenerator = SqlTestDataGenerator .buildFrom (DATA_SOURCE );
455+ String insertScript = sqlTestDataGenerator .generateInsertScriptFor (select );
456+
457+ // THEN
458+
459+ playerTable .recreate ();
460+ SQL_EXECUTOR .execute (insertScript );
461+ assertThat (playerTable ).withScript (insertScript )
462+ .hasNumberOfRows (1 );
463+ Assertions .assertThat (insertScript ).contains ("'2020-12-20 17:20:13 +03:00'" );
464+ }
465+
466+
467+ @ Test public void
468+ should_generate_an_insert_statement_with_a_time_type () {
469+
470+ // GIVEN
471+ TestTable playerTable =
472+ buildUniqueTable ( DATA_SOURCE
473+ , "Table"
474+ , "col TIME"
475+ )
476+ .create ()
477+ .insertValues ("'23:59:59'" );
478+
479+ // WHEN
480+ String playerTableName = playerTable .getTableName ();
481+ String select = "SELECT * FROM " + playerTableName ;
482+ SqlTestDataGenerator sqlTestDataGenerator = SqlTestDataGenerator .buildFrom (DATA_SOURCE );
483+ String insertScript = sqlTestDataGenerator .generateInsertScriptFor (select );
484+
485+ // THEN
486+ playerTable .recreate ();
487+ SQL_EXECUTOR .execute (insertScript );
488+ assertThat (playerTable ).withScript (insertScript )
489+ .hasNumberOfRows (1 )
490+ .row (0 ).hasValues ("23:59:59" );
491+
492+ }
493+
360494}
0 commit comments