From 30892d24267d4212e4b7cd244f33c9ecfb7bfe7f Mon Sep 17 00:00:00 2001 From: Joel Weiser Date: Tue, 29 Oct 2019 18:08:07 -0400 Subject: [PATCH 1/9] adds target and IntelliJ files to .gitignore --- .gitignore | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.gitignore b/.gitignore index add6044..c1bfe9d 100644 --- a/.gitignore +++ b/.gitignore @@ -32,6 +32,11 @@ ContributorsCheck/contributors-check/src/main/resources/auth.properties .project .settings */target/* +target/ .recommenders NullCheck/src/main/resources/auth.properties auth.properties + +# ItelliJ Files +.idea/ +release-qa.iml From 0bed5bfa621c943227044ec595c63c286d2c1b48 Mon Sep 17 00:00:00 2001 From: Joel Weiser Date: Tue, 29 Oct 2019 18:09:32 -0400 Subject: [PATCH 2/9] changes whitespace for existing methods --- .../release/qa/check/EHLDSubpathwayChangeCheck.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheck.java b/src/main/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheck.java index 9f5e732..1d43c62 100644 --- a/src/main/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheck.java +++ b/src/main/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheck.java @@ -73,9 +73,13 @@ public QAReport executeQACheck() throws Exception } @Override - public void setOtherDBAdaptor(MySQLAdaptor olderDatabase) { this.olderDatabase = olderDatabase; } + public void setOtherDBAdaptor(MySQLAdaptor olderDatabase) { + this.olderDatabase = olderDatabase; + } - public MySQLAdaptor getOtherDBAdaptor() { return this.olderDatabase; }; + public MySQLAdaptor getOtherDBAdaptor() { + return this.olderDatabase; + } private List getPathwayIDsWithEHLD() throws EHLDPathwayIDRetrievalException { final String reactomeEHLDURL = "https://reactome.org/download/current/ehld/"; From 8682d724739ca93d9dd790da18c85f8302b516db Mon Sep 17 00:00:00 2001 From: Joel Weiser Date: Tue, 29 Oct 2019 18:14:05 -0400 Subject: [PATCH 3/9] updates getPathwayIDsWithEHLD to use 'hasEHLD' pathway attribute --- .../qa/check/EHLDSubpathwayChangeCheck.java | 67 ++++++------------- 1 file changed, 21 insertions(+), 46 deletions(-) diff --git a/src/main/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheck.java b/src/main/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheck.java index 1d43c62..36ccfe5 100644 --- a/src/main/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheck.java +++ b/src/main/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheck.java @@ -5,17 +5,10 @@ import org.gk.persistence.MySQLAdaptor; import org.reactome.release.qa.annotations.ReleaseQACheck; import org.reactome.release.qa.common.AbstractQACheck; -import org.reactome.release.qa.common.QACheckerHelper; import org.reactome.release.qa.common.QAReport; -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.net.URL; import java.util.*; import java.util.function.Function; -import java.util.regex.Matcher; -import java.util.regex.Pattern; import java.util.stream.Collectors; /** @@ -42,7 +35,7 @@ public QAReport executeQACheck() throws Exception "Subpathway Names removed in " + this.dba.getDBName() ); - List pathwayIds = new ArrayList<>(getPathwayIDsWithEHLD()); + List pathwayIds = new ArrayList<>(getPathwayIDsWithEHLD(this.dba)); List oldPathways = getEHLDPathways(pathwayIds, getOtherDBAdaptor()); List newPathways = getEHLDPathways(pathwayIds, this.dba); @@ -81,47 +74,29 @@ public MySQLAdaptor getOtherDBAdaptor() { return this.olderDatabase; } - private List getPathwayIDsWithEHLD() throws EHLDPathwayIDRetrievalException { - final String reactomeEHLDURL = "https://reactome.org/download/current/ehld/"; - List pathwayIds = new ArrayList<>(); + List getPathwayIDsWithEHLD(MySQLAdaptor newerDatabase) throws EHLDPathwayIDRetrievalException { try { - BufferedReader ehldWebSource = new BufferedReader( - new InputStreamReader(new URL(reactomeEHLDURL).openStream()) - ); - - pathwayIds.addAll(parsePathwayIds(ehldWebSource)); - pathwayIds.sort(Comparator.comparing(Long::longValue)); - - ehldWebSource.close(); - } catch (IOException e) { - e.printStackTrace(); - } - - if (pathwayIds.isEmpty()) { - throw new EHLDPathwayIDRetrievalException("Unable to retrieve pathway ids from " + reactomeEHLDURL); + return asGKInstanceCollection(newerDatabase.fetchInstancesByClass(ReactomeJavaConstants.Pathway)) + .stream() + .filter(this::hasEHLD) + .map(GKInstance::getDBID) + .collect(Collectors.toList()); + } catch (Exception e) { + throw new EHLDPathwayIDRetrievalException("Unable to retrieve pathway ids from " + newerDatabase, e); } - - return pathwayIds; } - private List parsePathwayIds(BufferedReader ehldWebSource) throws IOException { - List pathwayIds = new ArrayList<>(); + private boolean hasEHLD(GKInstance pathway) { + // Need to create this value in org/gk/model/ReactomeJavaConstants.java in the Curator Tool project source code + final String hasEHLDAttribute = "hasEHLD"; - Pattern svgFileName = getSVGFileNamePattern(); - String sourceLine; - while ((sourceLine = ehldWebSource.readLine()) != null) { - Matcher svgMatcher = svgFileName.matcher(sourceLine); - if (svgMatcher.find()) { - Long pathwayId = Long.parseLong(svgMatcher.group(1)); - pathwayIds.add(pathwayId); - } + try { + String hasEHLDAttributeValue = (String) pathway.getAttributeValue(hasEHLDAttribute); + return hasEHLDAttributeValue != null && hasEHLDAttributeValue.equalsIgnoreCase("true"); + } catch (Exception e) { + e.printStackTrace(); + return false; } - - return pathwayIds; - } - - private Pattern getSVGFileNamePattern() { - return Pattern.compile("\"(\\d+)\\.svg\""); } private List getEHLDPathways(Collection dbIds, MySQLAdaptor database) { @@ -182,9 +157,9 @@ private boolean isPathway(GKInstance instance) { return instance.getSchemClass().isa(ReactomeJavaConstants.Pathway); } - private class EHLDPathwayIDRetrievalException extends Exception { - public EHLDPathwayIDRetrievalException(String retrievalError) { - super(retrievalError); + private static class EHLDPathwayIDRetrievalException extends Exception { + public EHLDPathwayIDRetrievalException(String retrievalError, Throwable cause) { + super(retrievalError, cause); } } From 6d7772049d5fcba4bd5528850ec2060cac174b7f Mon Sep 17 00:00:00 2001 From: Joel Weiser Date: Tue, 29 Oct 2019 18:14:44 -0400 Subject: [PATCH 4/9] adds mockito and hamcrest maven dependencies for testing --- pom.xml | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index b26a597..98956db 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ reactome-release-qa org.reactome - UTF-8 4.2 @@ -159,6 +159,19 @@ 4.12 test + + org.hamcrest + hamcrest + 2.2 + test + + + org.mockito + mockito-core + 2.18.3 + test + + com.opencsv @@ -182,7 +195,7 @@ log4j-core ${log4j2.version} - org.apache.logging.log4j @@ -200,8 +213,8 @@ org.reactome.base reactome-base ${reactome.base.version} - From f343dd3b5243c7296bc79f0924a9d0ce25429910 Mon Sep 17 00:00:00 2001 From: Joel Weiser Date: Tue, 29 Oct 2019 18:15:22 -0400 Subject: [PATCH 5/9] adds test class for EHLDSubpathwayChangeCheck class --- .../check/EHLDSubpathwayChangeCheckTest.java | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/test/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheckTest.java diff --git a/src/test/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheckTest.java b/src/test/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheckTest.java new file mode 100644 index 0000000..788530a --- /dev/null +++ b/src/test/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheckTest.java @@ -0,0 +1,51 @@ +package org.reactome.release.qa.check; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.contains; + +import java.util.Arrays; +import java.util.List; +import org.gk.model.GKInstance; +import org.gk.model.ReactomeJavaConstants; +import org.gk.persistence.MySQLAdaptor; +import org.gk.schema.InvalidAttributeException; +import org.gk.schema.InvalidAttributeValueException; +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; + +public class EHLDSubpathwayChangeCheckTest { + @Mock + MySQLAdaptor adaptor; + + @Mock + GKInstance firstPathway; + + @Mock + GKInstance secondPathway; + + @Before + public void setUp() { + MockitoAnnotations.initMocks(this); + } + + @Test + public void testGetEHLDPathwayIDs() throws Exception { + setUpMockPathway(firstPathway, 1, "true"); + setUpMockPathway(secondPathway, 2, "false"); + Mockito.when(adaptor.fetchInstancesByClass(ReactomeJavaConstants.Pathway)) + .thenReturn(Arrays.asList(firstPathway, secondPathway)); + + EHLDSubpathwayChangeCheck ehldSubpathwayChangeCheck = new EHLDSubpathwayChangeCheck(); + List pathwayIDs = ehldSubpathwayChangeCheck.getPathwayIDsWithEHLD(adaptor); + + assertThat(pathwayIDs, contains(firstPathway.getDBID())); // Contains firstPathway id only + } + + private void setUpMockPathway(GKInstance pathway, long dbId, String hasEHLD) throws Exception { + Mockito.when(pathway.getAttributeValue("hasEHLD")).thenReturn(hasEHLD); + Mockito.when(pathway.getDBID()).thenReturn(dbId); + } +} From b546f8dbe009c955969db23b7efd193241d6abfa Mon Sep 17 00:00:00 2001 From: Joel Weiser Date: Wed, 30 Oct 2019 13:17:22 -0400 Subject: [PATCH 6/9] includes new test for retrieving EHLD subpathways and refactors --- .../qa/check/EHLDSubpathwayChangeCheck.java | 4 +- .../check/EHLDSubpathwayChangeCheckTest.java | 45 ++++++++++++++++--- 2 files changed, 41 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheck.java b/src/main/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheck.java index 36ccfe5..385326a 100644 --- a/src/main/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheck.java +++ b/src/main/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheck.java @@ -99,7 +99,7 @@ private boolean hasEHLD(GKInstance pathway) { } } - private List getEHLDPathways(Collection dbIds, MySQLAdaptor database) { + List getEHLDPathways(Collection dbIds, MySQLAdaptor database) { List ehldPathways = new ArrayList<>(); try { ehldPathways.addAll( @@ -163,7 +163,7 @@ public EHLDPathwayIDRetrievalException(String retrievalError, Throwable cause) { } } - private class EHLDPathway { + class EHLDPathway { final private GKInstance pathway; final private List subPathways; final private Integer reactomeVersion; diff --git a/src/test/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheckTest.java b/src/test/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheckTest.java index 788530a..6c705ff 100644 --- a/src/test/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheckTest.java +++ b/src/test/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheckTest.java @@ -2,30 +2,39 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.contains; +import static org.hamcrest.Matchers.equalTo; import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; import java.util.List; import org.gk.model.GKInstance; import org.gk.model.ReactomeJavaConstants; import org.gk.persistence.MySQLAdaptor; -import org.gk.schema.InvalidAttributeException; -import org.gk.schema.InvalidAttributeValueException; +import org.gk.schema.SchemaClass; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; +import org.reactome.release.qa.check.EHLDSubpathwayChangeCheck.EHLDPathway; public class EHLDSubpathwayChangeCheckTest { @Mock MySQLAdaptor adaptor; + @Mock + SchemaClass pathwaySchemaClass; + @Mock GKInstance firstPathway; @Mock GKInstance secondPathway; + private static final long FIRST_PATHWAY_DB_ID = 1L; + private static final long SECOND_PATHWAY_DB_ID = 2L; + @Before public void setUp() { MockitoAnnotations.initMocks(this); @@ -33,10 +42,7 @@ public void setUp() { @Test public void testGetEHLDPathwayIDs() throws Exception { - setUpMockPathway(firstPathway, 1, "true"); - setUpMockPathway(secondPathway, 2, "false"); - Mockito.when(adaptor.fetchInstancesByClass(ReactomeJavaConstants.Pathway)) - .thenReturn(Arrays.asList(firstPathway, secondPathway)); + setUpMockPathways(); EHLDSubpathwayChangeCheck ehldSubpathwayChangeCheck = new EHLDSubpathwayChangeCheck(); List pathwayIDs = ehldSubpathwayChangeCheck.getPathwayIDsWithEHLD(adaptor); @@ -44,7 +50,34 @@ public void testGetEHLDPathwayIDs() throws Exception { assertThat(pathwayIDs, contains(firstPathway.getDBID())); // Contains firstPathway id only } + @Test + public void testGetEHLDSubPathways() throws Exception { + setUpMockPathways(); + Mockito.when(firstPathway.getAttributeValuesList(ReactomeJavaConstants.hasEvent)) + .thenReturn(Collections.singletonList(secondPathway)); + + EHLDSubpathwayChangeCheck ehldSubpathwayChangeCheck = new EHLDSubpathwayChangeCheck(); + EHLDPathway ehldPathway = ehldSubpathwayChangeCheck.getEHLDPathways( + Collections.singletonList(FIRST_PATHWAY_DB_ID), adaptor + ).get(0); // Retrieve first EHLD pathway + + assertThat(ehldPathway.getPathway(), equalTo(firstPathway)); + assertThat(ehldPathway.getSubPathways(), contains(secondPathway)); + } + + private void setUpMockPathways() throws Exception { + setUpMockPathway(firstPathway, FIRST_PATHWAY_DB_ID, "true"); + setUpMockPathway(secondPathway, SECOND_PATHWAY_DB_ID, "false"); + + Mockito.when(adaptor.fetchInstancesByClass(ReactomeJavaConstants.Pathway)) + .thenReturn(Arrays.asList(firstPathway, secondPathway)); + Mockito.when(adaptor.fetchInstance((Collection) Collections.singletonList(FIRST_PATHWAY_DB_ID))) + .thenReturn(Collections.singletonList(firstPathway)); + } + private void setUpMockPathway(GKInstance pathway, long dbId, String hasEHLD) throws Exception { + Mockito.when(pathway.getSchemClass()).thenReturn(pathwaySchemaClass); + Mockito.when(pathwaySchemaClass.isa(ReactomeJavaConstants.Pathway)).thenReturn(true); Mockito.when(pathway.getAttributeValue("hasEHLD")).thenReturn(hasEHLD); Mockito.when(pathway.getDBID()).thenReturn(dbId); } From 7a9113088e4158c0fcebf717f870f637e78f3362 Mon Sep 17 00:00:00 2001 From: Joel Weiser Date: Wed, 30 Oct 2019 13:54:14 -0400 Subject: [PATCH 7/9] bug fix - changes hasEHLD attribute value to boolean --- .../release/qa/check/EHLDSubpathwayChangeCheck.java | 4 ++-- .../release/qa/check/EHLDSubpathwayChangeCheckTest.java | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheck.java b/src/main/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheck.java index 385326a..4c278e1 100644 --- a/src/main/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheck.java +++ b/src/main/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheck.java @@ -91,8 +91,8 @@ private boolean hasEHLD(GKInstance pathway) { final String hasEHLDAttribute = "hasEHLD"; try { - String hasEHLDAttributeValue = (String) pathway.getAttributeValue(hasEHLDAttribute); - return hasEHLDAttributeValue != null && hasEHLDAttributeValue.equalsIgnoreCase("true"); + Boolean hasEHLDAttributeValue = (Boolean) pathway.getAttributeValue(hasEHLDAttribute); + return hasEHLDAttributeValue != null && hasEHLDAttributeValue; } catch (Exception e) { e.printStackTrace(); return false; diff --git a/src/test/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheckTest.java b/src/test/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheckTest.java index 6c705ff..8205d1d 100644 --- a/src/test/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheckTest.java +++ b/src/test/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheckTest.java @@ -66,8 +66,8 @@ public void testGetEHLDSubPathways() throws Exception { } private void setUpMockPathways() throws Exception { - setUpMockPathway(firstPathway, FIRST_PATHWAY_DB_ID, "true"); - setUpMockPathway(secondPathway, SECOND_PATHWAY_DB_ID, "false"); + setUpMockPathway(firstPathway, FIRST_PATHWAY_DB_ID, true); + setUpMockPathway(secondPathway, SECOND_PATHWAY_DB_ID, false); Mockito.when(adaptor.fetchInstancesByClass(ReactomeJavaConstants.Pathway)) .thenReturn(Arrays.asList(firstPathway, secondPathway)); @@ -75,7 +75,7 @@ private void setUpMockPathways() throws Exception { .thenReturn(Collections.singletonList(firstPathway)); } - private void setUpMockPathway(GKInstance pathway, long dbId, String hasEHLD) throws Exception { + private void setUpMockPathway(GKInstance pathway, long dbId, boolean hasEHLD) throws Exception { Mockito.when(pathway.getSchemClass()).thenReturn(pathwaySchemaClass); Mockito.when(pathwaySchemaClass.isa(ReactomeJavaConstants.Pathway)).thenReturn(true); Mockito.when(pathway.getAttributeValue("hasEHLD")).thenReturn(hasEHLD); From aa0e7c8d25150979ae1c7f4af8953887b66fcd04 Mon Sep 17 00:00:00 2001 From: Joel Weiser Date: Wed, 30 Oct 2019 14:25:17 -0400 Subject: [PATCH 8/9] improves the efficiency of obtaining the pathways with EHLDs --- .../qa/check/EHLDSubpathwayChangeCheck.java | 31 +++++++------------ .../check/EHLDSubpathwayChangeCheckTest.java | 8 ++--- 2 files changed, 16 insertions(+), 23 deletions(-) diff --git a/src/main/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheck.java b/src/main/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheck.java index 4c278e1..4ce9fa3 100644 --- a/src/main/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheck.java +++ b/src/main/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheck.java @@ -19,7 +19,12 @@ @ReleaseQACheck public class EHLDSubpathwayChangeCheck extends AbstractQACheck implements ChecksTwoDatabases { - final private String NOT_AVAILABLE = "N/A"; + private final String NOT_AVAILABLE = "N/A"; + // Need to create the following value in org/gk/model/ReactomeJavaConstants.java in the Curator Tool project + // source code + public static final String HAS_EHLD = "hasEHLD"; + + private MySQLAdaptor olderDatabase; @Override @@ -76,29 +81,17 @@ public MySQLAdaptor getOtherDBAdaptor() { List getPathwayIDsWithEHLD(MySQLAdaptor newerDatabase) throws EHLDPathwayIDRetrievalException { try { - return asGKInstanceCollection(newerDatabase.fetchInstancesByClass(ReactomeJavaConstants.Pathway)) - .stream() - .filter(this::hasEHLD) - .map(GKInstance::getDBID) - .collect(Collectors.toList()); + return asGKInstanceCollection( + newerDatabase.fetchInstanceByAttribute(ReactomeJavaConstants.Pathway, HAS_EHLD, "=", true) + ) + .stream() + .map(GKInstance::getDBID) + .collect(Collectors.toList()); } catch (Exception e) { throw new EHLDPathwayIDRetrievalException("Unable to retrieve pathway ids from " + newerDatabase, e); } } - private boolean hasEHLD(GKInstance pathway) { - // Need to create this value in org/gk/model/ReactomeJavaConstants.java in the Curator Tool project source code - final String hasEHLDAttribute = "hasEHLD"; - - try { - Boolean hasEHLDAttributeValue = (Boolean) pathway.getAttributeValue(hasEHLDAttribute); - return hasEHLDAttributeValue != null && hasEHLDAttributeValue; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - List getEHLDPathways(Collection dbIds, MySQLAdaptor database) { List ehldPathways = new ArrayList<>(); try { diff --git a/src/test/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheckTest.java b/src/test/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheckTest.java index 8205d1d..3201dc2 100644 --- a/src/test/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheckTest.java +++ b/src/test/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheckTest.java @@ -3,8 +3,8 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.contains; import static org.hamcrest.Matchers.equalTo; +import static org.reactome.release.qa.check.EHLDSubpathwayChangeCheck.HAS_EHLD; -import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.List; @@ -69,8 +69,8 @@ private void setUpMockPathways() throws Exception { setUpMockPathway(firstPathway, FIRST_PATHWAY_DB_ID, true); setUpMockPathway(secondPathway, SECOND_PATHWAY_DB_ID, false); - Mockito.when(adaptor.fetchInstancesByClass(ReactomeJavaConstants.Pathway)) - .thenReturn(Arrays.asList(firstPathway, secondPathway)); + Mockito.when(adaptor.fetchInstanceByAttribute(ReactomeJavaConstants.Pathway, HAS_EHLD, "=", true)) + .thenReturn(Collections.singletonList(firstPathway)); Mockito.when(adaptor.fetchInstance((Collection) Collections.singletonList(FIRST_PATHWAY_DB_ID))) .thenReturn(Collections.singletonList(firstPathway)); } @@ -78,7 +78,7 @@ private void setUpMockPathways() throws Exception { private void setUpMockPathway(GKInstance pathway, long dbId, boolean hasEHLD) throws Exception { Mockito.when(pathway.getSchemClass()).thenReturn(pathwaySchemaClass); Mockito.when(pathwaySchemaClass.isa(ReactomeJavaConstants.Pathway)).thenReturn(true); - Mockito.when(pathway.getAttributeValue("hasEHLD")).thenReturn(hasEHLD); + Mockito.when(pathway.getAttributeValue(HAS_EHLD)).thenReturn(hasEHLD); Mockito.when(pathway.getDBID()).thenReturn(dbId); } } From 19347bca480c8ec1a7b133512ce89dcb30febaf5 Mon Sep 17 00:00:00 2001 From: Joel Weiser Date: Wed, 30 Oct 2019 15:34:31 -0400 Subject: [PATCH 9/9] refactors tests --- .../qa/check/EHLDSubpathwayChangeCheckTest.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/test/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheckTest.java b/src/test/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheckTest.java index 3201dc2..69afa9c 100644 --- a/src/test/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheckTest.java +++ b/src/test/java/org/reactome/release/qa/check/EHLDSubpathwayChangeCheckTest.java @@ -5,6 +5,7 @@ import static org.hamcrest.Matchers.equalTo; import static org.reactome.release.qa.check.EHLDSubpathwayChangeCheck.HAS_EHLD; +import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.List; @@ -53,32 +54,32 @@ public void testGetEHLDPathwayIDs() throws Exception { @Test public void testGetEHLDSubPathways() throws Exception { setUpMockPathways(); + Mockito.when(adaptor.fetchInstance((Collection) Collections.singletonList(FIRST_PATHWAY_DB_ID))) + .thenReturn(Collections.singletonList(firstPathway)); Mockito.when(firstPathway.getAttributeValuesList(ReactomeJavaConstants.hasEvent)) .thenReturn(Collections.singletonList(secondPathway)); EHLDSubpathwayChangeCheck ehldSubpathwayChangeCheck = new EHLDSubpathwayChangeCheck(); - EHLDPathway ehldPathway = ehldSubpathwayChangeCheck.getEHLDPathways( + EHLDPathway firstEHLDPathway = ehldSubpathwayChangeCheck.getEHLDPathways( Collections.singletonList(FIRST_PATHWAY_DB_ID), adaptor - ).get(0); // Retrieve first EHLD pathway + ).get(0); - assertThat(ehldPathway.getPathway(), equalTo(firstPathway)); - assertThat(ehldPathway.getSubPathways(), contains(secondPathway)); + assertThat(firstEHLDPathway.getPathway(), equalTo(firstPathway)); + assertThat(firstEHLDPathway.getSubPathways(), contains(secondPathway)); } private void setUpMockPathways() throws Exception { setUpMockPathway(firstPathway, FIRST_PATHWAY_DB_ID, true); setUpMockPathway(secondPathway, SECOND_PATHWAY_DB_ID, false); + Collection ehldPathways = Arrays.asList(firstPathway); Mockito.when(adaptor.fetchInstanceByAttribute(ReactomeJavaConstants.Pathway, HAS_EHLD, "=", true)) - .thenReturn(Collections.singletonList(firstPathway)); - Mockito.when(adaptor.fetchInstance((Collection) Collections.singletonList(FIRST_PATHWAY_DB_ID))) - .thenReturn(Collections.singletonList(firstPathway)); + .thenReturn(ehldPathways); } private void setUpMockPathway(GKInstance pathway, long dbId, boolean hasEHLD) throws Exception { Mockito.when(pathway.getSchemClass()).thenReturn(pathwaySchemaClass); Mockito.when(pathwaySchemaClass.isa(ReactomeJavaConstants.Pathway)).thenReturn(true); - Mockito.when(pathway.getAttributeValue(HAS_EHLD)).thenReturn(hasEHLD); Mockito.when(pathway.getDBID()).thenReturn(dbId); } }