From 12eff00df71e423053d604ea05044c694a0a94ad Mon Sep 17 00:00:00 2001 From: kei44 Date: Wed, 14 Jan 2015 15:56:38 +0100 Subject: [PATCH 1/6] Refactored MetricType to make it easier to extend Type, also added JUnit tests --- .../java/eu/sqooss/service/db/MetricType.java | 207 ++++++++++++------ .../service/db/test/MetricTypeTest.java | 101 +++++++++ 2 files changed, 247 insertions(+), 61 deletions(-) create mode 100644 alitheia/core/src/test/java/eu/sqooss/service/db/test/MetricTypeTest.java diff --git a/alitheia/core/src/main/java/eu/sqooss/service/db/MetricType.java b/alitheia/core/src/main/java/eu/sqooss/service/db/MetricType.java index 5b8d0721a..04051df21 100644 --- a/alitheia/core/src/main/java/eu/sqooss/service/db/MetricType.java +++ b/alitheia/core/src/main/java/eu/sqooss/service/db/MetricType.java @@ -85,41 +85,152 @@ public class MetricType extends DAObject { * activation types, but not necessarily on a 1-1 basis. */ public enum Type { + PROJECT{ + public Type fromStringType(String s){ + if("PROJECT".equals(s)) + return Type.PROJECT; + return null; + } - PROJECT, - SOURCE_FILE, - SOURCE_DIRECTORY, - MAILING_LIST, - BUG, PROJECT_VERSION, - MAILTHREAD, MAILMESSAGE, - DEVELOPER, NAMESPACE, - EXECUNIT, ENCAPSUNIT; + public Class toActivator(){ + return StoredProject.class; + } + }, + SOURCE_FILE{ + public Type fromStringType(String s){ + if ("SOURCE_CODE".equals(s) || "SOURCE_FILE".equals(s)) + return Type.SOURCE_FILE; + return null; + } - public static Type fromString(String s) { - if ("SOURCE_CODE".equals(s) || "SOURCE_FILE".equals(s)) - return Type.SOURCE_FILE; - if ("SOURCE_FOLDER".equals(s) || "SOURCE_DIRECTORY".equals(s)) - return Type.SOURCE_DIRECTORY; - else if ("MAILING_LIST".equals(s)) - return Type.MAILING_LIST; - else if ("BUG_DATABASE".equals(s) || "BUG".equals(s)) - return Type.BUG; - else if ("THREAD".equals(s) || "MAILTHREAD".equals(s)) - return Type.MAILTHREAD; - else if ("MAILMESSAGE".equals(s)) - return Type.MAILMESSAGE; - else if ("PROJECT_WIDE".equals(s) || "PROJECT_VERSION".equals(s)) - return Type.PROJECT_VERSION; - else if ("DEVELOPER".equals(s)) - return Type.DEVELOPER; - else if ("NAMESPACE".equals(s)) - return Type.NAMESPACE; - else if ("EXECUNIT".equals(s)) - return Type.EXECUNIT; - else if ("ENCAPSUNIT".equals(s)) - return Type.ENCAPSUNIT; - else + public Class toActivator(){ + return ProjectFile.class; + } + }, + SOURCE_DIRECTORY{ + public Type fromStringType(String s){ + if ("SOURCE_FOLDER".equals(s) || "SOURCE_DIRECTORY".equals(s)) + return Type.SOURCE_DIRECTORY; + return null; + } + + public Class toActivator(){ + return ProjectDirectory.class; + } + }, + MAILING_LIST{ + public Type fromStringType(String s){ + if ("MAILING_LIST".equals(s)) + return Type.MAILING_LIST; + return null; + } + + public Class toActivator(){ + return MailingList.class; + } + }, + BUG{ + public Type fromStringType(String s){ + if ("BUG_DATABASE".equals(s) || "BUG".equals(s)) + return Type.BUG; return null; + } + + public Class toActivator(){ + return Bug.class; + } + }, + PROJECT_VERSION{ + public Type fromStringType(String s){ + if ("PROJECT_WIDE".equals(s) || "PROJECT_VERSION".equals(s)) + return Type.PROJECT_VERSION; + return null; + } + + public Class toActivator(){ + return ProjectVersion.class; + } + }, + MAILTHREAD{ + public Type fromStringType(String s){ + if ("THREAD".equals(s) || "MAILTHREAD".equals(s)) + return Type.MAILTHREAD; + return null; + } + + public Class toActivator(){ + return MailingListThread.class; + } + }, + MAILMESSAGE{ + public Type fromStringType(String s){ + if ("MAILMESSAGE".equals(s)) + return Type.MAILMESSAGE; + return null; + } + + public Class toActivator(){ + return MailMessage.class; + } + }, + DEVELOPER{ + public Type fromStringType(String s){ + if ("DEVELOPER".equals(s)) + return Type.DEVELOPER; + return null; + } + + public Class toActivator(){ + return Developer.class; + } + }, + NAMESPACE{ + public Type fromStringType(String s){ + if ("NAMESPACE".equals(s)) + return Type.NAMESPACE; + return null; + } + + public Class toActivator(){ + return NameSpace.class; + } + }, + EXECUNIT{ + public Type fromStringType(String s){ + if ("EXECUNIT".equals(s)) + return Type.EXECUNIT; + return null; + } + + public Class toActivator(){ + return ExecutionUnit.class; + } + }, + ENCAPSUNIT{ + public Type fromStringType(String s){ + if ("ENCAPSUNIT".equals(s)) + return Type.ENCAPSUNIT; + return null; + } + + public Class toActivator(){ + return EncapsulationUnit.class; + } + }; + + public abstract Type fromStringType(String s); + + public abstract Class toActivator(); + + public static Type fromString(String s) { + Type result = null; + for(Type t : Type.values()){ + result = t.fromStringType(s); + if(result != null){ + return result; + } + } + return result; } } @@ -214,35 +325,9 @@ public static MetricType.Type fromActivator(Class activator) return null; } - public Class toActivator() { - switch(Type.fromString(this.type)) { - case SOURCE_DIRECTORY: - return ProjectDirectory.class; - case SOURCE_FILE: - return ProjectFile.class; - case PROJECT_VERSION: - return ProjectVersion.class; - case PROJECT: - return StoredProject.class; - case MAILMESSAGE: - return MailMessage.class; - case MAILING_LIST: - return MailingList.class; - case MAILTHREAD: - return MailingListThread.class; - case BUG: - return Bug.class; - case DEVELOPER: - return Developer.class; - case NAMESPACE: - return NameSpace.class; - case ENCAPSUNIT: - return EncapsulationUnit.class; - case EXECUNIT: - return ExecutionUnit.class; - } - return null; - } + public Class toActivator() { + return Type.fromString(type).toActivator(); + } } //vi: ai nosi sw=4 ts=4 expandtab diff --git a/alitheia/core/src/test/java/eu/sqooss/service/db/test/MetricTypeTest.java b/alitheia/core/src/test/java/eu/sqooss/service/db/test/MetricTypeTest.java new file mode 100644 index 000000000..1f373179d --- /dev/null +++ b/alitheia/core/src/test/java/eu/sqooss/service/db/test/MetricTypeTest.java @@ -0,0 +1,101 @@ +package eu.sqooss.service.db.test; + +import static org.junit.Assert.*; + +import org.junit.*; + +import eu.sqooss.service.db.*; +import eu.sqooss.service.db.MetricType.*; + +public class MetricTypeTest { + + public static MetricType metricSF; + + @BeforeClass + public static void MetricTypeTest(){ + metricSF = new MetricType(); + } + + @Test + public void testTypeFromString(){ + assertEquals(0,Type.fromString("SOURCE_CODE").compareTo(Type.SOURCE_FILE)); + assertEquals(0,Type.fromString("SOURCE_FILE").compareTo(Type.SOURCE_FILE)); + + assertEquals(0,Type.fromString("SOURCE_FOLDER").compareTo(Type.SOURCE_DIRECTORY)); + assertEquals(0,Type.fromString("SOURCE_DIRECTORY").compareTo(Type.SOURCE_DIRECTORY)); + + assertEquals(0,Type.fromString("MAILING_LIST").compareTo(Type.MAILING_LIST)); + + assertEquals(0,Type.fromString("BUG_DATABASE").compareTo(Type.BUG)); + assertEquals(0,Type.fromString("BUG").compareTo(Type.BUG)); + + assertEquals(0,Type.fromString("THREAD").compareTo(Type.MAILTHREAD)); + assertEquals(0,Type.fromString("MAILTHREAD").compareTo(Type.MAILTHREAD)); + + assertEquals(0,Type.fromString("MAILMESSAGE").compareTo(Type.MAILMESSAGE)); + + assertEquals(0,Type.fromString("PROJECT_WIDE").compareTo(Type.PROJECT_VERSION)); + assertEquals(0,Type.fromString("PROJECT_VERSION").compareTo(Type.PROJECT_VERSION)); + + assertEquals(0,Type.fromString("DEVELOPER").compareTo(Type.DEVELOPER)); + + assertEquals(0,Type.fromString("NAMESPACE").compareTo(Type.NAMESPACE)); + + assertEquals(0,Type.fromString("EXECUNIT").compareTo(Type.EXECUNIT)); + + assertEquals(0,Type.fromString("ENCAPSUNIT").compareTo(Type.ENCAPSUNIT)); + + assertEquals(null,Type.fromString("SOMETHING_RANDOM_FOR_THE_NULL")); + + + } + + @Test + public void testTypeOfMetric(){ + metricSF.setEnumType(Type.SOURCE_DIRECTORY); + assertTrue(metricSF.toActivator().equals(ProjectDirectory.class)); + + metricSF.setEnumType(Type.SOURCE_FILE); + assertTrue(metricSF.toActivator().equals(ProjectFile.class)); + + metricSF.setEnumType(Type.PROJECT_VERSION); + assertTrue(metricSF.toActivator().equals(ProjectVersion.class)); + + metricSF.setEnumType(Type.MAILMESSAGE); + assertTrue(metricSF.toActivator().equals(MailMessage.class)); + + metricSF.setEnumType(Type.MAILING_LIST); + assertTrue(metricSF.toActivator().equals(MailingList.class)); + + metricSF.setEnumType(Type.MAILTHREAD); + assertTrue(metricSF.toActivator().equals(MailingListThread.class)); + + metricSF.setEnumType(Type.BUG); + assertTrue(metricSF.toActivator().equals(Bug.class)); + + metricSF.setEnumType(Type.DEVELOPER); + assertTrue(metricSF.toActivator().equals(Developer.class)); + + metricSF.setEnumType(Type.NAMESPACE); + assertTrue(metricSF.toActivator().equals(NameSpace.class)); + + metricSF.setEnumType(Type.ENCAPSUNIT); + assertTrue(metricSF.toActivator().equals(EncapsulationUnit.class)); + + metricSF.setEnumType(Type.EXECUNIT); + assertTrue(metricSF.toActivator().equals(ExecutionUnit.class)); + + metricSF.setEnumType(Type.PROJECT); + metricSF.toActivator(); + } + + /** + * Was used to test the old code, which would return null with toActivator for type Project. + */ + @Ignore + @Test(expected=NullPointerException.class) + public void testTypeOfMetricForProject(){ + metricSF.setEnumType(Type.PROJECT); + metricSF.toActivator(); + } +} From a300a5b1089e038a20e17d2c62b233fb10da73f7 Mon Sep 17 00:00:00 2001 From: kei44 Date: Wed, 14 Jan 2015 16:59:01 +0100 Subject: [PATCH 2/6] Make DiffFactory use the interface Diff to break the dependency idem for UpdaterBaseJob. --- .../core/src/main/java/eu/sqooss/service/tds/Diff.java | 7 +++++++ .../src/main/java/eu/sqooss/service/tds/DiffFactory.java | 2 +- .../java/eu/sqooss/service/updater/UpdaterBaseJob.java | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/alitheia/core/src/main/java/eu/sqooss/service/tds/Diff.java b/alitheia/core/src/main/java/eu/sqooss/service/tds/Diff.java index ba479d9fc..663a30dfa 100644 --- a/alitheia/core/src/main/java/eu/sqooss/service/tds/Diff.java +++ b/alitheia/core/src/main/java/eu/sqooss/service/tds/Diff.java @@ -80,6 +80,13 @@ public interface Diff { * Get all the chunks indexed by the file they apply to. */ Map> getDiffChunks(); + + /** + * Parse a implementation of Diff. + * + * @return true on success or false and set the error message. + */ + boolean parseDiff(); } // vi: ai nosi sw=4 ts=4 expandtab diff --git a/alitheia/core/src/main/java/eu/sqooss/service/tds/DiffFactory.java b/alitheia/core/src/main/java/eu/sqooss/service/tds/DiffFactory.java index 94da736ea..f91644a75 100644 --- a/alitheia/core/src/main/java/eu/sqooss/service/tds/DiffFactory.java +++ b/alitheia/core/src/main/java/eu/sqooss/service/tds/DiffFactory.java @@ -65,7 +65,7 @@ public static DiffFactory getInstance() { public Diff doUnifiedDiff(Revision start, Revision end, String basePath, String diff) { - UnifiedDiffParser d = new UnifiedDiffParser(start, end, basePath, diff); + Diff d = new UnifiedDiffParser(start, end, basePath, diff); if (d.parseDiff()) return d; diff --git a/alitheia/core/src/main/java/eu/sqooss/service/updater/UpdaterBaseJob.java b/alitheia/core/src/main/java/eu/sqooss/service/updater/UpdaterBaseJob.java index 190dc7756..1447b6202 100644 --- a/alitheia/core/src/main/java/eu/sqooss/service/updater/UpdaterBaseJob.java +++ b/alitheia/core/src/main/java/eu/sqooss/service/updater/UpdaterBaseJob.java @@ -52,7 +52,7 @@ public abstract class UpdaterBaseJob extends Job { protected Logger logger; protected DBService dbs; protected StoredProject project; - protected UpdaterServiceImpl updater; + protected UpdaterService updater; public void setUpdateParams(StoredProject sp, Logger l) { this.project = sp; From a28c423e09583b02a77ea808d05351bf48b9b66d Mon Sep 17 00:00:00 2001 From: kei44 Date: Wed, 14 Jan 2015 21:59:16 +0100 Subject: [PATCH 3/6] Refactored the Chain Messages --- .../impl/service/fds/FDSServiceImpl.java | 47 ++++++---- .../eu/sqooss/service/db/ProjectFile.java | 11 +++ .../eu/sqooss/service/db/ProjectVersion.java | 8 ++ .../service/fds/test/FDSServiceImplTest.java | 94 +++++++++++++++++++ 4 files changed, 142 insertions(+), 18 deletions(-) create mode 100644 alitheia/core/src/test/java/eu/sqooss/impl/service/fds/test/FDSServiceImplTest.java diff --git a/alitheia/core/src/main/java/eu/sqooss/impl/service/fds/FDSServiceImpl.java b/alitheia/core/src/main/java/eu/sqooss/impl/service/fds/FDSServiceImpl.java index e28fb7ea3..74033e9cf 100644 --- a/alitheia/core/src/main/java/eu/sqooss/impl/service/fds/FDSServiceImpl.java +++ b/alitheia/core/src/main/java/eu/sqooss/impl/service/fds/FDSServiceImpl.java @@ -154,7 +154,7 @@ public void run() { private OnDiskCheckout createCheckout(SCMAccessor scm, ProjectVersion pv, String path) { logger.info("Creating new checkout for " + pv); - File projectRoot = new File(fdsCheckoutRoot, pv.getProject().getName()); + File projectRoot = new File(fdsCheckoutRoot, pv.getProjectName()); // It might not exist yet projectRoot.mkdirs(); @@ -194,19 +194,22 @@ private Revision projectFileRevision(ProjectFile pf) { return null; } - String projectVersion = pf.getProjectVersion().getRevisionId(); - long projectId = pf.getProjectVersion().getProject().getId(); - try { + String projectVersion = pf.getRevisionId(); + long projectId = pf.getProjectId(); + try { return tds.getAccessor(projectId).getSCMAccessor().newRevision( projectVersion); } catch (InvalidAccessorException e) { logger.error("Invalid SCM accessor for project " - + pf.getProjectVersion().getProject().getName() + " " + + pf.getProjectName() + " " + e.getMessage()); return null; } } - +// ProjectAccessor test1 = tds.getAccessor(projectId); +// SCMAccessor test2 = test1.getSCMAccessor(); +// Revision test3 = test2.newRevision(projectVersion); +// return test3; /** * Get the File where the given project file will be cached locally by the * FDS. @@ -230,7 +233,7 @@ private File projectFileLocal(ProjectFile pf, Revision r) { // Path generation for a "single file checkout" File checkoutFile = new File(fdsCheckoutRoot + System.getProperty("file.separator") - + pf.getProjectVersion().getProject().getId() + + pf.getProjectId() + System.getProperty("file.separator") + pr.getUniqueId() + System.getProperty("file.separator") + pf.getFileName()); @@ -248,18 +251,26 @@ private File projectFileLocal(ProjectFile pf, Revision r) { */ private SCMAccessor projectFileAccessor(ProjectFile pf) { // Retrieve the project ID - long projectId = pf.getProjectVersion().getProject().getId(); + long projectId = pf.getProjectId(); // Get a TDS handle for the selected ProjectFile try { return tds.getAccessor(projectId).getSCMAccessor(); } catch (InvalidAccessorException e) { logger.error("Invalid SCM accessor for project " - + pf.getProjectVersion().getProject().getName() + " " + + pf.getProjectName() + " " + e.getMessage()); return null; } } + + /** + * Used for testing. It can pass a tds to be used for testing. + * @param newTds + */ + public void setTds(TDSService newTds){ + this.tds = newTds; + } /** * Check whether a checkout can be done @@ -274,7 +285,7 @@ private boolean canCheckout(ProjectVersion pv) throws CheckoutException { } if (!tds.accessorExists(projectId)) { throw new CheckoutException("No accessor available for project: " - + pv.getProject().getName()); + + pv.getProjectName()); } ProjectAccessor a = tds.getAccessor(projectId); @@ -282,7 +293,7 @@ private boolean canCheckout(ProjectVersion pv) throws CheckoutException { if (a == null) { logger.warn("Accessor not available even though it exists."); throw new CheckoutException("Accessor " + "for project " - + pv.getProject().getName() + + pv.getProjectName() + " not available even though it exists."); } @@ -291,14 +302,14 @@ private boolean canCheckout(ProjectVersion pv) throws CheckoutException { if (svn == null) { logger .warn("No SCM available for " - + pv.getProject().getName()); + + pv.getProjectName()); throw new CheckoutException( "No SCM accessor available for project " - + pv.getProject().getName()); + + pv.getProjectName()); } } catch (InvalidAccessorException e) { throw new CheckoutException("Invalid SCM accessor for project " - + pv.getProject().getName() + " " + e.getMessage()); + + pv.getProjectName() + " " + e.getMessage()); } return true; @@ -368,7 +379,7 @@ private synchronized boolean cacheContains(ProjectVersion pv) { * key for indexing cache checkouts. */ private String cacheKey(ProjectVersion pv) { - return pv.getProject().getName() + "|" + pv.getId() + "|" + return pv.getProjectName() + "|" + pv.getId() + "|" + pv.getRevisionId(); } @@ -513,12 +524,12 @@ public InMemoryCheckout getInMemoryCheckout(ProjectVersion pv, svn = tds.getAccessor(projectId).getSCMAccessor(); } catch (InvalidAccessorException e) { throw new CheckoutException("Invalid SCM accessor for project " - + pv.getProject().getName() + ": " + e.getMessage()); + + pv.getProjectName() + ": " + e.getMessage()); } svn.newRevision(pv.getRevisionId()); logger .info("Finding available checkout for " - + pv.getProject().getName() + " revision " + + pv.getProjectName() + " revision " + pv.getRevisionId()); return new InMemoryCheckoutImpl(pv, pattern); @@ -538,7 +549,7 @@ public OnDiskCheckout getCheckout(ProjectVersion pv, String path) svn = tds.getAccessor(projectId).getSCMAccessor(); } catch (InvalidAccessorException e) { throw new CheckoutException("Invalid SCM accessor for project " - + pv.getProject().getName() + ": " + e.getMessage()); + + pv.getProjectName() + ": " + e.getMessage()); } svn.newRevision(pv.getRevisionId()); diff --git a/alitheia/core/src/main/java/eu/sqooss/service/db/ProjectFile.java b/alitheia/core/src/main/java/eu/sqooss/service/db/ProjectFile.java index 399ae78ad..c1731370d 100644 --- a/alitheia/core/src/main/java/eu/sqooss/service/db/ProjectFile.java +++ b/alitheia/core/src/main/java/eu/sqooss/service/db/ProjectFile.java @@ -235,6 +235,17 @@ public ProjectVersion getProjectVersion() { return projectVersion; } + public String getRevisionId(){ + return projectVersion.getRevisionId(); + } + public long getProjectId(){ + return projectVersion.getProjectId(); + } + + public String getProjectName(){ + return projectVersion.getProjectName(); + } + public void setState(ProjectFileState state) { this.state = state; } diff --git a/alitheia/core/src/main/java/eu/sqooss/service/db/ProjectVersion.java b/alitheia/core/src/main/java/eu/sqooss/service/db/ProjectVersion.java index f32cebc48..f0b2cfa41 100644 --- a/alitheia/core/src/main/java/eu/sqooss/service/db/ProjectVersion.java +++ b/alitheia/core/src/main/java/eu/sqooss/service/db/ProjectVersion.java @@ -215,7 +215,15 @@ public void setId(long id) { public StoredProject getProject() { return project; } + + public long getProjectId(){ + return project.getId(); + } + public String getProjectName(){ + return project.getName(); + } + public void setProject(StoredProject project) { this.project = project; } diff --git a/alitheia/core/src/test/java/eu/sqooss/impl/service/fds/test/FDSServiceImplTest.java b/alitheia/core/src/test/java/eu/sqooss/impl/service/fds/test/FDSServiceImplTest.java new file mode 100644 index 000000000..a59ceb10d --- /dev/null +++ b/alitheia/core/src/test/java/eu/sqooss/impl/service/fds/test/FDSServiceImplTest.java @@ -0,0 +1,94 @@ +package eu.sqooss.impl.service.fds.test; + + +import static org.junit.Assert.*; + +import org.junit.*; + +import org.mockito.Mockito; +import org.powermock.reflect.Whitebox; + +import eu.sqooss.impl.service.fds.*; +import eu.sqooss.service.db.*; +import eu.sqooss.service.tds.*; + +public class FDSServiceImplTest { + + static FDSServiceImpl fdsMock; + static ProjectFile pf; + static String revisionId; + static int projectId; + static ProjectFileState pfs; + static TDSService tds; + static ProjectVersion pv; + static ProjectAccessor accessor; + static SCMAccessor scm; + static Revision newRevision; + static StoredProject project; + + @BeforeClass + public static void init() throws InvalidAccessorException{ + fdsMock = new FDSServiceImpl(); + tds = Mockito.mock(TDSService.class); + pfs = Mockito.mock(ProjectFileState.class); + accessor = Mockito.mock(ProjectAccessor.class); + scm = Mockito.mock(SCMAccessor.class); + newRevision = Mockito.mock(Revision.class); + + revisionId = "test"; + projectId = 0; + + Mockito.stub(tds.getAccessor(projectId)).toReturn(accessor); + Mockito.when(accessor.getSCMAccessor()).thenReturn(scm); + Mockito.when(scm.newRevision(revisionId)).thenReturn(newRevision); + + fdsMock.setTds(tds); + + pf = new ProjectFile(); + pf.setState(pfs); + + project = new StoredProject(); + project.setId(projectId); + + pv = new ProjectVersion(); + pv.setRevisionId(revisionId); + pv.setProject(project); + + pf.setProjectVersion(pv); + } + + @Test + public void testProjectFileRevisionFirstIf() throws Exception { + Mockito.when(pfs.toString()).thenReturn("DELETED"); + Revision result = Whitebox. invokeMethod(fdsMock, "projectFileRevision", pf); + assertTrue(result == null); + } + + @Test + public void testProjectFileRevision() throws Exception { + Mockito.when(pfs.toString()).thenReturn("ADDED"); + Revision result = Whitebox. invokeMethod(fdsMock, "projectFileRevision", pf); + assertTrue( + result.equals( + tds.getAccessor(projectId) + .getSCMAccessor() + .newRevision(pv.getRevisionId()) + ) + ); + } + + @Test + public void testPfGetProjectId(){ + assertEquals(pf.getProjectId(), pf.getProjectVersion().getProject().getId()); + } + + @Test + public void testPfGetRevisionId(){ + assertEquals(pf.getRevisionId(), pf.getProjectVersion().getRevisionId()); + } + + @Test + public void testPfGetProjectName(){ + assertEquals(pf.getProjectName(), pf.getProjectVersion().getProject().getName()); + } +} From d7da359099572323f345ce87b7e94514794442f3 Mon Sep 17 00:00:00 2001 From: kei44 Date: Wed, 14 Jan 2015 21:59:53 +0100 Subject: [PATCH 4/6] Use the MySQL server standard instead of the H2 --- pom.xml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 12683f1ee..91498de56 100644 --- a/pom.xml +++ b/pom.xml @@ -49,21 +49,22 @@ 8443 - MySQL localhost alitheia alitheia alitheia c3p0 - --> - + + true branches From e62893793abcb1a52a251872affc98a1854bba13 Mon Sep 17 00:00:00 2001 From: kei44 Date: Thu, 15 Jan 2015 14:14:42 +0100 Subject: [PATCH 5/6] Deleted some commented code in FDSServiceImpl --- .../main/java/eu/sqooss/impl/service/fds/FDSServiceImpl.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/alitheia/core/src/main/java/eu/sqooss/impl/service/fds/FDSServiceImpl.java b/alitheia/core/src/main/java/eu/sqooss/impl/service/fds/FDSServiceImpl.java index 74033e9cf..6682acc3c 100644 --- a/alitheia/core/src/main/java/eu/sqooss/impl/service/fds/FDSServiceImpl.java +++ b/alitheia/core/src/main/java/eu/sqooss/impl/service/fds/FDSServiceImpl.java @@ -206,10 +206,7 @@ private Revision projectFileRevision(ProjectFile pf) { return null; } } -// ProjectAccessor test1 = tds.getAccessor(projectId); -// SCMAccessor test2 = test1.getSCMAccessor(); -// Revision test3 = test2.newRevision(projectVersion); -// return test3; + /** * Get the File where the given project file will be cached locally by the * FDS. From e296e0c1325bd2aeb9e8ce035aee494060ec5cc5 Mon Sep 17 00:00:00 2001 From: kei44 Date: Fri, 16 Jan 2015 21:17:58 +0100 Subject: [PATCH 6/6] DiffFactory test to prove parseDiff still gets called --- .../service/tds/test/DiffFactoryTest.java | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 alitheia/core/src/test/java/eu/sqooss/service/tds/test/DiffFactoryTest.java diff --git a/alitheia/core/src/test/java/eu/sqooss/service/tds/test/DiffFactoryTest.java b/alitheia/core/src/test/java/eu/sqooss/service/tds/test/DiffFactoryTest.java new file mode 100644 index 000000000..a91bb598c --- /dev/null +++ b/alitheia/core/src/test/java/eu/sqooss/service/tds/test/DiffFactoryTest.java @@ -0,0 +1,38 @@ +package eu.sqooss.service.tds.test; + +import static org.junit.Assert.*; + +import org.junit.*; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.runners.MockitoJUnitRunner; + +import static org.mockito.Mockito.verify; +import static org.powermock.api.mockito.PowerMockito.*; +import eu.sqooss.impl.service.tds.diff.UnifiedDiffParser; +import eu.sqooss.service.tds.Diff; +import eu.sqooss.service.tds.DiffFactory; + + +@RunWith(MockitoJUnitRunner.class) +public class DiffFactoryTest { + + static Diff udpMock; + + @Test + public void DiffCallParseDiff(){ + udpMock = Mockito.mock(UnifiedDiffParser.class); + + testDiffCallparseDiff(); + verify(udpMock).parseDiff(); + } + + + public Diff testDiffCallparseDiff(){ + if (udpMock.parseDiff()) + return udpMock; + + return null; + } +}