2121import org .pgcodekeeper .core .FILES_POSTFIX ;
2222import org .pgcodekeeper .core .TestUtils ;
2323import org .pgcodekeeper .core .api .PgCodeKeeperApi ;
24- import org .pgcodekeeper .core .database .api .IDatabaseProvider ;
2524import org .pgcodekeeper .core .database .api .jdbc .IJdbcConnector ;
2625import org .pgcodekeeper .core .database .base .jdbc .JdbcRunner ;
2726import org .pgcodekeeper .core .database .base .loader .AbstractDumpLoader ;
2827import org .pgcodekeeper .core .database .base .parser .ScriptParser ;
2928import org .pgcodekeeper .core .database .pg .PgDatabaseProvider ;
3029import org .pgcodekeeper .core .database .pg .jdbc .PgJdbcConnector ;
31- import org .pgcodekeeper .core .database .pg .jdbc .PgSupportedVersion ;
3230import org .pgcodekeeper .core .database .pg .loader .PgDumpLoader ;
3331import org .pgcodekeeper .core .it .jdbc .base .JdbcLoaderTest ;
3432import org .pgcodekeeper .core .monitor .NullMonitor ;
@@ -55,6 +53,7 @@ class PgGpJdbcLoaderTest extends JdbcLoaderTest {
5553 "operator, PG_16" ,
5654 "statistics, PG_16" ,
5755 "view, PG_16" ,
56+ "not_null, PG_18" ,
5857 "dump_test, GP_6" ,
5958 "operator, GP_6" ,
6059 "view, GP_6" ,
@@ -63,17 +62,31 @@ class PgGpJdbcLoaderTest extends JdbcLoaderTest {
6362 "statistics, GP_7" ,
6463 "view, GP_7" ,
6564 })
66- void pgGpJdbcLoaderTest (String fileName , String contTypeName ) throws Exception {
67- var contType = TestContainerType .valueOf (contTypeName );
68- var lowerCaseTypeName = contTypeName .toLowerCase (Locale .ROOT );
69- var url = contType .getUrl ();
70- jdbcLoaderTest (lowerCaseTypeName + "_" + fileName + FILES_POSTFIX .SQL ,
71- lowerCaseTypeName + ".pgcodekeeperignore" , url , new CoreSettings ());
65+ void jdbcLoaderTest (String fileName , String contTypeName ) throws Exception {
66+ var settings = new CoreSettings ();
67+ settings .setEnableFunctionBodiesDependencies (true );
68+ jdbcLoaderTest (false , fileName , contTypeName , settings );
7269 }
7370
74- protected void jdbcLoaderTest (String dumpFileName , String ignoreListName , String url , CoreSettings settings ) throws Exception {
75- settings .setEnableFunctionBodiesDependencies (true );
71+ @ ParameterizedTest
72+ @ CsvSource ({
73+ "view, PG_16" ,
74+ "not_null, PG_18"
75+ })
76+ void jdbcLoaderSpecialTest (String fileName , String contTypeName ) throws Exception {
77+ var settings = new CoreSettings ();
78+ settings .setSimplifyNotNull (true );
79+ settings .setSimplifyView (true );
80+ jdbcLoaderTest (true , fileName , contTypeName , settings );
81+ }
82+
83+ protected void jdbcLoaderTest (boolean hasDiff , String fileName , String contTypeName , ISettings settings )
84+ throws Exception {
85+ var url = TestContainerType .valueOf (contTypeName ).getUrl ();
86+ var lowerCaseTypeName = contTypeName .toLowerCase (Locale .ROOT );
87+ var ignoreListName = lowerCaseTypeName + ".pgcodekeeperignore" ;
7688 var diffSettings = new DiffSettings (settings );
89+ var dumpFileName = lowerCaseTypeName + "_" + fileName + FILES_POSTFIX .SQL ;
7790 var path = TestUtils .getFilePath (dumpFileName , getClass ());
7891 var dumpDb = databaseProvider .getDumpLoader (path , diffSettings ).loadAndAnalyze ();
7992 var script = Files .readString (TestUtils .getFilePath (dumpFileName , getClass ()));
@@ -93,15 +106,24 @@ protected void jdbcLoaderTest(String dumpFileName, String ignoreListName, String
93106 diffSettings .addIgnoreList (ignoreList );
94107 }
95108 var actual = PgCodeKeeperApi .diff (databaseProvider , dumpDb , remoteDb , diffSettings );
96- Assertions .assertEquals ("" , actual , "Incorrect run dump %s on Database" .formatted (dumpFileName ));
109+
110+ String expected ;
111+ if (hasDiff ) {
112+ expected = Files .readString (TestUtils .getFilePath (
113+ lowerCaseTypeName + "_" + fileName + FILES_POSTFIX .DIFF_SQL , getClass ()));
114+ } else {
115+ expected = "" ;
116+ }
117+
118+ Assertions .assertEquals (expected , actual , "Incorrect run dump %s on Database" .formatted (dumpFileName ));
97119 } finally {
98- clearDb (settings , startConfDb , connector , url , databaseProvider , diffSettings );
120+ clearDb (startConfDb , connector , url , databaseProvider , diffSettings );
99121 }
100122 }
101123
102124 @ Override
103125 protected AbstractDumpLoader <?> createDumpLoader (InputStreamProvider input , String inputObjectName ,
104- DiffSettings diffSettings ) {
126+ DiffSettings diffSettings ) {
105127 return new PgDumpLoader (input , inputObjectName , diffSettings );
106128 }
107129}
0 commit comments