[jboss-svn-commits] JBL Code SVN: r35598 - in labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src: main/java/org/jboss/community/sbs/plugin/reports/monthly/config and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Oct 20 11:02:39 EDT 2010


Author: velias
Date: 2010-10-20 11:02:38 -0400 (Wed, 20 Oct 2010)
New Revision: 35598

Added:
   labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/JiveSystemConfigProvider.java
   labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/SystemConfigProvider.java
   labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/test/java/org/jboss/community/sbs/plugin/reports/monthly/config/MockAggregator.java
   labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/test/java/org/jboss/community/sbs/plugin/reports/monthly/config/MockSystemDataConfig.java
   labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/test/java/org/jboss/community/sbs/plugin/reports/monthly/config/ProjectConfigTest.java
   labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/test/java/org/jboss/community/sbs/plugin/reports/monthly/config/ReportConfigTest.java
Modified:
   labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/ReportGenerator.java
   labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/config/ProjectConfig.java
   labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/config/ReportConfig.java
   labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/valuesource/FISHEYEValueSource.java
   labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/valuesource/JIRAValueSource.java
   labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/valuesource/SBSValueSource.java
   labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/valuesource/ValueSourceBase.java
   labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/test/java/org/jboss/community/sbs/plugin/reports/monthly/ReportGeneratorTest.java
Log:
- system configuration provider added
- check for project name existence added during configuration load
- more unit tests for config package

Added: labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/JiveSystemConfigProvider.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/JiveSystemConfigProvider.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/JiveSystemConfigProvider.java	2010-10-20 15:02:38 UTC (rev 35598)
@@ -0,0 +1,44 @@
+package org.jboss.community.sbs.plugin.reports.monthly;
+
+import com.jivesoftware.community.JiveGlobals;
+
+/**
+ * JIVE SBS system configuration properties provider. Based on {@link JiveGlobals}.
+ * 
+ * @author Vlastimil Elias (velias at redhat dot com)
+ * 
+ * @see JiveGlobals
+ */
+public class JiveSystemConfigProvider implements SystemConfigProvider {
+
+  @Override
+  public boolean getBooleanProperty(String name) {
+    return JiveGlobals.getJiveBooleanProperty(name);
+  }
+
+  @Override
+  public boolean getBooleanProperty(String name, boolean defaultValue) {
+    return JiveGlobals.getJiveBooleanProperty(name, defaultValue);
+  }
+
+  @Override
+  public int getIntProperty(String name, int defaultValue) {
+    return JiveGlobals.getJiveIntProperty(name, defaultValue);
+  }
+
+  @Override
+  public long getLongProperty(String name, long defaultValue) {
+    return JiveGlobals.getJiveLongProperty(name, defaultValue);
+  }
+
+  @Override
+  public String getStringProperty(String name) {
+    return JiveGlobals.getJiveProperty(name);
+  }
+
+  @Override
+  public String getStringProperty(String name, String defaultValue) {
+    return JiveGlobals.getJiveProperty(name, defaultValue);
+  }
+
+}

Modified: labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/ReportGenerator.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/ReportGenerator.java	2010-10-20 14:21:42 UTC (rev 35597)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/ReportGenerator.java	2010-10-20 15:02:38 UTC (rev 35598)
@@ -17,6 +17,7 @@
 import org.jboss.community.sbs.plugin.reports.monthly.valuesource.FISHEYEValueSource;
 import org.jboss.community.sbs.plugin.reports.monthly.valuesource.JIRAValueSource;
 import org.jboss.community.sbs.plugin.reports.monthly.valuesource.SBSValueSource;
+import org.jboss.community.sbs.plugin.reports.monthly.valuesource.ValueSource;
 
 import au.com.bytecode.opencsv.CSVWriter;
 
@@ -35,17 +36,21 @@
    * @param configFile input stream with report content configuration file. See {@link ReportConfigParser}.
    * @param dateFrom lower time bound to generate report for
    * @param dateTo upper time bound to generate report for
+   * @param sysConfig System configuration provider to be used during report generation. Required system config values
+   *          are documented in distinct {@link ValueSource} subclass's javadoc.
+   * 
    * @return String containing csv file with generated report data
    * 
    * @throws Exception if something goes wrong
    */
