From ac526de7c87838d0c71f291c0a798de623561b11 Mon Sep 17 00:00:00 2001 From: Siedlerchr Date: Sat, 5 Oct 2019 19:29:47 +0200 Subject: [PATCH 01/23] [WIP] Convert remaining tests to junit 5 Let's see if that works --- .../logic/shared/DBMSSynchronizerTest.java | 127 +++++++++++------- .../shared/SynchronizationTestSimulator.java | 49 ++++--- 2 files changed, 106 insertions(+), 70 deletions(-) diff --git a/src/test/java/org/jabref/logic/shared/DBMSSynchronizerTest.java b/src/test/java/org/jabref/logic/shared/DBMSSynchronizerTest.java index 2575e069719..1e236473857 100644 --- a/src/test/java/org/jabref/logic/shared/DBMSSynchronizerTest.java +++ b/src/test/java/org/jabref/logic/shared/DBMSSynchronizerTest.java @@ -7,11 +7,11 @@ import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.stream.Stream; import org.jabref.logic.exporter.MetaDataSerializer; import org.jabref.logic.formatter.casechanger.LowerCaseFormatter; import org.jabref.logic.shared.exception.InvalidDBMSConnectionPropertiesException; -import org.jabref.logic.shared.exception.OfflineLockException; import org.jabref.model.bibtexkeypattern.GlobalBibtexKeyPattern; import org.jabref.model.cleanup.FieldFormatterCleanup; import org.jabref.model.cleanup.FieldFormatterCleanups; @@ -19,7 +19,6 @@ import org.jabref.model.database.BibDatabaseContext; import org.jabref.model.database.BibDatabaseMode; import org.jabref.model.database.shared.DBMSType; -import org.jabref.model.database.shared.DatabaseNotSupportedException; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.event.EntryEventSource; import org.jabref.model.entry.field.StandardField; @@ -29,11 +28,8 @@ import org.jabref.model.util.DummyFileUpdateMonitor; import org.jabref.testutils.category.DatabaseTest; -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.junit.runners.Parameterized.Parameter; -import org.junit.runners.Parameterized.Parameters; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -41,39 +37,31 @@ @DatabaseTest public class DBMSSynchronizerTest { - @Parameter - public DBMSType dbmsType; private DBMSSynchronizer dbmsSynchronizer; - private DBMSConnection dbmsConnection; - private DBMSProcessor dbmsProcessor; private BibDatabase bibDatabase; - private GlobalBibtexKeyPattern pattern; - - @Parameters(name = "Test with {0} database system") - public static Collection getTestingDatabaseSystems() { - return TestManager.getDBMSTypeTestParameter(); + private final GlobalBibtexKeyPattern pattern = GlobalBibtexKeyPattern.fromPattern("[auth][year]"); + + private static Stream getTestingDatabaseSystems() throws InvalidDBMSConnectionPropertiesException, SQLException { + Collection result = new ArrayList<>(); + for (DBMSType dbmsType : TestManager.getDBMSTypeTestParameter()) { + result.add(new Object[] { + dbmsType, + TestConnector.getTestDBMSConnection(dbmsType), + DBMSProcessor.getProcessorInstance(TestConnector.getTestDBMSConnection(dbmsType))}); + } + return result.stream(); } - @BeforeEach - public void setUp() throws SQLException, DatabaseNotSupportedException, InvalidDBMSConnectionPropertiesException { - - dbmsConnection = TestConnector.getTestDBMSConnection(dbmsType); + @ParameterizedTest + @MethodSource("getTestingDatabaseSystems") + public void testEntryAddedEventListener(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { bibDatabase = new BibDatabase(); BibDatabaseContext context = new BibDatabaseContext(bibDatabase); - - pattern = GlobalBibtexKeyPattern.fromPattern("[auth][year]"); - dbmsSynchronizer = new DBMSSynchronizer(context, ',', pattern, new DummyFileUpdateMonitor()); - dbmsProcessor = DBMSProcessor.getProcessorInstance(dbmsConnection); - bibDatabase.registerListener(dbmsSynchronizer); - dbmsSynchronizer.openSharedDatabase(dbmsConnection); - } - @Test - public void testEntryAddedEventListener() { BibEntry expectedEntry = getBibEntryExample(1); BibEntry furtherEntry = getBibEntryExample(1); @@ -87,8 +75,15 @@ public void testEntryAddedEventListener() { assertEquals(expectedEntry, actualEntries.get(0)); } - @Test - public void testFieldChangedEventListener() { + @ParameterizedTest + @MethodSource("getTestingDatabaseSystems") + public void testFieldChangedEventListener(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { + + bibDatabase = new BibDatabase(); + BibDatabaseContext context = new BibDatabaseContext(bibDatabase); + dbmsSynchronizer = new DBMSSynchronizer(context, ',', pattern, new DummyFileUpdateMonitor()); + dbmsSynchronizer.openSharedDatabase(dbmsConnection); + BibEntry expectedEntry = getBibEntryExample(1); expectedEntry.registerListener(dbmsSynchronizer); @@ -102,8 +97,15 @@ public void testFieldChangedEventListener() { assertEquals("The nano processor1", actualEntries.get(0).getField(StandardField.TITLE).get()); } - @Test - public void testEntryRemovedEventListener() { + @ParameterizedTest + @MethodSource("getTestingDatabaseSystems") + public void testEntryRemovedEventListener(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { + + bibDatabase = new BibDatabase(); + BibDatabaseContext context = new BibDatabaseContext(bibDatabase); + dbmsSynchronizer = new DBMSSynchronizer(context, ',', pattern, new DummyFileUpdateMonitor()); + dbmsSynchronizer.openSharedDatabase(dbmsConnection); + BibEntry bibEntry = getBibEntryExample(1); bibDatabase.insertEntry(bibEntry); @@ -124,8 +126,15 @@ public void testEntryRemovedEventListener() { assertEquals(bibEntry, actualEntries.get(0)); } - @Test - public void testMetaDataChangedEventListener() { + @ParameterizedTest + @MethodSource("getTestingDatabaseSystems") + public void testMetaDataChangedEventListener(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { + + bibDatabase = new BibDatabase(); + BibDatabaseContext context = new BibDatabaseContext(bibDatabase); + dbmsSynchronizer = new DBMSSynchronizer(context, ',', pattern, new DummyFileUpdateMonitor()); + dbmsSynchronizer.openSharedDatabase(dbmsConnection); + MetaData testMetaData = new MetaData(); testMetaData.registerListener(dbmsSynchronizer); dbmsSynchronizer.setMetaData(testMetaData); @@ -137,17 +146,29 @@ public void testMetaDataChangedEventListener() { assertEquals(expectedMap, actualMap); } - @Test - public void testInitializeDatabases() throws SQLException, DatabaseNotSupportedException { - clear(); + @ParameterizedTest + @MethodSource("getTestingDatabaseSystems") + public void testInitializeDatabases(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { + bibDatabase = new BibDatabase(); + BibDatabaseContext context = new BibDatabaseContext(bibDatabase); + dbmsSynchronizer = new DBMSSynchronizer(context, ',', pattern, new DummyFileUpdateMonitor()); + dbmsSynchronizer.openSharedDatabase(dbmsConnection); + + clear(dbmsConnection); dbmsSynchronizer.initializeDatabases(); assertTrue(dbmsProcessor.checkBaseIntegrity()); dbmsSynchronizer.initializeDatabases(); assertTrue(dbmsProcessor.checkBaseIntegrity()); } - @Test - public void testSynchronizeLocalDatabaseWithEntryRemoval() { + @ParameterizedTest + @MethodSource("getTestingDatabaseSystems") + public void testSynchronizeLocalDatabaseWithEntryRemoval(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { + bibDatabase = new BibDatabase(); + BibDatabaseContext context = new BibDatabaseContext(bibDatabase); + dbmsSynchronizer = new DBMSSynchronizer(context, ',', pattern, new DummyFileUpdateMonitor()); + dbmsSynchronizer.openSharedDatabase(dbmsConnection); + List expectedBibEntries = Arrays.asList(getBibEntryExample(1), getBibEntryExample(2)); dbmsProcessor.insertEntry(expectedBibEntries.get(0)); @@ -169,8 +190,14 @@ public void testSynchronizeLocalDatabaseWithEntryRemoval() { assertEquals(expectedBibEntries, bibDatabase.getEntries()); } - @Test - public void testSynchronizeLocalDatabaseWithEntryUpdate() throws OfflineLockException, SQLException { + @ParameterizedTest + @MethodSource("getTestingDatabaseSystems") + public void testSynchronizeLocalDatabaseWithEntryUpdate(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { + bibDatabase = new BibDatabase(); + BibDatabaseContext context = new BibDatabaseContext(bibDatabase); + dbmsSynchronizer = new DBMSSynchronizer(context, ',', pattern, new DummyFileUpdateMonitor()); + dbmsSynchronizer.openSharedDatabase(dbmsConnection); + BibEntry bibEntry = getBibEntryExample(1); bibDatabase.insertEntry(bibEntry); assertEquals(1, bibDatabase.getEntries().size()); @@ -187,14 +214,19 @@ public void testSynchronizeLocalDatabaseWithEntryUpdate() throws OfflineLockExce assertEquals(bibDatabase.getEntries(), dbmsProcessor.getSharedEntries()); } - @Test - public void testApplyMetaData() { + @ParameterizedTest + @MethodSource("getTestingDatabaseSystems") + public void testApplyMetaData(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { + bibDatabase = new BibDatabase(); + BibDatabaseContext context = new BibDatabaseContext(bibDatabase); + dbmsSynchronizer = new DBMSSynchronizer(context, ',', pattern, new DummyFileUpdateMonitor()); + dbmsSynchronizer.openSharedDatabase(dbmsConnection); + BibEntry bibEntry = getBibEntryExample(1); bibDatabase.insertEntry(bibEntry); MetaData testMetaData = new MetaData(); - testMetaData.setSaveActions(new FieldFormatterCleanups(true, - Collections.singletonList(new FieldFormatterCleanup(StandardField.AUTHOR, new LowerCaseFormatter())))); + testMetaData.setSaveActions(new FieldFormatterCleanups(true, Collections.singletonList(new FieldFormatterCleanup(StandardField.AUTHOR, new LowerCaseFormatter())))); dbmsSynchronizer.setMetaData(testMetaData); dbmsSynchronizer.applyMetaData(); @@ -211,8 +243,7 @@ private BibEntry getBibEntryExample(int index) { return bibEntry; } - @AfterEach - public void clear() throws SQLException { + public void clear(DBMSConnection dbmsConnection) throws SQLException { TestManager.clearTables(dbmsConnection); } } diff --git a/src/test/java/org/jabref/logic/shared/SynchronizationTestSimulator.java b/src/test/java/org/jabref/logic/shared/SynchronizationTestSimulator.java index d694a697f7e..19835bf9d8b 100644 --- a/src/test/java/org/jabref/logic/shared/SynchronizationTestSimulator.java +++ b/src/test/java/org/jabref/logic/shared/SynchronizationTestSimulator.java @@ -1,7 +1,9 @@ package org.jabref.logic.shared; import java.sql.SQLException; +import java.util.ArrayList; import java.util.Collection; +import java.util.stream.Stream; import org.jabref.logic.shared.exception.InvalidDBMSConnectionPropertiesException; import org.jabref.model.Defaults; @@ -17,11 +19,9 @@ import org.jabref.model.util.DummyFileUpdateMonitor; import org.jabref.testutils.category.DatabaseTest; -import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.junit.runners.Parameterized.Parameter; -import org.junit.runners.Parameterized.Parameters; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -32,23 +32,27 @@ @DatabaseTest public class SynchronizationTestSimulator { - @Parameter public DBMSType dbmsType; private BibDatabaseContext clientContextA; private BibDatabaseContext clientContextB; private SynchronizationTestEventListener eventListenerB; // used to monitor occurring events - private DBMSConnection dbmsConnection; - - @Parameters(name = "Test with {0} database system") - public static Collection getTestingDatabaseSystems() { - return TestManager.getDBMSTypeTestParameter(); + private final GlobalBibtexKeyPattern pattern = GlobalBibtexKeyPattern.fromPattern("[auth][year]"); + + private static Stream getTestingDatabaseSystems() throws InvalidDBMSConnectionPropertiesException, SQLException { + Collection result = new ArrayList<>(); + for (DBMSType dbmsType : TestManager.getDBMSTypeTestParameter()) { + result.add(new Object[] { + dbmsType, + TestConnector.getTestDBMSConnection(dbmsType), + DBMSProcessor.getProcessorInstance(TestConnector.getTestDBMSConnection(dbmsType))}); + } + return result.stream(); } @BeforeEach - public void setUp() throws SQLException, DatabaseNotSupportedException, InvalidDBMSConnectionPropertiesException { - this.dbmsConnection = TestConnector.getTestDBMSConnection(dbmsType); + @MethodSource("getTestingDatabaseSystems") + public void setUp(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws SQLException, DatabaseNotSupportedException, InvalidDBMSConnectionPropertiesException { - GlobalBibtexKeyPattern pattern = GlobalBibtexKeyPattern.fromPattern("[auth][year]"); clientContextA = new BibDatabaseContext(new Defaults(BibDatabaseMode.BIBTEX)); DBMSSynchronizer synchronizerA = new DBMSSynchronizer(clientContextA, ',', pattern, new DummyFileUpdateMonitor()); clientContextA.convertToSharedDatabase(synchronizerA); @@ -62,7 +66,8 @@ public void setUp() throws SQLException, DatabaseNotSupportedException, InvalidD clientContextB.getDBMSSynchronizer().registerListener(eventListenerB); } - @Test + @ParameterizedTest + @MethodSource("getTestingDatabaseSystems") public void simulateEntryInsertionAndManualPull() { //client A inserts an entry clientContextA.getDatabase().insertEntry(getBibEntryExample(1)); @@ -74,7 +79,8 @@ public void simulateEntryInsertionAndManualPull() { assertEquals(clientContextA.getDatabase().getEntries(), clientContextB.getDatabase().getEntries()); } - @Test + @ParameterizedTest + @MethodSource("getTestingDatabaseSystems") public void simulateEntryUpdateAndManualPull() { BibEntry bibEntry = getBibEntryExample(1); //client A inserts an entry @@ -89,7 +95,8 @@ public void simulateEntryUpdateAndManualPull() { assertEquals(clientContextA.getDatabase().getEntries(), clientContextB.getDatabase().getEntries()); } - @Test + @ParameterizedTest + @MethodSource("getTestingDatabaseSystems") public void simulateEntryDelitionAndManualPull() { BibEntry bibEntry = getBibEntryExample(1); //client A inserts an entry @@ -110,7 +117,8 @@ public void simulateEntryDelitionAndManualPull() { assertTrue(clientContextB.getDatabase().getEntries().isEmpty()); } - @Test + @ParameterizedTest + @MethodSource("getTestingDatabaseSystems") public void simulateUpdateOnNoLongerExistingEntry() { BibEntry bibEntryOfClientA = getBibEntryExample(1); //client A inserts an entry @@ -136,7 +144,8 @@ public void simulateUpdateOnNoLongerExistingEntry() { assertEquals(bibEntryOfClientB, eventListenerB.getSharedEntryNotPresentEvent().getBibEntry()); } - @Test + @ParameterizedTest + @MethodSource("getTestingDatabaseSystems") public void simulateEntryChangeConflicts() { BibEntry bibEntryOfClientA = getBibEntryExample(1); //client A inserts an entry @@ -172,8 +181,4 @@ private BibEntry getBibEntryExample(int index) { return bibEntry; } - @AfterEach - public void clear() throws SQLException { - TestManager.clearTables(dbmsConnection); - } } From 9f8ad5a3c4eb043655a01ae1130c82f7cfe6493e Mon Sep 17 00:00:00 2001 From: Siedlerchr Date: Sat, 5 Oct 2019 19:36:52 +0200 Subject: [PATCH 02/23] remove junit 4 --- build.gradle | 1 - src/test/java/module-info.test | 4 ---- 2 files changed, 5 deletions(-) diff --git a/build.gradle b/build.gradle index b3d7851f76a..2c4f578b294 100644 --- a/build.gradle +++ b/build.gradle @@ -197,7 +197,6 @@ dependencies { exclude module: "log4j-core" } - testCompile 'junit:junit:4.12' testImplementation 'org.junit.jupiter:junit-jupiter:5.5.2' testRuntimeOnly 'org.junit.vintage:junit-vintage-engine:5.5.2' testCompile 'org.junit.platform:junit-platform-launcher:1.5.2' diff --git a/src/test/java/module-info.test b/src/test/java/module-info.test index 46486381c1d..61209986e75 100644 --- a/src/test/java/module-info.test +++ b/src/test/java/module-info.test @@ -1,7 +1,3 @@ ---add-modules - // Make junit4 module visible (only required for last remaining parameterized tests) - junit - --add-modules // Add junit5 module dependency org.junit.jupiter.api From 1374d2052cd7b3ec0501a68467e2e389b9b0dfcf Mon Sep 17 00:00:00 2001 From: Siedlerchr Date: Wed, 9 Oct 2019 21:28:12 +0200 Subject: [PATCH 03/23] temporaily add system.out.prinltn to test if all are run --- .../java/org/jabref/logic/shared/DBMSSynchronizerTest.java | 1 + .../org/jabref/logic/shared/SynchronizationTestSimulator.java | 3 +++ 2 files changed, 4 insertions(+) diff --git a/src/test/java/org/jabref/logic/shared/DBMSSynchronizerTest.java b/src/test/java/org/jabref/logic/shared/DBMSSynchronizerTest.java index 1e236473857..7089723be66 100644 --- a/src/test/java/org/jabref/logic/shared/DBMSSynchronizerTest.java +++ b/src/test/java/org/jabref/logic/shared/DBMSSynchronizerTest.java @@ -56,6 +56,7 @@ private static Stream getTestingDatabaseSystems() throws InvalidDBMSCo @MethodSource("getTestingDatabaseSystems") public void testEntryAddedEventListener(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { + System.out.println("dbmstype"+ dbmsType); bibDatabase = new BibDatabase(); BibDatabaseContext context = new BibDatabaseContext(bibDatabase); dbmsSynchronizer = new DBMSSynchronizer(context, ',', pattern, new DummyFileUpdateMonitor()); diff --git a/src/test/java/org/jabref/logic/shared/SynchronizationTestSimulator.java b/src/test/java/org/jabref/logic/shared/SynchronizationTestSimulator.java index 19835bf9d8b..7159ce5b0ad 100644 --- a/src/test/java/org/jabref/logic/shared/SynchronizationTestSimulator.java +++ b/src/test/java/org/jabref/logic/shared/SynchronizationTestSimulator.java @@ -53,6 +53,9 @@ private static Stream getTestingDatabaseSystems() throws InvalidDBMSCo @MethodSource("getTestingDatabaseSystems") public void setUp(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws SQLException, DatabaseNotSupportedException, InvalidDBMSConnectionPropertiesException { + + System.out.println("dbmstype before each"+ dbmsType); + clientContextA = new BibDatabaseContext(new Defaults(BibDatabaseMode.BIBTEX)); DBMSSynchronizer synchronizerA = new DBMSSynchronizer(clientContextA, ',', pattern, new DummyFileUpdateMonitor()); clientContextA.convertToSharedDatabase(synchronizerA); From 9a4a52ad8ebf1276ac937a73770b3f59b8f81fbd Mon Sep 17 00:00:00 2001 From: Siedlerchr Date: Wed, 9 Oct 2019 22:14:45 +0200 Subject: [PATCH 04/23] fix gradle not executing tests correclty --- build.gradle | 14 +++++++------- .../logic/shared/SynchronizationTestSimulator.java | 1 - 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/build.gradle b/build.gradle index 898b4338fb0..5496c24559b 100644 --- a/build.gradle +++ b/build.gradle @@ -440,26 +440,26 @@ test { testLogging { // set options for log level LIFECYCLE - events "failed" + events = "failed" exceptionFormat "full" } } task databaseTest(type: Test) { - useJUnit { - includeCategories 'org.jabref.testutils.category.DatabaseTest' + useJUnitPlatform { + includeTags 'DatabaseTest' } } task fetcherTest(type: Test) { - useJUnit { - includeCategories 'org.jabref.testutils.category.FetcherTest' + useJUnitPlatform { + includeTags 'FetcherTest' } } task guiTest(type: Test) { - useJUnit { - includeCategories 'org.jabref.testutils.category.GUITest' + useJUnitPlatform { + includeTags 'GUITest' } } diff --git a/src/test/java/org/jabref/logic/shared/SynchronizationTestSimulator.java b/src/test/java/org/jabref/logic/shared/SynchronizationTestSimulator.java index 7159ce5b0ad..15ee6fdc860 100644 --- a/src/test/java/org/jabref/logic/shared/SynchronizationTestSimulator.java +++ b/src/test/java/org/jabref/logic/shared/SynchronizationTestSimulator.java @@ -53,7 +53,6 @@ private static Stream getTestingDatabaseSystems() throws InvalidDBMSCo @MethodSource("getTestingDatabaseSystems") public void setUp(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws SQLException, DatabaseNotSupportedException, InvalidDBMSConnectionPropertiesException { - System.out.println("dbmstype before each"+ dbmsType); clientContextA = new BibDatabaseContext(new Defaults(BibDatabaseMode.BIBTEX)); From 48c545c495f7285cb5ee2e71dc152e42ae9d713a Mon Sep 17 00:00:00 2001 From: Siedlerchr Date: Wed, 9 Oct 2019 22:28:25 +0200 Subject: [PATCH 05/23] fix gradle syntax error --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 5496c24559b..32785f755c1 100644 --- a/build.gradle +++ b/build.gradle @@ -440,7 +440,7 @@ test { testLogging { // set options for log level LIFECYCLE - events = "failed" + events = ["FAILED", "STANDARD_OUT", "STANDARD_ERROR"] exceptionFormat "full" } } From 09b131ba62f62903745874b796b3e19bac0074f6 Mon Sep 17 00:00:00 2001 From: Siedlerchr Date: Wed, 9 Oct 2019 22:37:32 +0200 Subject: [PATCH 06/23] add more logging --- build.gradle | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/build.gradle b/build.gradle index 32785f755c1..76228629b36 100644 --- a/build.gradle +++ b/build.gradle @@ -449,18 +449,33 @@ task databaseTest(type: Test) { useJUnitPlatform { includeTags 'DatabaseTest' } + testLogging { + // set options for log level LIFECYCLE + events = ["FAILED", "STANDARD_OUT", "STANDARD_ERROR"] + exceptionFormat "full" + } } task fetcherTest(type: Test) { useJUnitPlatform { includeTags 'FetcherTest' } + testLogging { + // set options for log level LIFECYCLE + events = ["FAILED", "STANDARD_OUT", "STANDARD_ERROR"] + exceptionFormat "full" + } } task guiTest(type: Test) { useJUnitPlatform { includeTags 'GUITest' } + testLogging { + // set options for log level LIFECYCLE + events = ["FAILED", "STANDARD_OUT", "STANDARD_ERROR"] + exceptionFormat "full" + } } // Test result tasks From c284667143089a2ee66cc26f829f77120dc22723 Mon Sep 17 00:00:00 2001 From: Siedlerchr Date: Wed, 9 Oct 2019 22:50:53 +0200 Subject: [PATCH 07/23] fix psql driver name and url --- src/test/java/org/jabref/logic/shared/DBMSTypeTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/org/jabref/logic/shared/DBMSTypeTest.java b/src/test/java/org/jabref/logic/shared/DBMSTypeTest.java index 7b1879640b4..194d88ee68e 100644 --- a/src/test/java/org/jabref/logic/shared/DBMSTypeTest.java +++ b/src/test/java/org/jabref/logic/shared/DBMSTypeTest.java @@ -22,7 +22,7 @@ public void testToString() { public void testGetDriverClassPath() { assertEquals("org.mariadb.jdbc.Driver", DBMSType.MYSQL.getDriverClassPath()); assertEquals("oracle.jdbc.driver.OracleDriver", DBMSType.ORACLE.getDriverClassPath()); - assertEquals("com.impossibl.postgres.jdbc.PGDriver", DBMSType.POSTGRESQL.getDriverClassPath()); + assertEquals("org.postgresql.Drive", DBMSType.POSTGRESQL.getDriverClassPath()); } @Test @@ -37,7 +37,7 @@ public void testFromString() { public void testGetUrl() { assertEquals("jdbc:mariadb://localhost:3306/xe", DBMSType.MYSQL.getUrl("localhost", 3306, "xe")); assertEquals("jdbc:oracle:thin:@localhost:1521:xe", DBMSType.ORACLE.getUrl("localhost", 1521, "xe")); - assertEquals("jdbc:pgsql://localhost:5432/xe", DBMSType.POSTGRESQL.getUrl("localhost", 5432, "xe")); + assertEquals("jdbc:postgresql://localhost:5432/xe", DBMSType.POSTGRESQL.getUrl("localhost", 5432, "xe")); } @Test From 071721113bbc78624e8aa42452ce693959eecdbc Mon Sep 17 00:00:00 2001 From: Siedlerchr Date: Thu, 24 Oct 2019 15:54:59 +0200 Subject: [PATCH 08/23] Manually call setup and clear in each test --- .../logic/shared/DBMSSynchronizerTest.java | 59 ++++++++++--------- .../shared/SynchronizationTestSimulator.java | 42 +++++++++---- 2 files changed, 61 insertions(+), 40 deletions(-) diff --git a/src/test/java/org/jabref/logic/shared/DBMSSynchronizerTest.java b/src/test/java/org/jabref/logic/shared/DBMSSynchronizerTest.java index 7089723be66..6ea9af3f426 100644 --- a/src/test/java/org/jabref/logic/shared/DBMSSynchronizerTest.java +++ b/src/test/java/org/jabref/logic/shared/DBMSSynchronizerTest.java @@ -52,17 +52,24 @@ private static Stream getTestingDatabaseSystems() throws InvalidDBMSCo return result.stream(); } - @ParameterizedTest - @MethodSource("getTestingDatabaseSystems") - public void testEntryAddedEventListener(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { + public void setUp(DBMSConnection dbmsConnection) throws Exception { - System.out.println("dbmstype"+ dbmsType); bibDatabase = new BibDatabase(); BibDatabaseContext context = new BibDatabaseContext(bibDatabase); dbmsSynchronizer = new DBMSSynchronizer(context, ',', pattern, new DummyFileUpdateMonitor()); + bibDatabase.registerListener(dbmsSynchronizer); + dbmsSynchronizer.openSharedDatabase(dbmsConnection); + } + @ParameterizedTest + @MethodSource("getTestingDatabaseSystems") + public void testEntryAddedEventListener(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { + + System.out.println("dbmstype" + dbmsType); + + setUp(dbmsConnection); BibEntry expectedEntry = getBibEntryExample(1); BibEntry furtherEntry = getBibEntryExample(1); @@ -74,16 +81,15 @@ public void testEntryAddedEventListener(DBMSType dbmsType, DBMSConnection dbmsCo assertEquals(1, actualEntries.size()); assertEquals(expectedEntry, actualEntries.get(0)); + + clear(dbmsConnection); } @ParameterizedTest @MethodSource("getTestingDatabaseSystems") public void testFieldChangedEventListener(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { - bibDatabase = new BibDatabase(); - BibDatabaseContext context = new BibDatabaseContext(bibDatabase); - dbmsSynchronizer = new DBMSSynchronizer(context, ',', pattern, new DummyFileUpdateMonitor()); - dbmsSynchronizer.openSharedDatabase(dbmsConnection); + setUp(dbmsConnection); BibEntry expectedEntry = getBibEntryExample(1); expectedEntry.registerListener(dbmsSynchronizer); @@ -96,16 +102,15 @@ public void testFieldChangedEventListener(DBMSType dbmsType, DBMSConnection dbms assertEquals(1, actualEntries.size()); assertEquals(expectedEntry.getField(StandardField.AUTHOR), actualEntries.get(0).getField(StandardField.AUTHOR)); assertEquals("The nano processor1", actualEntries.get(0).getField(StandardField.TITLE).get()); + + clear(dbmsConnection); } @ParameterizedTest @MethodSource("getTestingDatabaseSystems") public void testEntryRemovedEventListener(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { - bibDatabase = new BibDatabase(); - BibDatabaseContext context = new BibDatabaseContext(bibDatabase); - dbmsSynchronizer = new DBMSSynchronizer(context, ',', pattern, new DummyFileUpdateMonitor()); - dbmsSynchronizer.openSharedDatabase(dbmsConnection); + setUp(dbmsConnection); BibEntry bibEntry = getBibEntryExample(1); bibDatabase.insertEntry(bibEntry); @@ -125,6 +130,8 @@ public void testEntryRemovedEventListener(DBMSType dbmsType, DBMSConnection dbms actualEntries = dbmsProcessor.getSharedEntries(); assertEquals(1, actualEntries.size()); assertEquals(bibEntry, actualEntries.get(0)); + + clear(dbmsConnection); } @ParameterizedTest @@ -145,30 +152,26 @@ public void testMetaDataChangedEventListener(DBMSType dbmsType, DBMSConnection d Map actualMap = dbmsProcessor.getSharedMetaData(); assertEquals(expectedMap, actualMap); + clear(dbmsConnection); } @ParameterizedTest @MethodSource("getTestingDatabaseSystems") public void testInitializeDatabases(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { - bibDatabase = new BibDatabase(); - BibDatabaseContext context = new BibDatabaseContext(bibDatabase); - dbmsSynchronizer = new DBMSSynchronizer(context, ',', pattern, new DummyFileUpdateMonitor()); - dbmsSynchronizer.openSharedDatabase(dbmsConnection); + setUp(dbmsConnection); clear(dbmsConnection); dbmsSynchronizer.initializeDatabases(); assertTrue(dbmsProcessor.checkBaseIntegrity()); dbmsSynchronizer.initializeDatabases(); assertTrue(dbmsProcessor.checkBaseIntegrity()); + clear(dbmsConnection); } @ParameterizedTest @MethodSource("getTestingDatabaseSystems") public void testSynchronizeLocalDatabaseWithEntryRemoval(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { - bibDatabase = new BibDatabase(); - BibDatabaseContext context = new BibDatabaseContext(bibDatabase); - dbmsSynchronizer = new DBMSSynchronizer(context, ',', pattern, new DummyFileUpdateMonitor()); - dbmsSynchronizer.openSharedDatabase(dbmsConnection); + setUp(dbmsConnection); List expectedBibEntries = Arrays.asList(getBibEntryExample(1), getBibEntryExample(2)); @@ -189,15 +192,15 @@ public void testSynchronizeLocalDatabaseWithEntryRemoval(DBMSType dbmsType, DBMS dbmsSynchronizer.synchronizeLocalDatabase(); assertEquals(expectedBibEntries, bibDatabase.getEntries()); + + clear(dbmsConnection); } @ParameterizedTest @MethodSource("getTestingDatabaseSystems") public void testSynchronizeLocalDatabaseWithEntryUpdate(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { - bibDatabase = new BibDatabase(); - BibDatabaseContext context = new BibDatabaseContext(bibDatabase); - dbmsSynchronizer = new DBMSSynchronizer(context, ',', pattern, new DummyFileUpdateMonitor()); - dbmsSynchronizer.openSharedDatabase(dbmsConnection); + + setUp(dbmsConnection); BibEntry bibEntry = getBibEntryExample(1); bibDatabase.insertEntry(bibEntry); @@ -213,15 +216,13 @@ public void testSynchronizeLocalDatabaseWithEntryUpdate(DBMSType dbmsType, DBMSC dbmsSynchronizer.synchronizeLocalDatabase(); assertEquals(bibDatabase.getEntries(), dbmsProcessor.getSharedEntries()); + clear(dbmsConnection); } @ParameterizedTest @MethodSource("getTestingDatabaseSystems") public void testApplyMetaData(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { - bibDatabase = new BibDatabase(); - BibDatabaseContext context = new BibDatabaseContext(bibDatabase); - dbmsSynchronizer = new DBMSSynchronizer(context, ',', pattern, new DummyFileUpdateMonitor()); - dbmsSynchronizer.openSharedDatabase(dbmsConnection); + setUp(dbmsConnection); BibEntry bibEntry = getBibEntryExample(1); bibDatabase.insertEntry(bibEntry); @@ -233,6 +234,8 @@ public void testApplyMetaData(DBMSType dbmsType, DBMSConnection dbmsConnection, dbmsSynchronizer.applyMetaData(); assertEquals("wirthlin, michael j1", bibEntry.getField(StandardField.AUTHOR).get()); + + clear(dbmsConnection); } private BibEntry getBibEntryExample(int index) { diff --git a/src/test/java/org/jabref/logic/shared/SynchronizationTestSimulator.java b/src/test/java/org/jabref/logic/shared/SynchronizationTestSimulator.java index 15ee6fdc860..957809872bc 100644 --- a/src/test/java/org/jabref/logic/shared/SynchronizationTestSimulator.java +++ b/src/test/java/org/jabref/logic/shared/SynchronizationTestSimulator.java @@ -11,7 +11,6 @@ import org.jabref.model.database.BibDatabaseContext; import org.jabref.model.database.BibDatabaseMode; import org.jabref.model.database.shared.DBMSType; -import org.jabref.model.database.shared.DatabaseNotSupportedException; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.StandardField; import org.jabref.model.entry.field.UnknownField; @@ -19,7 +18,6 @@ import org.jabref.model.util.DummyFileUpdateMonitor; import org.jabref.testutils.category.DatabaseTest; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; @@ -32,7 +30,6 @@ @DatabaseTest public class SynchronizationTestSimulator { - public DBMSType dbmsType; private BibDatabaseContext clientContextA; private BibDatabaseContext clientContextB; private SynchronizationTestEventListener eventListenerB; // used to monitor occurring events @@ -49,11 +46,9 @@ private static Stream getTestingDatabaseSystems() throws InvalidDBMSCo return result.stream(); } - @BeforeEach - @MethodSource("getTestingDatabaseSystems") - public void setUp(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws SQLException, DatabaseNotSupportedException, InvalidDBMSConnectionPropertiesException { + public void setUp(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { - System.out.println("dbmstype before each"+ dbmsType); + System.out.println("dbmstype before each" + dbmsType); clientContextA = new BibDatabaseContext(new Defaults(BibDatabaseMode.BIBTEX)); DBMSSynchronizer synchronizerA = new DBMSSynchronizer(clientContextA, ',', pattern, new DummyFileUpdateMonitor()); @@ -70,7 +65,8 @@ public void setUp(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcesso @ParameterizedTest @MethodSource("getTestingDatabaseSystems") - public void simulateEntryInsertionAndManualPull() { + public void simulateEntryInsertionAndManualPull(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { + setUp(dbmsType, dbmsConnection, dbmsProcessor); //client A inserts an entry clientContextA.getDatabase().insertEntry(getBibEntryExample(1)); //client A inserts another entry @@ -79,11 +75,15 @@ public void simulateEntryInsertionAndManualPull() { clientContextB.getDBMSSynchronizer().pullChanges(); assertEquals(clientContextA.getDatabase().getEntries(), clientContextB.getDatabase().getEntries()); + + clear(dbmsConnection); } @ParameterizedTest @MethodSource("getTestingDatabaseSystems") - public void simulateEntryUpdateAndManualPull() { + public void simulateEntryUpdateAndManualPull(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { + setUp(dbmsType, dbmsConnection, dbmsProcessor); + BibEntry bibEntry = getBibEntryExample(1); //client A inserts an entry clientContextA.getDatabase().insertEntry(bibEntry); @@ -95,11 +95,15 @@ public void simulateEntryUpdateAndManualPull() { clientContextB.getDBMSSynchronizer().pullChanges(); assertEquals(clientContextA.getDatabase().getEntries(), clientContextB.getDatabase().getEntries()); + + clear(dbmsConnection); } @ParameterizedTest @MethodSource("getTestingDatabaseSystems") - public void simulateEntryDelitionAndManualPull() { + public void simulateEntryDelitionAndManualPull(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { + setUp(dbmsType, dbmsConnection, dbmsProcessor); + BibEntry bibEntry = getBibEntryExample(1); //client A inserts an entry clientContextA.getDatabase().insertEntry(bibEntry); @@ -117,11 +121,15 @@ public void simulateEntryDelitionAndManualPull() { assertTrue(clientContextA.getDatabase().getEntries().isEmpty()); assertTrue(clientContextB.getDatabase().getEntries().isEmpty()); + + clear(dbmsConnection); } @ParameterizedTest @MethodSource("getTestingDatabaseSystems") - public void simulateUpdateOnNoLongerExistingEntry() { + public void simulateUpdateOnNoLongerExistingEntry(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { + setUp(dbmsType, dbmsConnection, dbmsProcessor); + BibEntry bibEntryOfClientA = getBibEntryExample(1); //client A inserts an entry clientContextA.getDatabase().insertEntry(bibEntryOfClientA); @@ -144,11 +152,15 @@ public void simulateUpdateOnNoLongerExistingEntry() { // here a new SharedEntryNotPresentEvent has been thrown. In this case the user B would get an pop-up window. assertNotNull(eventListenerB.getSharedEntryNotPresentEvent()); assertEquals(bibEntryOfClientB, eventListenerB.getSharedEntryNotPresentEvent().getBibEntry()); + + clear(dbmsConnection); } @ParameterizedTest @MethodSource("getTestingDatabaseSystems") - public void simulateEntryChangeConflicts() { + public void simulateEntryChangeConflicts(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { + setUp(dbmsType, dbmsConnection, dbmsProcessor); + BibEntry bibEntryOfClientA = getBibEntryExample(1); //client A inserts an entry clientContextA.getDatabase().insertEntry(bibEntryOfClientA); @@ -171,6 +183,8 @@ public void simulateEntryChangeConflicts() { // B now cannot update the shared entry, due to optimistic offline lock. // In this case an BibEntry merge dialog pops up. assertNotNull(eventListenerB.getUpdateRefusedEvent()); + + clear(dbmsConnection); } private BibEntry getBibEntryExample(int index) { @@ -183,4 +197,8 @@ private BibEntry getBibEntryExample(int index) { return bibEntry; } + public void clear(DBMSConnection dbmsConnection) throws SQLException { + TestManager.clearTables(dbmsConnection); + } + } From ac192c0f408697d92fcab7808f0ca35519538767 Mon Sep 17 00:00:00 2001 From: Siedlerchr Date: Thu, 24 Oct 2019 16:03:39 +0200 Subject: [PATCH 09/23] fix typo and call clear --- .../logic/shared/DBMSProcessorTest.java | 23 +++++++++++++++++-- .../org/jabref/logic/shared/DBMSTypeTest.java | 2 +- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java b/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java index 52006447666..1061ac66a2a 100644 --- a/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java +++ b/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java @@ -21,7 +21,6 @@ import org.jabref.model.entry.types.StandardEntryType; import org.jabref.testutils.category.DatabaseTest; -import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; @@ -52,6 +51,8 @@ void testCheckBaseIntegrity(DBMSType dbmsType, DBMSConnection dbmsConnection, DB assertTrue(dbmsProcessor.checkBaseIntegrity()); clear(dbmsConnection); assertFalse(dbmsProcessor.checkBaseIntegrity()); + + clear(dbmsConnection); } @ParameterizedTest @@ -61,6 +62,8 @@ void testSetUpSharedDatabase(DBMSType dbmsType, DBMSConnection dbmsConnection, D clear(dbmsConnection); dbmsProcessor.setupSharedDatabase(); assertTrue(dbmsProcessor.checkBaseIntegrity()); + + clear(dbmsConnection); } @ParameterizedTest @@ -94,6 +97,7 @@ void testInsertEntry(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProce Map expectedFieldMap = expectedEntry.getFieldMap(); assertEquals(expectedFieldMap, actualFieldMap); + clear(dbmsConnection); } @ParameterizedTest @@ -115,6 +119,7 @@ void testUpdateEntry(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProce .getSharedEntry(expectedEntry.getSharedBibEntryData().getSharedID()); assertEquals(expectedEntry, actualEntryOptional.get()); + clear(dbmsConnection); } @ParameterizedTest @@ -133,6 +138,8 @@ void testGetEntriesByIdList(DBMSType dbmsType, DBMSConnection dbmsConnection, DB assertEquals(firstEntry.getId(), sharedEntriesByIdList.get(0).getId()); assertEquals(secondEntry.getId(), sharedEntriesByIdList.get(1).getId()); + + clear(dbmsConnection); } @ParameterizedTest @@ -148,6 +155,8 @@ void testUpdateNewerEntry(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMS bibEntry.setField(StandardField.YEAR, "1993"); assertThrows(OfflineLockException.class, () -> dbmsProcessor.updateEntry(bibEntry)); + + clear(dbmsConnection); } @ParameterizedTest @@ -165,6 +174,8 @@ void testUpdateEqualEntry(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMS .getSharedEntry(expectedBibEntry.getSharedBibEntryData().getSharedID()); assertEquals(expectedBibEntry, actualBibEntryOptional.get()); + + clear(dbmsConnection); } @ParameterizedTest @@ -178,6 +189,7 @@ void testRemoveEntry(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProce try (ResultSet resultSet = selectFrom("ENTRY", dbmsConnection, dbmsProcessor)) { assertFalse(resultSet.next()); } + clear(dbmsConnection); } @ParameterizedTest @@ -192,6 +204,7 @@ void testGetSharedEntries(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMS List actualEntries = dbmsProcessor.getSharedEntries(); assertEquals(expectedEntries, actualEntries); + clear(dbmsConnection); } @ParameterizedTest @@ -206,6 +219,7 @@ void testGetSharedEntry(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSPr .getSharedEntry(expectedBibEntry.getSharedBibEntryData().getSharedID()); assertEquals(expectedBibEntry, actualBibEntryOptional.get()); + clear(dbmsConnection); } @ParameterizedTest @@ -214,6 +228,8 @@ void testGetNotExistingSharedEntry(DBMSType dbmsType, DBMSConnection dbmsConnect dbmsProcessor.setupSharedDatabase(); Optional actualBibEntryOptional = dbmsProcessor.getSharedEntry(1); assertFalse(actualBibEntryOptional.isPresent()); + + clear(dbmsConnection); } @ParameterizedTest @@ -234,6 +250,8 @@ void testGetSharedIDVersionMapping(DBMSType dbmsType, DBMSConnection dbmsConnect Map actualIDVersionMap = dbmsProcessor.getSharedIDVersionMapping(); assertEquals(expectedIDVersionMap, actualIDVersionMap); + + clear(dbmsConnection); } @ParameterizedTest @@ -249,6 +267,7 @@ void testGetSharedMetaData(DBMSType dbmsType, DBMSConnection dbmsConnection, DBM Map actualMetaData = dbmsProcessor.getSharedMetaData(); assertEquals(expectedMetaData, actualMetaData); + clear(dbmsConnection); } @ParameterizedTest @@ -261,6 +280,7 @@ void testSetSharedMetaData(DBMSType dbmsType, DBMSConnection dbmsConnection, DBM Map actualMetaData = dbmsProcessor.getSharedMetaData(); assertEquals(expectedMetaData, actualMetaData); + clear(dbmsConnection); } private Map getMetaDataExample() { @@ -322,7 +342,6 @@ private String escapeValue(String value) { return "'" + value + "'"; } - @AfterEach void clear(DBMSConnection dbmsConnection) throws SQLException { TestManager.clearTables(dbmsConnection); } diff --git a/src/test/java/org/jabref/logic/shared/DBMSTypeTest.java b/src/test/java/org/jabref/logic/shared/DBMSTypeTest.java index 194d88ee68e..87ba1169cc3 100644 --- a/src/test/java/org/jabref/logic/shared/DBMSTypeTest.java +++ b/src/test/java/org/jabref/logic/shared/DBMSTypeTest.java @@ -22,7 +22,7 @@ public void testToString() { public void testGetDriverClassPath() { assertEquals("org.mariadb.jdbc.Driver", DBMSType.MYSQL.getDriverClassPath()); assertEquals("oracle.jdbc.driver.OracleDriver", DBMSType.ORACLE.getDriverClassPath()); - assertEquals("org.postgresql.Drive", DBMSType.POSTGRESQL.getDriverClassPath()); + assertEquals("org.postgresql.Driver", DBMSType.POSTGRESQL.getDriverClassPath()); } @Test From a324878c8ca42096d59bd4ca1dd2993f157403cc Mon Sep 17 00:00:00 2001 From: Siedlerchr Date: Thu, 24 Oct 2019 16:17:00 +0200 Subject: [PATCH 10/23] fix unmodifable error --- src/main/java/org/jabref/model/entry/BibEntry.java | 2 +- src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/jabref/model/entry/BibEntry.java b/src/main/java/org/jabref/model/entry/BibEntry.java index de36489fc52..53b6db50870 100644 --- a/src/main/java/org/jabref/model/entry/BibEntry.java +++ b/src/main/java/org/jabref/model/entry/BibEntry.java @@ -357,7 +357,7 @@ public Optional setType(EntryType newType, EntryEventSource eventSo * @return a set of existing field names */ public Set getFields() { - return Collections.unmodifiableSet(fields.keySet()); + return fields.keySet(); } /** diff --git a/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java b/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java index 1061ac66a2a..defe2b40f5e 100644 --- a/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java +++ b/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java @@ -136,10 +136,11 @@ void testGetEntriesByIdList(DBMSType dbmsType, DBMSConnection dbmsConnection, DB List sharedEntriesByIdList = dbmsProcessor.getSharedEntries(Arrays.asList(1, 2)); + clear(dbmsConnection); + assertEquals(firstEntry.getId(), sharedEntriesByIdList.get(0).getId()); assertEquals(secondEntry.getId(), sharedEntriesByIdList.get(1).getId()); - clear(dbmsConnection); } @ParameterizedTest From 05398b0718318b6763e0c26c6b68080a0b408744 Mon Sep 17 00:00:00 2001 From: Siedlerchr Date: Thu, 24 Oct 2019 16:49:31 +0200 Subject: [PATCH 11/23] fix field map error --- .../logic/shared/DBMSProcessorTest.java | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java b/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java index defe2b40f5e..3b9bd19324d 100644 --- a/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java +++ b/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java @@ -9,13 +9,13 @@ import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.stream.Collectors; import java.util.stream.Stream; import org.jabref.logic.shared.exception.InvalidDBMSConnectionPropertiesException; import org.jabref.logic.shared.exception.OfflineLockException; import org.jabref.model.database.shared.DBMSType; import org.jabref.model.entry.BibEntry; -import org.jabref.model.entry.field.Field; import org.jabref.model.entry.field.StandardField; import org.jabref.model.entry.field.UnknownField; import org.jabref.model.entry.types.StandardEntryType; @@ -36,10 +36,10 @@ class DBMSProcessorTest { private static Stream getTestingDatabaseSystems() throws InvalidDBMSConnectionPropertiesException, SQLException { Collection result = new ArrayList<>(); for (DBMSType dbmsType : TestManager.getDBMSTypeTestParameter()) { - result.add(new Object[]{ - dbmsType, - TestConnector.getTestDBMSConnection(dbmsType), - DBMSProcessor.getProcessorInstance(TestConnector.getTestDBMSConnection(dbmsType))}); + result.add(new Object[] { + dbmsType, + TestConnector.getTestDBMSConnection(dbmsType), + DBMSProcessor.getProcessorInstance(TestConnector.getTestDBMSConnection(dbmsType))}); } return result.stream(); } @@ -94,7 +94,7 @@ void testInsertEntry(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProce } } - Map expectedFieldMap = expectedEntry.getFieldMap(); + Map expectedFieldMap = expectedEntry.getFieldMap().entrySet().stream().collect(Collectors.toMap((entry) -> entry.getKey().getName(), Map.Entry::getValue)); assertEquals(expectedFieldMap, actualFieldMap); clear(dbmsConnection); @@ -102,7 +102,7 @@ void testInsertEntry(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProce @ParameterizedTest @MethodSource("getTestingDatabaseSystems") - void testUpdateEntry(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws OfflineLockException, SQLException { + void testUpdateEntry(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { dbmsProcessor.setupSharedDatabase(); BibEntry expectedEntry = getBibEntryExample(); @@ -115,8 +115,7 @@ void testUpdateEntry(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProce dbmsProcessor.updateEntry(expectedEntry); - Optional actualEntryOptional = dbmsProcessor - .getSharedEntry(expectedEntry.getSharedBibEntryData().getSharedID()); + Optional actualEntryOptional = dbmsProcessor.getSharedEntry(expectedEntry.getSharedBibEntryData().getSharedID()); assertEquals(expectedEntry, actualEntryOptional.get()); clear(dbmsConnection); @@ -124,7 +123,7 @@ void testUpdateEntry(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProce @ParameterizedTest @MethodSource("getTestingDatabaseSystems") - void testGetEntriesByIdList(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws OfflineLockException, SQLException { + void testGetEntriesByIdList(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { dbmsProcessor.setupSharedDatabase(); BibEntry firstEntry = getBibEntryExample(); firstEntry.setId("1"); @@ -172,7 +171,7 @@ void testUpdateEqualEntry(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMS dbmsProcessor.updateEntry(expectedBibEntry); Optional actualBibEntryOptional = dbmsProcessor - .getSharedEntry(expectedBibEntry.getSharedBibEntryData().getSharedID()); + .getSharedEntry(expectedBibEntry.getSharedBibEntryData().getSharedID()); assertEquals(expectedBibEntry, actualBibEntryOptional.get()); @@ -216,8 +215,7 @@ void testGetSharedEntry(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSPr dbmsProcessor.insertEntry(expectedBibEntry); - Optional actualBibEntryOptional = dbmsProcessor - .getSharedEntry(expectedBibEntry.getSharedBibEntryData().getSharedID()); + Optional actualBibEntryOptional = dbmsProcessor.getSharedEntry(expectedBibEntry.getSharedBibEntryData().getSharedID()); assertEquals(expectedBibEntry, actualBibEntryOptional.get()); clear(dbmsConnection); @@ -328,8 +326,8 @@ private ResultSet selectFrom(String table, DBMSConnection dbmsConnection, DBMSPr private void insertMetaData(String key, String value, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) { try { dbmsConnection.getConnection().createStatement().executeUpdate("INSERT INTO " + escape("METADATA", dbmsProcessor) + "(" - + escape("KEY", dbmsProcessor) + ", " + escape("VALUE", dbmsProcessor) + ") VALUES(" - + escapeValue(key) + ", " + escapeValue(value) + ")"); + + escape("KEY", dbmsProcessor) + ", " + escape("VALUE", dbmsProcessor) + ") VALUES(" + + escapeValue(key) + ", " + escapeValue(value) + ")"); } catch (SQLException e) { fail(e.getMessage()); } From 98f0a7c395da7ce38745347dfac58c782e8fae63 Mon Sep 17 00:00:00 2001 From: Siedlerchr Date: Thu, 24 Oct 2019 17:02:04 +0200 Subject: [PATCH 12/23] fix id --- src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java b/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java index 3b9bd19324d..8e1e3a7d800 100644 --- a/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java +++ b/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java @@ -126,9 +126,9 @@ void testUpdateEntry(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProce void testGetEntriesByIdList(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { dbmsProcessor.setupSharedDatabase(); BibEntry firstEntry = getBibEntryExample(); - firstEntry.setId("1"); + firstEntry.setId("00000024"); BibEntry secondEntry = getBibEntryExample(); - secondEntry.setId("2"); + secondEntry.setId("00000028"); dbmsProcessor.insertEntry(firstEntry); dbmsProcessor.insertEntry(secondEntry); From 96d65e98b299ff9651a8067492d8e626a6f7bce7 Mon Sep 17 00:00:00 2001 From: Siedlerchr Date: Fri, 25 Oct 2019 17:41:48 +0200 Subject: [PATCH 13/23] SetID does not store value as internal id field --- .../java/org/jabref/logic/shared/DBMSProcessorTest.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java b/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java index 8e1e3a7d800..f509636c0c0 100644 --- a/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java +++ b/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java @@ -16,6 +16,7 @@ import org.jabref.logic.shared.exception.OfflineLockException; import org.jabref.model.database.shared.DBMSType; import org.jabref.model.entry.BibEntry; +import org.jabref.model.entry.field.InternalField; import org.jabref.model.entry.field.StandardField; import org.jabref.model.entry.field.UnknownField; import org.jabref.model.entry.types.StandardEntryType; @@ -126,9 +127,9 @@ void testUpdateEntry(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProce void testGetEntriesByIdList(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { dbmsProcessor.setupSharedDatabase(); BibEntry firstEntry = getBibEntryExample(); - firstEntry.setId("00000024"); + firstEntry.setField(InternalField.INTERNAL_ID_FIELD, "00001"); BibEntry secondEntry = getBibEntryExample(); - secondEntry.setId("00000028"); + firstEntry.setField(InternalField.INTERNAL_ID_FIELD, "00002"); dbmsProcessor.insertEntry(firstEntry); dbmsProcessor.insertEntry(secondEntry); @@ -137,8 +138,8 @@ void testGetEntriesByIdList(DBMSType dbmsType, DBMSConnection dbmsConnection, DB clear(dbmsConnection); - assertEquals(firstEntry.getId(), sharedEntriesByIdList.get(0).getId()); - assertEquals(secondEntry.getId(), sharedEntriesByIdList.get(1).getId()); + assertEquals(firstEntry, sharedEntriesByIdList.get(0)); + assertEquals(secondEntry, sharedEntriesByIdList.get(1)); } From b1ff6318e7bb9771f6b425647a021598920e78d2 Mon Sep 17 00:00:00 2001 From: Siedlerchr Date: Fri, 25 Oct 2019 18:23:53 +0200 Subject: [PATCH 14/23] add some comments for further debugging hints call clear in setup to ensure empty tables and no leftovers from failures --- .../logic/shared/DBMSSynchronizerTest.java | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/test/java/org/jabref/logic/shared/DBMSSynchronizerTest.java b/src/test/java/org/jabref/logic/shared/DBMSSynchronizerTest.java index 6ea9af3f426..712996481e9 100644 --- a/src/test/java/org/jabref/logic/shared/DBMSSynchronizerTest.java +++ b/src/test/java/org/jabref/logic/shared/DBMSSynchronizerTest.java @@ -53,7 +53,8 @@ private static Stream getTestingDatabaseSystems() throws InvalidDBMSCo } public void setUp(DBMSConnection dbmsConnection) throws Exception { - + clear(dbmsConnection); + bibDatabase = new BibDatabase(); BibDatabaseContext context = new BibDatabaseContext(bibDatabase); dbmsSynchronizer = new DBMSSynchronizer(context, ',', pattern, new DummyFileUpdateMonitor()); @@ -94,15 +95,17 @@ public void testFieldChangedEventListener(DBMSType dbmsType, DBMSConnection dbms BibEntry expectedEntry = getBibEntryExample(1); expectedEntry.registerListener(dbmsSynchronizer); - bibDatabase.insertEntry(expectedEntry); + bibDatabase.insertEntry(expectedEntry); expectedEntry.setField(StandardField.AUTHOR, "Brad L and Gilson"); + + //problem is that we somehow now have an empty entry with no fields maybe due to the all entries event? expectedEntry.setField(StandardField.TITLE, "The micro multiplexer", EntryEventSource.SHARED); List actualEntries = dbmsProcessor.getSharedEntries(); assertEquals(1, actualEntries.size()); assertEquals(expectedEntry.getField(StandardField.AUTHOR), actualEntries.get(0).getField(StandardField.AUTHOR)); assertEquals("The nano processor1", actualEntries.get(0).getField(StandardField.TITLE).get()); - + //somehow the field stable is not filled clear(dbmsConnection); } @@ -137,12 +140,8 @@ public void testEntryRemovedEventListener(DBMSType dbmsType, DBMSConnection dbms @ParameterizedTest @MethodSource("getTestingDatabaseSystems") public void testMetaDataChangedEventListener(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { - - bibDatabase = new BibDatabase(); - BibDatabaseContext context = new BibDatabaseContext(bibDatabase); - dbmsSynchronizer = new DBMSSynchronizer(context, ',', pattern, new DummyFileUpdateMonitor()); - dbmsSynchronizer.openSharedDatabase(dbmsConnection); - + + setUp(dbmsConnection); MetaData testMetaData = new MetaData(); testMetaData.registerListener(dbmsSynchronizer); dbmsSynchronizer.setMetaData(testMetaData); @@ -199,7 +198,6 @@ public void testSynchronizeLocalDatabaseWithEntryRemoval(DBMSType dbmsType, DBMS @ParameterizedTest @MethodSource("getTestingDatabaseSystems") public void testSynchronizeLocalDatabaseWithEntryUpdate(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { - setUp(dbmsConnection); BibEntry bibEntry = getBibEntryExample(1); From 0d380fdfc978191a008ceed523b9dda87c7187db Mon Sep 17 00:00:00 2001 From: Siedlerchr Date: Fri, 25 Oct 2019 18:36:32 +0200 Subject: [PATCH 15/23] fix copy paste error --- src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java b/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java index f509636c0c0..16a553f57a4 100644 --- a/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java +++ b/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java @@ -129,7 +129,7 @@ void testGetEntriesByIdList(DBMSType dbmsType, DBMSConnection dbmsConnection, DB BibEntry firstEntry = getBibEntryExample(); firstEntry.setField(InternalField.INTERNAL_ID_FIELD, "00001"); BibEntry secondEntry = getBibEntryExample(); - firstEntry.setField(InternalField.INTERNAL_ID_FIELD, "00002"); + secondEntry.setField(InternalField.INTERNAL_ID_FIELD, "00002"); dbmsProcessor.insertEntry(firstEntry); dbmsProcessor.insertEntry(secondEntry); From 06d9ec14f8cd0903777371d77e685916312a24f2 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Mon, 11 Nov 2019 21:53:03 +0100 Subject: [PATCH 16/23] Cleanup code --- build.gradle | 7 ++- .../jabref/logic/shared/DBMSConnection.java | 2 - .../java/org/jabref/model/entry/BibEntry.java | 2 +- .../logic/shared/DBMSProcessorTest.java | 47 ++++++----------- .../logic/shared/DBMSSynchronizerTest.java | 50 ++++++------------- .../shared/SynchronizationTestSimulator.java | 29 ++--------- .../jabref/logic/shared/TestConnector.java | 1 - .../org/jabref/logic/shared/TestManager.java | 13 +++++ 8 files changed, 55 insertions(+), 96 deletions(-) diff --git a/build.gradle b/build.gradle index a95aa88dec4..a24d30af3a0 100644 --- a/build.gradle +++ b/build.gradle @@ -440,7 +440,7 @@ localization.script = 'scripts/syncLang.py' // Test tasks test { useJUnitPlatform { - excludeTags 'DatabaseTest', 'FetcherTest', 'GUITest', 'org.jabref.testutils.category.FetcherTest', 'org.jabref.testutils.category.GUITest' + excludeTags 'DatabaseTest', 'FetcherTest', 'GUITest' } testLogging { @@ -454,7 +454,8 @@ task databaseTest(type: Test) { useJUnitPlatform { includeTags 'DatabaseTest' } - testLogging { + + testLogging { // set options for log level LIFECYCLE events = ["FAILED", "STANDARD_OUT", "STANDARD_ERROR"] exceptionFormat "full" @@ -465,6 +466,7 @@ task fetcherTest(type: Test) { useJUnitPlatform { includeTags 'FetcherTest' } + testLogging { // set options for log level LIFECYCLE events = ["FAILED", "STANDARD_OUT", "STANDARD_ERROR"] @@ -476,6 +478,7 @@ task guiTest(type: Test) { useJUnitPlatform { includeTags 'GUITest' } + testLogging { // set options for log level LIFECYCLE events = ["FAILED", "STANDARD_OUT", "STANDARD_ERROR"] diff --git a/src/main/java/org/jabref/logic/shared/DBMSConnection.java b/src/main/java/org/jabref/logic/shared/DBMSConnection.java index 9c2a3d09fdf..b137a5cd8b6 100644 --- a/src/main/java/org/jabref/logic/shared/DBMSConnection.java +++ b/src/main/java/org/jabref/logic/shared/DBMSConnection.java @@ -22,7 +22,6 @@ public class DBMSConnection implements DatabaseConnection { private final DBMSConnectionProperties properties; public DBMSConnection(DBMSConnectionProperties connectionProperties) throws SQLException, InvalidDBMSConnectionPropertiesException { - if (!connectionProperties.isValid()) { throw new InvalidDBMSConnectionPropertiesException(); } @@ -34,7 +33,6 @@ public DBMSConnection(DBMSConnectionProperties connectionProperties) throws SQLE // we use the side effect of getAvailableDBMSTypes() - it loads all available drivers DBMSConnection.getAvailableDBMSTypes(); this.connection = DriverManager.getConnection(connectionProperties.getUrl(), connectionProperties.asProperties()); - } catch (SQLException e) { // Some systems like PostgreSQL retrieves 0 to every exception. // Therefore a stable error determination is not possible. diff --git a/src/main/java/org/jabref/model/entry/BibEntry.java b/src/main/java/org/jabref/model/entry/BibEntry.java index 1a8d1556f8a..a9afe9ba0e8 100644 --- a/src/main/java/org/jabref/model/entry/BibEntry.java +++ b/src/main/java/org/jabref/model/entry/BibEntry.java @@ -372,7 +372,7 @@ public Optional setType(EntryType newType, EntriesEventSource event * @return a set of existing field names */ public Set getFields() { - return fields.keySet(); + return Collections.unmodifiableSet(fields.keySet()); } /** diff --git a/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java b/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java index 16a553f57a4..4a59dfea7cb 100644 --- a/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java +++ b/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java @@ -2,17 +2,13 @@ import java.sql.ResultSet; import java.sql.SQLException; -import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.jabref.logic.shared.exception.InvalidDBMSConnectionPropertiesException; import org.jabref.logic.shared.exception.OfflineLockException; import org.jabref.model.database.shared.DBMSType; import org.jabref.model.entry.BibEntry; @@ -34,19 +30,8 @@ @DatabaseTest class DBMSProcessorTest { - private static Stream getTestingDatabaseSystems() throws InvalidDBMSConnectionPropertiesException, SQLException { - Collection result = new ArrayList<>(); - for (DBMSType dbmsType : TestManager.getDBMSTypeTestParameter()) { - result.add(new Object[] { - dbmsType, - TestConnector.getTestDBMSConnection(dbmsType), - DBMSProcessor.getProcessorInstance(TestConnector.getTestDBMSConnection(dbmsType))}); - } - return result.stream(); - } - @ParameterizedTest - @MethodSource("getTestingDatabaseSystems") + @MethodSource("org.jabref.logic.shared.TestManager#getTestingDatabaseSystems") void testCheckBaseIntegrity(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws SQLException { dbmsProcessor.setupSharedDatabase(); assertTrue(dbmsProcessor.checkBaseIntegrity()); @@ -57,7 +42,7 @@ void testCheckBaseIntegrity(DBMSType dbmsType, DBMSConnection dbmsConnection, DB } @ParameterizedTest - @MethodSource("getTestingDatabaseSystems") + @MethodSource("org.jabref.logic.shared.TestManager#getTestingDatabaseSystems") void testSetUpSharedDatabase(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws SQLException { dbmsProcessor.setupSharedDatabase(); clear(dbmsConnection); @@ -68,7 +53,7 @@ void testSetUpSharedDatabase(DBMSType dbmsType, DBMSConnection dbmsConnection, D } @ParameterizedTest - @MethodSource("getTestingDatabaseSystems") + @MethodSource("org.jabref.logic.shared.TestManager#getTestingDatabaseSystems") void testInsertEntry(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws SQLException { dbmsProcessor.setupSharedDatabase(); BibEntry expectedEntry = getBibEntryExample(); @@ -102,28 +87,26 @@ void testInsertEntry(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProce } @ParameterizedTest - @MethodSource("getTestingDatabaseSystems") + @MethodSource("org.jabref.logic.shared.TestManager#getTestingDatabaseSystems") void testUpdateEntry(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { dbmsProcessor.setupSharedDatabase(); BibEntry expectedEntry = getBibEntryExample(); - dbmsProcessor.insertEntry(expectedEntry); expectedEntry.setType(StandardEntryType.Book); expectedEntry.setField(StandardField.AUTHOR, "Michael J and Hutchings"); expectedEntry.setField(new UnknownField("customField"), "custom value"); expectedEntry.clearField(StandardField.BOOKTITLE); - dbmsProcessor.updateEntry(expectedEntry); - Optional actualEntryOptional = dbmsProcessor.getSharedEntry(expectedEntry.getSharedBibEntryData().getSharedID()); + Optional actualEntry = dbmsProcessor.getSharedEntry(expectedEntry.getSharedBibEntryData().getSharedID()); + assertEquals(expectedEntry, actualEntry.get()); - assertEquals(expectedEntry, actualEntryOptional.get()); clear(dbmsConnection); } @ParameterizedTest - @MethodSource("getTestingDatabaseSystems") + @MethodSource("org.jabref.logic.shared.TestManager#getTestingDatabaseSystems") void testGetEntriesByIdList(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { dbmsProcessor.setupSharedDatabase(); BibEntry firstEntry = getBibEntryExample(); @@ -144,7 +127,7 @@ void testGetEntriesByIdList(DBMSType dbmsType, DBMSConnection dbmsConnection, DB } @ParameterizedTest - @MethodSource("getTestingDatabaseSystems") + @MethodSource("org.jabref.logic.shared.TestManager#getTestingDatabaseSystems") void testUpdateNewerEntry(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws OfflineLockException, SQLException { dbmsProcessor.setupSharedDatabase(); BibEntry bibEntry = getBibEntryExample(); @@ -161,7 +144,7 @@ void testUpdateNewerEntry(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMS } @ParameterizedTest - @MethodSource("getTestingDatabaseSystems") + @MethodSource("org.jabref.logic.shared.TestManager#getTestingDatabaseSystems") void testUpdateEqualEntry(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws OfflineLockException, SQLException { dbmsProcessor.setupSharedDatabase(); BibEntry expectedBibEntry = getBibEntryExample(); @@ -180,7 +163,7 @@ void testUpdateEqualEntry(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMS } @ParameterizedTest - @MethodSource("getTestingDatabaseSystems") + @MethodSource("org.jabref.logic.shared.TestManager#getTestingDatabaseSystems") void testRemoveEntry(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws SQLException { dbmsProcessor.setupSharedDatabase(); BibEntry bibEntry = getBibEntryExample(); @@ -194,7 +177,7 @@ void testRemoveEntry(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProce } @ParameterizedTest - @MethodSource("getTestingDatabaseSystems") + @MethodSource("org.jabref.logic.shared.TestManager#getTestingDatabaseSystems") void testGetSharedEntries(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws SQLException { dbmsProcessor.setupSharedDatabase(); BibEntry bibEntry = getBibEntryExampleWithEmptyFields(); @@ -209,7 +192,7 @@ void testGetSharedEntries(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMS } @ParameterizedTest - @MethodSource("getTestingDatabaseSystems") + @MethodSource("org.jabref.logic.shared.TestManager#getTestingDatabaseSystems") void testGetSharedEntry(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws SQLException { dbmsProcessor.setupSharedDatabase(); BibEntry expectedBibEntry = getBibEntryExampleWithEmptyFields(); @@ -223,7 +206,7 @@ void testGetSharedEntry(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSPr } @ParameterizedTest - @MethodSource("getTestingDatabaseSystems") + @MethodSource("org.jabref.logic.shared.TestManager#getTestingDatabaseSystems") void testGetNotExistingSharedEntry(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws SQLException { dbmsProcessor.setupSharedDatabase(); Optional actualBibEntryOptional = dbmsProcessor.getSharedEntry(1); @@ -233,7 +216,7 @@ void testGetNotExistingSharedEntry(DBMSType dbmsType, DBMSConnection dbmsConnect } @ParameterizedTest - @MethodSource("getTestingDatabaseSystems") + @MethodSource("org.jabref.logic.shared.TestManager#getTestingDatabaseSystems") void testGetSharedIDVersionMapping(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws OfflineLockException, SQLException { dbmsProcessor.setupSharedDatabase(); BibEntry firstEntry = getBibEntryExample(); @@ -255,7 +238,7 @@ void testGetSharedIDVersionMapping(DBMSType dbmsType, DBMSConnection dbmsConnect } @ParameterizedTest - @MethodSource("getTestingDatabaseSystems") + @MethodSource("org.jabref.logic.shared.TestManager#getTestingDatabaseSystems") void testGetSharedMetaData(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws SQLException { dbmsProcessor.setupSharedDatabase(); insertMetaData("databaseType", "bibtex;", dbmsConnection, dbmsProcessor); diff --git a/src/test/java/org/jabref/logic/shared/DBMSSynchronizerTest.java b/src/test/java/org/jabref/logic/shared/DBMSSynchronizerTest.java index e8104331ea9..1f958db27b0 100644 --- a/src/test/java/org/jabref/logic/shared/DBMSSynchronizerTest.java +++ b/src/test/java/org/jabref/logic/shared/DBMSSynchronizerTest.java @@ -3,15 +3,12 @@ import java.sql.SQLException; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; -import java.util.stream.Stream; import org.jabref.logic.exporter.MetaDataSerializer; import org.jabref.logic.formatter.casechanger.LowerCaseFormatter; -import org.jabref.logic.shared.exception.InvalidDBMSConnectionPropertiesException; import org.jabref.model.bibtexkeypattern.GlobalBibtexKeyPattern; import org.jabref.model.cleanup.FieldFormatterCleanup; import org.jabref.model.cleanup.FieldFormatterCleanups; @@ -41,20 +38,9 @@ public class DBMSSynchronizerTest { private BibDatabase bibDatabase; private final GlobalBibtexKeyPattern pattern = GlobalBibtexKeyPattern.fromPattern("[auth][year]"); - private static Stream getTestingDatabaseSystems() throws InvalidDBMSConnectionPropertiesException, SQLException { - Collection result = new ArrayList<>(); - for (DBMSType dbmsType : TestManager.getDBMSTypeTestParameter()) { - result.add(new Object[] { - dbmsType, - TestConnector.getTestDBMSConnection(dbmsType), - DBMSProcessor.getProcessorInstance(TestConnector.getTestDBMSConnection(dbmsType))}); - } - return result.stream(); - } - public void setUp(DBMSConnection dbmsConnection) throws Exception { clear(dbmsConnection); - + bibDatabase = new BibDatabase(); BibDatabaseContext context = new BibDatabaseContext(bibDatabase); dbmsSynchronizer = new DBMSSynchronizer(context, ',', pattern, new DummyFileUpdateMonitor()); @@ -65,12 +51,10 @@ public void setUp(DBMSConnection dbmsConnection) throws Exception { } @ParameterizedTest - @MethodSource("getTestingDatabaseSystems") + @MethodSource("org.jabref.logic.shared.TestManager#getTestingDatabaseSystems") public void testEntryAddedEventListener(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { - - System.out.println("dbmstype" + dbmsType); - setUp(dbmsConnection); + BibEntry expectedEntry = getBibEntryExample(1); BibEntry furtherEntry = getBibEntryExample(1); @@ -87,31 +71,28 @@ public void testEntryAddedEventListener(DBMSType dbmsType, DBMSConnection dbmsCo } @ParameterizedTest - @MethodSource("getTestingDatabaseSystems") + @MethodSource("org.jabref.logic.shared.TestManager#getTestingDatabaseSystems") public void testFieldChangedEventListener(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { - setUp(dbmsConnection); BibEntry expectedEntry = getBibEntryExample(1); expectedEntry.registerListener(dbmsSynchronizer); - bibDatabase.insertEntry(expectedEntry); + bibDatabase.insertEntry(expectedEntry); expectedEntry.setField(StandardField.AUTHOR, "Brad L and Gilson"); expectedEntry.setField(StandardField.TITLE, "The micro multiplexer", EntriesEventSource.SHARED); List actualEntries = dbmsProcessor.getSharedEntries(); - assertEquals(1, actualEntries.size()); - assertEquals(expectedEntry.getField(StandardField.AUTHOR), actualEntries.get(0).getField(StandardField.AUTHOR)); - assertEquals("The nano processor1", actualEntries.get(0).getField(StandardField.TITLE).get()); - //somehow the field stable is not filled + assertEquals(Collections.singletonList(expectedEntry), actualEntries); + clear(dbmsConnection); } @ParameterizedTest - @MethodSource("getTestingDatabaseSystems") + @MethodSource("org.jabref.logic.shared.TestManager#getTestingDatabaseSystems") public void testEntryRemovedEventListener(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { setUp(dbmsConnection); - + BibEntry bibEntry = getBibEntryExample(1); bibDatabase.insertEntry(bibEntry); @@ -135,10 +116,10 @@ public void testEntryRemovedEventListener(DBMSType dbmsType, DBMSConnection dbms } @ParameterizedTest - @MethodSource("getTestingDatabaseSystems") + @MethodSource("org.jabref.logic.shared.TestManager#getTestingDatabaseSystems") public void testMetaDataChangedEventListener(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { - setUp(dbmsConnection); + MetaData testMetaData = new MetaData(); testMetaData.registerListener(dbmsSynchronizer); dbmsSynchronizer.setMetaData(testMetaData); @@ -148,11 +129,12 @@ public void testMetaDataChangedEventListener(DBMSType dbmsType, DBMSConnection d Map actualMap = dbmsProcessor.getSharedMetaData(); assertEquals(expectedMap, actualMap); + clear(dbmsConnection); } @ParameterizedTest - @MethodSource("getTestingDatabaseSystems") + @MethodSource("org.jabref.logic.shared.TestManager#getTestingDatabaseSystems") public void testInitializeDatabases(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { setUp(dbmsConnection); @@ -165,7 +147,7 @@ public void testInitializeDatabases(DBMSType dbmsType, DBMSConnection dbmsConnec } @ParameterizedTest - @MethodSource("getTestingDatabaseSystems") + @MethodSource("org.jabref.logic.shared.TestManager#getTestingDatabaseSystems") public void testSynchronizeLocalDatabaseWithEntryRemoval(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { setUp(dbmsConnection); @@ -193,7 +175,7 @@ public void testSynchronizeLocalDatabaseWithEntryRemoval(DBMSType dbmsType, DBMS } @ParameterizedTest - @MethodSource("getTestingDatabaseSystems") + @MethodSource("org.jabref.logic.shared.TestManager#getTestingDatabaseSystems") public void testSynchronizeLocalDatabaseWithEntryUpdate(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { setUp(dbmsConnection); @@ -215,7 +197,7 @@ public void testSynchronizeLocalDatabaseWithEntryUpdate(DBMSType dbmsType, DBMSC } @ParameterizedTest - @MethodSource("getTestingDatabaseSystems") + @MethodSource("org.jabref.logic.shared.TestManager#getTestingDatabaseSystems") public void testApplyMetaData(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { setUp(dbmsConnection); diff --git a/src/test/java/org/jabref/logic/shared/SynchronizationTestSimulator.java b/src/test/java/org/jabref/logic/shared/SynchronizationTestSimulator.java index 98d7d7fbdc3..fb8bf59b0d5 100644 --- a/src/test/java/org/jabref/logic/shared/SynchronizationTestSimulator.java +++ b/src/test/java/org/jabref/logic/shared/SynchronizationTestSimulator.java @@ -1,11 +1,7 @@ package org.jabref.logic.shared; import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.stream.Stream; -import org.jabref.logic.shared.exception.InvalidDBMSConnectionPropertiesException; import org.jabref.model.Defaults; import org.jabref.model.bibtexkeypattern.GlobalBibtexKeyPattern; import org.jabref.model.database.BibDatabaseContext; @@ -35,21 +31,7 @@ public class SynchronizationTestSimulator { private SynchronizationTestEventListener eventListenerB; // used to monitor occurring events private final GlobalBibtexKeyPattern pattern = GlobalBibtexKeyPattern.fromPattern("[auth][year]"); - private static Stream getTestingDatabaseSystems() throws InvalidDBMSConnectionPropertiesException, SQLException { - Collection result = new ArrayList<>(); - for (DBMSType dbmsType : TestManager.getDBMSTypeTestParameter()) { - result.add(new Object[] { - dbmsType, - TestConnector.getTestDBMSConnection(dbmsType), - DBMSProcessor.getProcessorInstance(TestConnector.getTestDBMSConnection(dbmsType))}); - } - return result.stream(); - } - public void setUp(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { - - System.out.println("dbmstype before each" + dbmsType); - clientContextA = new BibDatabaseContext(new Defaults(BibDatabaseMode.BIBTEX)); DBMSSynchronizer synchronizerA = new DBMSSynchronizer(clientContextA, ',', pattern, new DummyFileUpdateMonitor()); clientContextA.convertToSharedDatabase(synchronizerA); @@ -64,7 +46,7 @@ public void setUp(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcesso } @ParameterizedTest - @MethodSource("getTestingDatabaseSystems") + @MethodSource("org.jabref.logic.shared.TestManager#getTestingDatabaseSystems") public void simulateEntryInsertionAndManualPull(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { setUp(dbmsType, dbmsConnection, dbmsProcessor); //client A inserts an entry @@ -80,7 +62,7 @@ public void simulateEntryInsertionAndManualPull(DBMSType dbmsType, DBMSConnectio } @ParameterizedTest - @MethodSource("getTestingDatabaseSystems") + @MethodSource("org.jabref.logic.shared.TestManager#getTestingDatabaseSystems") public void simulateEntryUpdateAndManualPull(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { setUp(dbmsType, dbmsConnection, dbmsProcessor); @@ -100,7 +82,7 @@ public void simulateEntryUpdateAndManualPull(DBMSType dbmsType, DBMSConnection d } @ParameterizedTest - @MethodSource("getTestingDatabaseSystems") + @MethodSource("org.jabref.logic.shared.TestManager#getTestingDatabaseSystems") public void simulateEntryDelitionAndManualPull(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { setUp(dbmsType, dbmsConnection, dbmsProcessor); @@ -126,7 +108,7 @@ public void simulateEntryDelitionAndManualPull(DBMSType dbmsType, DBMSConnection } @ParameterizedTest - @MethodSource("getTestingDatabaseSystems") + @MethodSource("org.jabref.logic.shared.TestManager#getTestingDatabaseSystems") public void simulateUpdateOnNoLongerExistingEntry(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { setUp(dbmsType, dbmsConnection, dbmsProcessor); @@ -157,7 +139,7 @@ public void simulateUpdateOnNoLongerExistingEntry(DBMSType dbmsType, DBMSConnect } @ParameterizedTest - @MethodSource("getTestingDatabaseSystems") + @MethodSource("org.jabref.logic.shared.TestManager#getTestingDatabaseSystems") public void simulateEntryChangeConflicts(DBMSType dbmsType, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) throws Exception { setUp(dbmsType, dbmsConnection, dbmsProcessor); @@ -200,5 +182,4 @@ private BibEntry getBibEntryExample(int index) { public void clear(DBMSConnection dbmsConnection) throws SQLException { TestManager.clearTables(dbmsConnection); } - } diff --git a/src/test/java/org/jabref/logic/shared/TestConnector.java b/src/test/java/org/jabref/logic/shared/TestConnector.java index 9949b83e649..78f078ce2f9 100644 --- a/src/test/java/org/jabref/logic/shared/TestConnector.java +++ b/src/test/java/org/jabref/logic/shared/TestConnector.java @@ -15,7 +15,6 @@ public static DBMSConnection getTestDBMSConnection(DBMSType dbmsType) throws SQL } public static DBMSConnectionProperties getTestConnectionProperties(DBMSType dbmsType) { - if (dbmsType == DBMSType.MYSQL) { return new DBMSConnectionProperties(dbmsType, "localhost", dbmsType.getDefaultPort(), "jabref", "root", "", false, ""); } diff --git a/src/test/java/org/jabref/logic/shared/TestManager.java b/src/test/java/org/jabref/logic/shared/TestManager.java index 6c9ec6fd5b6..2b8f1f4d2f5 100644 --- a/src/test/java/org/jabref/logic/shared/TestManager.java +++ b/src/test/java/org/jabref/logic/shared/TestManager.java @@ -1,9 +1,11 @@ package org.jabref.logic.shared; import java.sql.SQLException; +import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.Set; +import java.util.stream.Stream; import org.jabref.logic.shared.exception.InvalidDBMSConnectionPropertiesException; import org.jabref.model.database.shared.DBMSType; @@ -48,4 +50,15 @@ public static void clearTables(DBMSConnection dbmsConnection) throws SQLExceptio + "IF SQLCODE != -942 THEN\n" + "RAISE;\n" + "END IF;\n" + "END;"); } } + + static Stream getTestingDatabaseSystems() throws InvalidDBMSConnectionPropertiesException, SQLException { + Collection result = new ArrayList<>(); + for (DBMSType dbmsType : getDBMSTypeTestParameter()) { + result.add(new Object[]{ + dbmsType, + TestConnector.getTestDBMSConnection(dbmsType), + DBMSProcessor.getProcessorInstance(TestConnector.getTestDBMSConnection(dbmsType))}); + } + return result.stream(); + } } From ae963271523ec4b65b2eb69ac38240d2b047c24f Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Mon, 11 Nov 2019 21:56:49 +0100 Subject: [PATCH 17/23] Don't allow codecov to fail --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 8ff6ee18b57..bf26018da55 100644 --- a/.travis.yml +++ b/.travis.yml @@ -32,7 +32,6 @@ matrix: allow_failures: - env: TEST_SUITE=fetcherTest - env: TEST_SUITE=guiTest - - env: TEST_SUITE=codecov - env: DEPENDENCY_UPDATES=check # JavaFX localization tests need a running X environment From dfb7a18180be8538e4bfcced3b70efb442f0ab99 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Mon, 11 Nov 2019 21:57:45 +0100 Subject: [PATCH 18/23] Temporarily allow failure of database tests --- .travis.yml | 1 + build.gradle | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index bf26018da55..22c531f9877 100644 --- a/.travis.yml +++ b/.travis.yml @@ -31,6 +31,7 @@ matrix: fast_finish: true allow_failures: - env: TEST_SUITE=fetcherTest + - env: TEST_SUITE=databaseTest - env: TEST_SUITE=guiTest - env: DEPENDENCY_UPDATES=check diff --git a/build.gradle b/build.gradle index a24d30af3a0..4b892e3f1af 100644 --- a/build.gradle +++ b/build.gradle @@ -498,8 +498,8 @@ tasks.withType(Test) { } task jacocoMerge(type: JacocoMerge) { - executionData file("$buildDir/jacoco/test.exec"), file("$buildDir/jacoco/databaseTest.exec"), file("$buildDir/jacoco/fetcherTest.exec") - dependsOn test, databaseTest, fetcherTest + executionData file("$buildDir/jacoco/test.exec"), file("$buildDir/jacoco/fetcherTest.exec") + dependsOn test, fetcherTest } jacocoTestReport { From 7152a3b7a5512db98d2c101d07f0257bb29da8d8 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Mon, 11 Nov 2019 22:22:26 +0100 Subject: [PATCH 19/23] Readd database test to codecov --- build.gradle | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 4b892e3f1af..19869ecd6e9 100644 --- a/build.gradle +++ b/build.gradle @@ -498,8 +498,12 @@ tasks.withType(Test) { } task jacocoMerge(type: JacocoMerge) { - executionData file("$buildDir/jacoco/test.exec"), file("$buildDir/jacoco/fetcherTest.exec") - dependsOn test, fetcherTest + ignoreFailures = true + executionData files( + "$buildDir/jacoco/test.exec", + "$buildDir/jacoco/databaseTest.exec", + "$buildDir/jacoco/fetcherTest.exec").filter { it.exists() } + dependsOn test, databaseTest, fetcherTest } jacocoTestReport { From 7bbd56465f00cff508016fa41e167264395e6ebf Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Mon, 11 Nov 2019 22:31:35 +0100 Subject: [PATCH 20/23] Try to ignore failures the other way --- .travis.yml | 2 +- build.gradle | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 22c531f9877..03133e9cd24 100644 --- a/.travis.yml +++ b/.travis.yml @@ -51,7 +51,7 @@ script: - if [ "$TEST_SUITE" != "guiTest" ] && [ "$TEST_SUITE" != "checkstyle" ] && [ "$TEST_SUITE" != "codecov" ]; then ./gradlew $TEST_SUITE $OPTIONS -x checkstyleJmh -x checkstyleMain -x checkstyleTest; fi - if [ "$TEST_SUITE" == "checkstyle" ]; then ./gradlew checkstyleMain checkstyleTest checkstyleJmh; fi - if [ "$TEST_SUITE" == "guiTest" ]; then ./buildres/gui-tests.sh; fi - - if [ "$TEST_SUITE" == "codecov" ]; then ./gradlew jacocoTestReport && bash <(curl -s https://codecov.io/bash); fi + - if [ "$TEST_SUITE" == "codecov" ]; then ./gradlew jacocoTestReport --continue && bash <(curl -s https://codecov.io/bash); fi - if [ "$DEPENDENCY_UPDATES" == "check" ]; then ./gradlew -q checkOutdatedDependencies; fi after_failure: diff --git a/build.gradle b/build.gradle index 19869ecd6e9..ba7b4b8a826 100644 --- a/build.gradle +++ b/build.gradle @@ -498,7 +498,6 @@ tasks.withType(Test) { } task jacocoMerge(type: JacocoMerge) { - ignoreFailures = true executionData files( "$buildDir/jacoco/test.exec", "$buildDir/jacoco/databaseTest.exec", From b62736555a6cf002d371a24d4eeaffdc9bbe8162 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Mon, 11 Nov 2019 22:38:44 +0100 Subject: [PATCH 21/23] Or maybe this way? --- .travis.yml | 2 +- build.gradle | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 03133e9cd24..22c531f9877 100644 --- a/.travis.yml +++ b/.travis.yml @@ -51,7 +51,7 @@ script: - if [ "$TEST_SUITE" != "guiTest" ] && [ "$TEST_SUITE" != "checkstyle" ] && [ "$TEST_SUITE" != "codecov" ]; then ./gradlew $TEST_SUITE $OPTIONS -x checkstyleJmh -x checkstyleMain -x checkstyleTest; fi - if [ "$TEST_SUITE" == "checkstyle" ]; then ./gradlew checkstyleMain checkstyleTest checkstyleJmh; fi - if [ "$TEST_SUITE" == "guiTest" ]; then ./buildres/gui-tests.sh; fi - - if [ "$TEST_SUITE" == "codecov" ]; then ./gradlew jacocoTestReport --continue && bash <(curl -s https://codecov.io/bash); fi + - if [ "$TEST_SUITE" == "codecov" ]; then ./gradlew jacocoTestReport && bash <(curl -s https://codecov.io/bash); fi - if [ "$DEPENDENCY_UPDATES" == "check" ]; then ./gradlew -q checkOutdatedDependencies; fi after_failure: diff --git a/build.gradle b/build.gradle index ba7b4b8a826..ca073895e7c 100644 --- a/build.gradle +++ b/build.gradle @@ -498,6 +498,7 @@ tasks.withType(Test) { } task jacocoMerge(type: JacocoMerge) { + tasks.test.ignoreFailures true executionData files( "$buildDir/jacoco/test.exec", "$buildDir/jacoco/databaseTest.exec", From 8a82ef9ce2ad0e0cb3df611854c354b0dbd882bc Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Mon, 11 Nov 2019 23:12:59 +0100 Subject: [PATCH 22/23] Yet another try --- build.gradle | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index ca073895e7c..6c1b5dc5ac2 100644 --- a/build.gradle +++ b/build.gradle @@ -498,7 +498,12 @@ tasks.withType(Test) { } task jacocoMerge(type: JacocoMerge) { - tasks.test.ignoreFailures true + doFirst { + // Ignore failures of tests + tasks.withType(Test) { + ignoreFailures = true + } + } executionData files( "$buildDir/jacoco/test.exec", "$buildDir/jacoco/databaseTest.exec", From 68e51e1d49c4c05a232ebbca34ee9a347d5dc24f Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Mon, 11 Nov 2019 23:25:35 +0100 Subject: [PATCH 23/23] Well...maybe now --- build.gradle | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 6c1b5dc5ac2..69e80a08027 100644 --- a/build.gradle +++ b/build.gradle @@ -497,18 +497,24 @@ tasks.withType(Test) { reports.html.destination = file("${reporting.baseDir}/${name}") } -task jacocoMerge(type: JacocoMerge) { +task jacocoMergePrep() { doFirst { // Ignore failures of tests tasks.withType(Test) { ignoreFailures = true } } +} +test.mustRunAfter jacocoMergePrep +databaseTest.mustRunAfter jacocoMergePrep +fetcherTest.mustRunAfter jacocoMergePrep + +task jacocoMerge(type: JacocoMerge) { executionData files( "$buildDir/jacoco/test.exec", "$buildDir/jacoco/databaseTest.exec", "$buildDir/jacoco/fetcherTest.exec").filter { it.exists() } - dependsOn test, databaseTest, fetcherTest + dependsOn jacocoMergePrep, test, databaseTest, fetcherTest } jacocoTestReport {