diff --git a/source/java/org/alfresco/repo/web/scripts/solr/StatsGet.java b/source/java/org/alfresco/repo/web/scripts/solr/StatsGet.java
index c528561c29..290684e353 100644
--- a/source/java/org/alfresco/repo/web/scripts/solr/StatsGet.java
+++ b/source/java/org/alfresco/repo/web/scripts/solr/StatsGet.java
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2005-2014 Alfresco Software Limited.
+ *
+ * This file is part of Alfresco
+ *
+ * Alfresco is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Alfresco is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Alfresco. If not, see .
+ */
package org.alfresco.repo.web.scripts.solr;
import java.util.HashMap;
@@ -24,8 +42,6 @@ import org.springframework.extensions.webscripts.WebScriptRequest;
* You can pass one of these facets in eg. facet=content.creator . The facet name can be used as a I18n resource bundle key,
* it also has a predefined structure: group.property[.type] eg. content.created.datetime. The [.type] is optional, the default is String.
*
- * The facets are configured using Spring config. For Dates it may be necessary to display a different value from the one you use to query,
- * in this case add the value to the "displayedFacets" map.
* @author Gethin James
*/
public class StatsGet extends DeclarativeWebScript
@@ -34,17 +50,11 @@ public class StatsGet extends DeclarativeWebScript
private StatsService stats;
private SiteService siteService;
private Map facets;
- // private Map displayedFacets; //alternative facets to use for display
-
+
public void setFacets(Map facets)
{
this.facets = facets;
}
-//
-// public void setDisplayedFacets(Map displayedFacets)
-// {
-// this.displayedFacets = displayedFacets;
-// }
public void setStats(StatsService stats)
{
@@ -82,7 +92,6 @@ public class StatsGet extends DeclarativeWebScript
String facetKey = req.getParameter("facet");
if (facetKey == null) facetKey = facets.entrySet().iterator().next().getKey(); //default
- //boolean usesDateTime = (facetKey != null && facetKey.endsWith(DATE_TIME_SUFFIX));
String query;
QName propFacet = findFacet(facetKey);
@@ -98,7 +107,6 @@ public class StatsGet extends DeclarativeWebScript
model.put("result", result);
model.put("resultSize", result.getStats().size());
- //model.put("isDate", startAndEnd!=null);
return model;
}
@@ -113,18 +121,8 @@ public class StatsGet extends DeclarativeWebScript
{
throw new AccessDeniedException("Invalid facet key:"+facetKey);
}
-
- //If there is an alternative facet to use for display then use it.
-// if (displayedFacets.containsKey(facetKey))
-// {
-// QName propFacet = QName.createQName(displayedFacets.get(facetKey));
-// return propFacet;
-// }
-// else
-// {
- QName propFacet = QName.createQName(facets.get(facetKey));
- return propFacet;
- // }
+ QName propFacet = QName.createQName(facets.get(facetKey));
+ return propFacet;
}
@@ -136,7 +134,7 @@ public class StatsGet extends DeclarativeWebScript
if (startEndDate != null)
{
//QName propFacet = QName.createQName(facets.get(facetKey));
- String dateFacet = "{http://www.alfresco.org/model/content/1.0}created";//hard coded for now.
+ String dateFacet = ContentModel.PROP_CREATED.toString();//hard coded for now.
luceneQuery.append(" AND "+dateFacet.toString()+":(\""+startEndDate.getFirst()+"\"..\""+startEndDate.getSecond()+"\")");
}
@@ -164,7 +162,7 @@ public class StatsGet extends DeclarativeWebScript
/**
* Allows you to add a facet to the list of available facets for Solr Statistics
* @param facetKey e.g. content.mimetype
- * @param facetType e.g. @{http://www.alfresco.org/model/content/1.0}content.mimetype
+ * @param facetType e.g. {http://www.alfresco.org/model/content/1.0}content.mimetype
*/
public void addFacet(String facetKey, String facetType)
{
diff --git a/source/test-java/org/alfresco/remoteapi/AllUnitTestsSuite.java b/source/test-java/org/alfresco/remoteapi/AllUnitTestsSuite.java
index 9350fcfaf8..baa8faf2b7 100644
--- a/source/test-java/org/alfresco/remoteapi/AllUnitTestsSuite.java
+++ b/source/test-java/org/alfresco/remoteapi/AllUnitTestsSuite.java
@@ -4,6 +4,7 @@ import junit.framework.JUnit4TestAdapter;
import junit.framework.Test;
import junit.framework.TestSuite;
+import org.alfresco.repo.web.scripts.solr.StatsGetTest;
import org.alfresco.repo.web.util.PagingCursorTest;
import org.alfresco.repo.web.util.paging.PagingTest;
import org.alfresco.repo.webdav.GetMethodTest;
@@ -32,6 +33,7 @@ public class AllUnitTestsSuite extends TestSuite
webdavTests(suite);
pagingTests(suite);
+ suite.addTest(new JUnit4TestAdapter(StatsGetTest.class));
return suite;
}
diff --git a/source/test-java/org/alfresco/repo/web/scripts/solr/StatsGetTest.java b/source/test-java/org/alfresco/repo/web/scripts/solr/StatsGetTest.java
new file mode 100644
index 0000000000..ae000d0c63
--- /dev/null
+++ b/source/test-java/org/alfresco/repo/web/scripts/solr/StatsGetTest.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2005-2014 Alfresco Software Limited.
+ *
+ * This file is part of Alfresco
+ *
+ * Alfresco is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Alfresco is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Alfresco. If not, see .
+ */
+package org.alfresco.repo.web.scripts.solr;
+
+import static org.junit.Assert.*;
+
+import org.alfresco.util.Pair;
+import org.joda.time.LocalDate;
+import org.junit.Test;
+
+/**
+ * Tests StatsGet Webscript
+ *
+ * @author Gethin James
+ * @since 5.0
+ */
+public class StatsGetTest
+{
+
+ @Test
+ public void testGetStartAndEndDates()
+ {
+ LocalDate currentDate = LocalDate.now();
+ Pair dates = StatsGet.getStartAndEndDates(null, null);
+ assertNull(dates);
+
+ String test1 = "2014-05-01";
+ String test2 = "2015-06-30";
+ dates = StatsGet.getStartAndEndDates(test1, null);
+ assertNotNull(dates);
+ assertEquals(2014, dates.getFirst().getYear());
+ assertEquals(5, dates.getFirst().getMonthOfYear());
+ assertEquals(1, dates.getFirst().getDayOfMonth());
+ assertEquals(currentDate, dates.getSecond());
+
+ dates = StatsGet.getStartAndEndDates(null, test2);
+ assertNull(dates);
+
+ dates = StatsGet.getStartAndEndDates(test1, test2);
+ assertNotNull(dates);
+ assertEquals(2014, dates.getFirst().getYear());
+ assertEquals(5, dates.getFirst().getMonthOfYear());
+ assertEquals(1, dates.getFirst().getDayOfMonth());
+ assertNotNull(dates);
+ assertEquals(2015, dates.getSecond().getYear());
+ assertEquals(6, dates.getSecond().getMonthOfYear());
+ assertEquals(30, dates.getSecond().getDayOfMonth());
+ }
+
+ @Test(expected=IllegalArgumentException.class)
+ public void testGetStartAndEndDatesWithRubbish()
+ {
+ Pair dates = StatsGet.getStartAndEndDates("rubbish", "more");
+ assertNotNull(dates);
+ }
+
+}