-  public String generateReport(InputStream configFile, Date dateFrom, Date dateTo) throws Exception {
+  public String generateReport(InputStream configFile, Date dateFrom, Date dateTo, SystemConfigProvider sysConfig)
+      throws Exception {
 
     ReportConfig config = new ReportConfigParser().parseConfigFile(configFile);
 
-    SBSAggregator as = new SBSAggregator(new SBSValueSource(dateFrom, dateTo));
-    JIRAAggregator aj = new JIRAAggregator(new JIRAValueSource(dateFrom, dateTo));
-    FISHEYEAggregator af = new FISHEYEAggregator(new FISHEYEValueSource(dateFrom, dateTo));
+    SBSAggregator as = new SBSAggregator(new SBSValueSource(sysConfig, dateFrom, dateTo));
+    JIRAAggregator aj = new JIRAAggregator(new JIRAValueSource(sysConfig, dateFrom, dateTo));
+    FISHEYEAggregator af = new FISHEYEAggregator(new FISHEYEValueSource(sysConfig, dateFrom, dateTo));
 
     StringWriter writer = new StringWriter();
     CSVWriter csvwriter = getCSVWriter(writer);

Added: labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/SystemConfigProvider.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/SystemConfigProvider.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/SystemConfigProvider.java	2010-10-20 15:02:38 UTC (rev 35598)
@@ -0,0 +1,24 @@
+package org.jboss.community.sbs.plugin.reports.monthly;
+
+import org.jboss.community.sbs.plugin.reports.monthly.valuesource.ValueSource;
+
+/**
+ * Abstraction of access to system configuration properties. Used in {@link ValueSource} implementations to load
+ * necessary configurations.
+ * 
+ * @author Vlastimil Elias (velias at redhat dot com)
+ */
+public interface SystemConfigProvider {
+
+  String getStringProperty(String name);
+
+  String getStringProperty(String name, String defaultValue);
+
+  boolean getBooleanProperty(String name);
+
+  boolean getBooleanProperty(String name, boolean defaultValue);
+
+  int getIntProperty(String name, int defaultValue);
+
+  long getLongProperty(String name, long defaultValue);
+}

Modified: labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/config/ProjectConfig.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/config/ProjectConfig.java	2010-10-20 14:21:42 UTC (rev 35597)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/config/ProjectConfig.java	2010-10-20 15:02:38 UTC (rev 35598)
@@ -3,6 +3,8 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.commons.lang.StringUtils;
+
 /**
  * Report configuration for one project.
  * 
@@ -10,6 +12,21 @@
  */
 public class ProjectConfig {
 
+  /**
+   * Constructor.
+   */
+  public ProjectConfig() {
+  }
+
+  /**
+   * Constructor.
+   * 
+   * @param name of project
+   */
+  public ProjectConfig(String name) {
+    setName(name);
+  }
+
   /** Name of project. */
   private String name;
 
@@ -33,7 +50,7 @@
    * @param name the new name of project
    */
   public void setName(String name) {
-    this.name = name;
+    this.name = StringUtils.trimToNull(name);
   }
 
   /**

Modified: labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/config/ReportConfig.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/config/ReportConfig.java	2010-10-20 14:21:42 UTC (rev 35597)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/config/ReportConfig.java	2010-10-20 15:02:38 UTC (rev 35598)
@@ -30,6 +30,10 @@
    * @param proj to add
    */
   public void addProjectConfig(ProjectConfig proj) {
+    if (proj == null)
+      return;
+    if (proj.getName() == null)
+      throw new IllegalArgumentException("Project name can't be empty");
     projects.add(proj);
   }
 

Modified: labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/valuesource/FISHEYEValueSource.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/valuesource/FISHEYEValueSource.java	2010-10-20 14:21:42 UTC (rev 35597)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/valuesource/FISHEYEValueSource.java	2010-10-20 15:02:38 UTC (rev 35598)
@@ -2,6 +2,7 @@
 
 import java.util.Date;
 
+import org.jboss.community.sbs.plugin.reports.monthly.SystemConfigProvider;
 import org.jboss.community.sbs.plugin.reports.monthly.config.FishEyeRepositoryConfig;
 
 /**
@@ -14,11 +15,12 @@
   /**
    * Constructor.
    * 
+   * @param sysConfig System configuration provider to be used
    * @param dateFrom lower time bound to generate report for
    * @param dateTo upper time bound to generate report for
    */
-  public FISHEYEValueSource(Date dateFrom, Date dateTo) {
-    super(dateFrom, dateTo);
+  public FISHEYEValueSource(SystemConfigProvider sysConfig, Date dateFrom, Date dateTo) {
+    super(sysConfig, dateFrom, dateTo);
   }
 
   @Override

Modified: labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/valuesource/JIRAValueSource.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/valuesource/JIRAValueSource.java	2010-10-20 14:21:42 UTC (rev 35597)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/valuesource/JIRAValueSource.java	2010-10-20 15:02:38 UTC (rev 35598)
@@ -2,6 +2,8 @@
 
 import java.util.Date;
 
+import org.jboss.community.sbs.plugin.reports.monthly.SystemConfigProvider;
+
 /**
  * Data source to obtain report value for one project in JIRA.
  * 
@@ -12,11 +14,12 @@
   /**
    * Constructor.
    * 
+   * @param sysConfig System configuration provider to be used
    * @param dateFrom lower time bound to generate report for
    * @param dateTo upper time bound to generate report for
    */
-  public JIRAValueSource(Date dateFrom, Date dateTo) {
-    super(dateFrom, dateTo);
+  public JIRAValueSource(SystemConfigProvider sysConfig, Date dateFrom, Date dateTo) {
+    super(sysConfig, dateFrom, dateTo);
   }
 
   @Override

Modified: labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/valuesource/SBSValueSource.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/valuesource/SBSValueSource.java	2010-10-20 14:21:42 UTC (rev 35597)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/valuesource/SBSValueSource.java	2010-10-20 15:02:38 UTC (rev 35598)
@@ -2,6 +2,8 @@
 
 import java.util.Date;
 
+import org.jboss.community.sbs.plugin.reports.monthly.SystemConfigProvider;
+
 /**
  * Data source to obtain report value for one Space from SBS.
  * 
@@ -12,11 +14,12 @@
   /**
    * Constructor.
    * 
+   * @param sysConfig System configuration provider to be used
    * @param dateFrom lower time bound to generate report for
    * @param dateTo upper time bound to generate report for
    */
-  public SBSValueSource(Date dateFrom, Date dateTo) {
-    super(dateFrom, dateTo);
+  public SBSValueSource(SystemConfigProvider sysConfig, Date dateFrom, Date dateTo) {
+    super(sysConfig, dateFrom, dateTo);
   }
 
   @Override

Modified: labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/valuesource/ValueSourceBase.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/valuesource/ValueSourceBase.java	2010-10-20 14:21:42 UTC (rev 35597)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/main/java/org/jboss/community/sbs/plugin/reports/monthly/valuesource/ValueSourceBase.java	2010-10-20 15:02:38 UTC (rev 35598)
@@ -2,6 +2,8 @@
 
 import java.util.Date;
 
+import org.jboss.community.sbs.plugin.reports.monthly.SystemConfigProvider;
+
 /**
  * Base class for {@link ValueSource} implementations.
  * 
@@ -11,18 +13,32 @@
  */
 public abstract class ValueSourceBase<T> implements ValueSource<T> {
 
+  /**
+   * Lower time bound to generate report for.
+   */
   protected Date dateFrom;
+
+  /**
+   * Upper time bound to generate report for.
+   */
   protected Date dateTo;
 
   /**
+   * System configuration provider to be used.
+   */
+  protected SystemConfigProvider sysConfig;
+
+  /**
    * Constructor.
    * 
+   * @param sysConfig System configuration provider to be used
    * @param dateFrom lower time bound to generate report for
    * @param dateTo upper time bound to generate report for
    */
-  public ValueSourceBase(Date dateFrom, Date dateTo) {
+  public ValueSourceBase(SystemConfigProvider sysConfig, Date dateFrom, Date dateTo) {
     this.dateFrom = dateFrom;
     this.dateTo = dateTo;
+    this.sysConfig = sysConfig;
   }
 
 }

Modified: labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/test/java/org/jboss/community/sbs/plugin/reports/monthly/ReportGeneratorTest.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/test/java/org/jboss/community/sbs/plugin/reports/monthly/ReportGeneratorTest.java	2010-10-20 14:21:42 UTC (rev 35597)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/test/java/org/jboss/community/sbs/plugin/reports/monthly/ReportGeneratorTest.java	2010-10-20 15:02:38 UTC (rev 35598)
@@ -3,6 +3,8 @@
 import java.io.StringWriter;
 
 import org.jboss.community.sbs.plugin.reports.monthly.aggregator.Aggregator;
+import org.jboss.community.sbs.plugin.reports.monthly.config.MockAggregator;
+import org.jboss.community.sbs.plugin.reports.monthly.config.MockSystemDataConfig;
 import org.jboss.community.sbs.plugin.reports.monthly.config.ProjectConfig;
 import org.jboss.community.sbs.plugin.reports.monthly.config.ReportConfig;
 import org.jboss.community.sbs.plugin.reports.monthly.config.SystemDataConfig;
@@ -88,53 +90,6 @@
     Assert.assertEquals("P1,sbs-1,sbs-2,jira-1,jira-2,fe-1,fe-2\nP2,sbs-1,sbs-2,jira-1,jira-2,fe-1,fe-2\n", writer
         .toString());
 
-  }
-
-  /**
-   * Mock system data config used for {@link MockAggregator}.
-   */
-  protected static class MockSystemDataConfig extends SystemDataConfig {
-
-    protected MockSystemDataConfig(SystemId sid) {
-      super(sid);
-    }
-
-  }
-
-  /**
-   * Mock aggregator used on tests.
-   */
-  protected static class MockAggregator implements Aggregator<SystemDataConfig> {
-
-    public SystemId system;
-
-    public String prefix;
-
-    public int callcount = 0;
-
-    public MockAggregator(String prefix, SystemId system) {
-      this.prefix = prefix;
-      this.system = system;
-    }
-
-    public int checkCallCount() {
-      int ret = callcount;
-      callcount = 0;
-      return ret;
-    }
-
-    @Override
-    public String[] getHeaderValues() {
-      return new String[] { prefix + "-h1", prefix + "-h2" };
-    }
-
-    @Override
-    public String[] getReportValues(SystemDataConfig config) {
-      callcount++;
-      Assert.assertNotNull("config can't be null, probably bad passing of config", config);
-      Assert.assertEquals(system, config.getSystem());
-      return new String[] { prefix + "-1", prefix + "-2" };
-    }
   };
 
 }

Added: labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/test/java/org/jboss/community/sbs/plugin/reports/monthly/config/MockAggregator.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/test/java/org/jboss/community/sbs/plugin/reports/monthly/config/MockAggregator.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/test/java/org/jboss/community/sbs/plugin/reports/monthly/config/MockAggregator.java	2010-10-20 15:02:38 UTC (rev 35598)
@@ -0,0 +1,49 @@
+package org.jboss.community.sbs.plugin.reports.monthly.config;
+
+import org.jboss.community.sbs.plugin.reports.monthly.aggregator.Aggregator;
+import org.junit.Assert;
+
+/**
+ * Mock aggregator used on unit tests.
+ */
+public class MockAggregator implements Aggregator<SystemDataConfig> {
+
+  public SystemId system;
+
+  public String prefix;
+
+  public int callcount = 0;
+
+  /**
+   * @param prefix added to generated values
+   * @param system used to check passed {@link SystemDataConfig} in {@link #getReportValues(SystemDataConfig)}
+   */
+  public MockAggregator(String prefix, SystemId system) {
+    this.prefix = prefix;
+    this.system = system;
+  }
+
+  /**
+   * Return call count and reset this counter.
+   * 
+   * @return call count
+   */
+  public int checkCallCount() {
+    int ret = callcount;
+    callcount = 0;
+    return ret;
+  }
+
+  @Override
+  public String[] getHeaderValues() {
+    return new String[] { prefix + "-h1", prefix + "-h2" };
+  }
+
+  @Override
+  public String[] getReportValues(SystemDataConfig config) {
+    callcount++;
+    Assert.assertNotNull("config can't be null, probably bad passing of config", config);
+    Assert.assertEquals(system, config.getSystem());
+    return new String[] { prefix + "-1", prefix + "-2" };
+  }
+}
\ No newline at end of file

Added: labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/test/java/org/jboss/community/sbs/plugin/reports/monthly/config/MockSystemDataConfig.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/test/java/org/jboss/community/sbs/plugin/reports/monthly/config/MockSystemDataConfig.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/test/java/org/jboss/community/sbs/plugin/reports/monthly/config/MockSystemDataConfig.java	2010-10-20 15:02:38 UTC (rev 35598)
@@ -0,0 +1,12 @@
+package org.jboss.community.sbs.plugin.reports.monthly.config;
+
+/**
+ * Mock system data config used for {@link MockAggregator} in unit tests.
+ */
+public class MockSystemDataConfig extends SystemDataConfig {
+
+  public MockSystemDataConfig(SystemId sid) {
+    super(sid);
+  }
+
+}
\ No newline at end of file

Added: labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/test/java/org/jboss/community/sbs/plugin/reports/monthly/config/ProjectConfigTest.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/test/java/org/jboss/community/sbs/plugin/reports/monthly/config/ProjectConfigTest.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/test/java/org/jboss/community/sbs/plugin/reports/monthly/config/ProjectConfigTest.java	2010-10-20 15:02:38 UTC (rev 35598)
@@ -0,0 +1,70 @@
+package org.jboss.community.sbs.plugin.reports.monthly.config;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * Unit test for {@link ProjectConfig}.
+ * 
+ * @author Vlastimil Elias (velias at redhat dot com)
+ */
+public class ProjectConfigTest {
+
+  @Test
+  public void setName() {
+    ProjectConfig tested = new ProjectConfig();
+    tested.setName(null);
+    Assert.assertNull(tested.getName());
+
+    tested.setName("");
+    Assert.assertNull(tested.getName());
+
+    tested.setName(" ");
+    Assert.assertNull(tested.getName());
+
+    tested.setName("P1");
+    Assert.assertEquals("P1", tested.getName());
+
+    tested.setName("P1 ");
+    Assert.assertEquals("P1", tested.getName());
+  }
+
+  @Test
+  public void constructor() {
+    ProjectConfig tested = new ProjectConfig(null);
+    Assert.assertNull(tested.getName());
+
+    tested = new ProjectConfig("");
+    Assert.assertNull(tested.getName());
+
+    tested = new ProjectConfig(" ");
+    Assert.assertNull(tested.getName());
+
+    tested = new ProjectConfig("P1");
+    Assert.assertEquals("P1", tested.getName());
+
+    tested = new ProjectConfig("P1 ");
+    Assert.assertEquals("P1", tested.getName());
+  }
+
+  @Test
+  public void getSystemDataConfigFor() {
+    ProjectConfig tested = new ProjectConfig();
+
+    Assert.assertNull(tested.getSystemDataConfigFor(SystemId.JIRA));
+    Assert.assertNull(tested.getSystemDataConfigFor(SystemId.FISHEYE));
+    Assert.assertNull(tested.getSystemDataConfigFor(SystemId.SBS));
+
+    tested.addSystemDataConfig(new MockSystemDataConfig(SystemId.JIRA));
+    Assert.assertNotNull(tested.getSystemDataConfigFor(SystemId.JIRA));
+    Assert.assertNull(tested.getSystemDataConfigFor(SystemId.FISHEYE));
+    Assert.assertNull(tested.getSystemDataConfigFor(SystemId.SBS));
+    Assert.assertEquals(1, tested.getSystemDataConfig().size());
+
+    tested.addSystemDataConfig(new MockSystemDataConfig(SystemId.SBS));
+    Assert.assertNotNull(tested.getSystemDataConfigFor(SystemId.JIRA));
+    Assert.assertNull(tested.getSystemDataConfigFor(SystemId.FISHEYE));
+    Assert.assertNotNull(tested.getSystemDataConfigFor(SystemId.SBS));
+    Assert.assertEquals(2, tested.getSystemDataConfig().size());
+  }
+}

Added: labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/test/java/org/jboss/community/sbs/plugin/reports/monthly/config/ReportConfigTest.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/test/java/org/jboss/community/sbs/plugin/reports/monthly/config/ReportConfigTest.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs/reports/trunk/src/test/java/org/jboss/community/sbs/plugin/reports/monthly/config/ReportConfigTest.java	2010-10-20 15:02:38 UTC (rev 35598)
@@ -0,0 +1,46 @@
+package org.jboss.community.sbs.plugin.reports.monthly.config;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * Unit test for {@link ReportConfig}.
+ * 
+ * @author Vlastimil Elias (velias at redhat dot com)
+ */
+public class ReportConfigTest {
+
+  @Test
+  public void addProjectConfig() {
+    ReportConfig tested = new ReportConfig();
+
+    try {
+      tested.addProjectConfig(new ProjectConfig());
+      Assert.fail("IllegalArgumentException must be thrown");
+    } catch (IllegalArgumentException e) {
+      Assert.assertEquals(0, tested.getProjects().size());
+    }
+
+    try {
+      tested.addProjectConfig(new ProjectConfig(""));
+      Assert.fail("IllegalArgumentException must be thrown");
+    } catch (IllegalArgumentException e) {
+      Assert.assertEquals(0, tested.getProjects().size());
+    }
+
+    try {
+      tested.addProjectConfig(new ProjectConfig("  "));
+      Assert.fail("IllegalArgumentException must be thrown");
+    } catch (IllegalArgumentException e) {
+      Assert.assertEquals(0, tested.getProjects().size());
+    }
+
+    tested.addProjectConfig(new ProjectConfig("P1"));
+    Assert.assertEquals(1, tested.getProjects().size());
+
+    tested.addProjectConfig(new ProjectConfig("P2"));
+    Assert.assertEquals(2, tested.getProjects().size());
+
+  }
+
+}



More information about the jboss-svn-commits mailing list