You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@creadur.apache.org by rd...@apache.org on 2011/12/01 22:41:57 UTC
svn commit: r1209261 - in /incubator/rat/whisker/trunk:
apache-whisker-model/src/main/java/org/apache/rat/whisker/model/
apache-whisker-xml/src/main/java/org/apache/rat/whisker/fromxml/
apache-whisker-xml/src/test/java/org/apache/rat/whisker/fromxml/
Author: rdonkin
Date: Thu Dec 1 21:41:56 2011
New Revision: 1209261
URL: http://svn.apache.org/viewvc?rev=1209261&view=rev
Log:
Build license
Added:
incubator/rat/whisker/trunk/apache-whisker-xml/src/test/java/org/apache/rat/whisker/fromxml/JDomBuilderLicenseTest.java (with props)
Modified:
incubator/rat/whisker/trunk/apache-whisker-model/src/main/java/org/apache/rat/whisker/model/License.java
incubator/rat/whisker/trunk/apache-whisker-xml/src/main/java/org/apache/rat/whisker/fromxml/JDomBuilder.java
Modified: incubator/rat/whisker/trunk/apache-whisker-model/src/main/java/org/apache/rat/whisker/model/License.java
URL: http://svn.apache.org/viewvc/incubator/rat/whisker/trunk/apache-whisker-model/src/main/java/org/apache/rat/whisker/model/License.java?rev=1209261&r1=1209260&r2=1209261&view=diff
==============================================================================
--- incubator/rat/whisker/trunk/apache-whisker-model/src/main/java/org/apache/rat/whisker/model/License.java (original)
+++ incubator/rat/whisker/trunk/apache-whisker-model/src/main/java/org/apache/rat/whisker/model/License.java Thu Dec 1 21:41:56 2011
@@ -35,13 +35,13 @@ public class License implements Comparab
private final String url;
private final String name;
- private License(boolean isSourceRequired, String baseText,
+ public License(boolean isSourceRequired, String baseText,
Collection<String> expectedParameters, String id, String url,
String name) {
super();
this.isSourceRequired = isSourceRequired;
this.baseText = baseText;
- this.expectedParameters = expectedParameters;
+ this.expectedParameters = Collections.unmodifiableCollection(expectedParameters);
this.id = id;
this.url = url;
this.name = name;
@@ -58,6 +58,10 @@ public class License implements Comparab
public String getText(final Map<String, String> parameters) throws LicenseTemplateException {
return substituteInto(validate(parameters), baseText);
}
+
+ public Collection<String> getExpectedParameters() {
+ return expectedParameters;
+ }
/**
* @param parameters
Modified: incubator/rat/whisker/trunk/apache-whisker-xml/src/main/java/org/apache/rat/whisker/fromxml/JDomBuilder.java
URL: http://svn.apache.org/viewvc/incubator/rat/whisker/trunk/apache-whisker-xml/src/main/java/org/apache/rat/whisker/fromxml/JDomBuilder.java?rev=1209261&r1=1209260&r2=1209261&view=diff
==============================================================================
--- incubator/rat/whisker/trunk/apache-whisker-xml/src/main/java/org/apache/rat/whisker/fromxml/JDomBuilder.java (original)
+++ incubator/rat/whisker/trunk/apache-whisker-xml/src/main/java/org/apache/rat/whisker/fromxml/JDomBuilder.java Thu Dec 1 21:41:56 2011
@@ -20,6 +20,7 @@ package org.apache.rat.whisker.fromxml;
import java.util.Collection;
import java.util.Collections;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.SortedSet;
@@ -27,6 +28,7 @@ import java.util.TreeSet;
import org.apache.commons.lang3.StringUtils;
import org.apache.rat.whisker.model.ByOrganisation;
+import org.apache.rat.whisker.model.License;
import org.apache.rat.whisker.model.Organisation;
import org.apache.rat.whisker.model.Resource;
import org.jdom.Element;
@@ -153,4 +155,31 @@ public class JDomBuilder {
}
return Collections.unmodifiableSortedSet(results);
}
+
+ /**
+ * Builds a license model from xml.
+ * @param element not null
+ * @return not null
+ */
+ public License license(Element element) {
+ final Element text = element.getChild("text");
+ return new License("yes".equalsIgnoreCase(element.getAttributeValue("requires-source")),
+ text == null ? "" : text.getText(),
+ expectedParameters(element),
+ element.getAttributeValue("id"),
+ element.getAttributeValue("url"),
+ element.getAttributeValue("name"));
+ }
+
+ @SuppressWarnings("unchecked")
+ private Collection<String> expectedParameters(final Element element) {
+ final Collection<String> results = new HashSet<String>();
+ final Element templateElement = element.getChild("template");
+ if (templateElement != null) {
+ for (Element parameterNameElement: (List<Element>) templateElement.getChildren("parameter-name")) {
+ results.add(parameterNameElement.getTextTrim());
+ }
+ }
+ return results;
+ }
}
Added: incubator/rat/whisker/trunk/apache-whisker-xml/src/test/java/org/apache/rat/whisker/fromxml/JDomBuilderLicenseTest.java
URL: http://svn.apache.org/viewvc/incubator/rat/whisker/trunk/apache-whisker-xml/src/test/java/org/apache/rat/whisker/fromxml/JDomBuilderLicenseTest.java?rev=1209261&view=auto
==============================================================================
--- incubator/rat/whisker/trunk/apache-whisker-xml/src/test/java/org/apache/rat/whisker/fromxml/JDomBuilderLicenseTest.java (added)
+++ incubator/rat/whisker/trunk/apache-whisker-xml/src/test/java/org/apache/rat/whisker/fromxml/JDomBuilderLicenseTest.java Thu Dec 1 21:41:56 2011
@@ -0,0 +1,161 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.rat.whisker.fromxml;
+
+import org.apache.rat.whisker.model.License;
+import org.jdom.CDATA;
+import org.jdom.Element;
+
+import junit.framework.TestCase;
+
+/**
+ *
+ */
+public class JDomBuilderLicenseTest extends TestCase {
+
+ private JDomBuilder subject;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ subject = new JDomBuilder();
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ }
+
+ public void testLicenseWithNameUrl() throws Exception {
+ checkSetNameUrlId("a name", "some url", "some id");
+ checkSetNameUrlId("name", "url", "id");
+ checkSetNameUrlId("NAME", "URL", "ID");
+ checkSetNameUrlId("a name", " some url ", " some id ");
+ }
+
+ /**
+ * @param nameValue
+ * @param urlValue
+ * @param idValue
+ */
+ private void checkSetNameUrlId(final String nameValue,
+ final String urlValue, final String idValue) {
+ final License result = subject.license(new Element("license")
+ .setAttribute("name", nameValue)
+ .setAttribute("url", urlValue)
+ .setAttribute("id", idValue));
+ assertNotNull("Builder should build", result);
+ assertEquals("Set id", idValue, result.getId());
+ assertEquals("Set url", urlValue, result.getURL());
+ assertEquals("Set name", nameValue, result.getName());
+ }
+
+ public void testLicenseRequiresSourceTrue() throws Exception {
+ assertTrue("Expected required source to be set", licenseWithSource("yes").isSourceRequired());
+ }
+
+ public void testLicenseRequiresSourceTrueAllCaps() throws Exception {
+ assertTrue("Expected required source to be set even when yes is in all caps case. This is against the schema.",
+ licenseWithSource("YES").isSourceRequired());
+ }
+
+ public void testLicenseRequiresSourceTrueMixedCase() throws Exception {
+ assertTrue("Expected required source to be set even when yes is in mixed case. This is against the schema.",
+ licenseWithSource("Yes").isSourceRequired());
+ }
+
+ public void testLicenseRequiresSourceFalse() throws Exception {
+ assertFalse("Expected required source to be set", licenseWithSource("no").isSourceRequired());
+ }
+
+ public void testLicenseRequiresSourceDefault() throws Exception {
+ final License result = subject.license(new Element("license")
+ .setAttribute("name", "name Value")
+ .setAttribute("url", "urlValue")
+ .setAttribute("id", "idValue"));
+ assertNotNull("Builder should build", result);
+ assertFalse("Expected to default to false", result.isSourceRequired());
+ }
+
+ /**
+ * @param requireSourceValue
+ * @return
+ */
+ private License licenseWithSource(final String requireSourceValue) {
+ final License result = subject.license(new Element("license")
+ .setAttribute("name", "name Value")
+ .setAttribute("url", "urlValue")
+ .setAttribute("id", "idValue")
+ .setAttribute("requires-source", requireSourceValue));
+ assertNotNull("Builder should build", result);
+ return result;
+ }
+
+ public void testLicenseNoParameters() throws Exception {
+ final License result = subject.license(new Element("license")
+ .setAttribute("name", "name Value")
+ .setAttribute("url", "urlValue")
+ .setAttribute("id", "idValue")
+ .setContent(new Element("template")));
+ assertNotNull("Builder should build", result);
+ assertNotNull("Builder should always set parameters even when empty", result.getExpectedParameters());
+ assertTrue("No parameters in template so collection should be empty", result.getExpectedParameters().isEmpty());
+ }
+
+ public void testLicenseOneParameter() throws Exception {
+ final String parameterName = "whatever";
+ final License result = subject.license(new Element("license")
+ .setAttribute("name", "name Value")
+ .setAttribute("url", "urlValue")
+ .setAttribute("id", "idValue")
+ .setContent(new Element("template").setContent(new Element("parameter-name").setContent(new CDATA(parameterName)))));
+ assertNotNull("Builder should build", result);
+ assertNotNull("Builder should always set parameters even when empty", result.getExpectedParameters());
+ assertEquals("One parameters in template", 1, result.getExpectedParameters().size());
+ assertEquals("Parameter name should be set from xml", parameterName, result.getExpectedParameters().iterator().next());
+ }
+
+ public void testLicenseTwoParameters() throws Exception {
+ final String parameterName = "whatever";
+ final License result = subject.license(new Element("license")
+ .setAttribute("name", "name Value")
+ .setAttribute("url", "urlValue")
+ .setAttribute("id", "idValue")
+ .setContent(new Element("template")
+ .addContent(new Element("parameter-name").setContent(new CDATA(parameterName)))
+ .addContent(new Element("parameter-name").setContent(new CDATA(parameterName + "2")))
+ ));
+ assertNotNull("Builder should build", result);
+ assertNotNull("Builder should always set parameters even when empty", result.getExpectedParameters());
+ assertEquals("One parameters in template", 2, result.getExpectedParameters().size());
+ }
+
+
+ public void testLicenseBaseText() throws Exception {
+ final String text = "Some text";
+ final License result = subject.license(new Element("license")
+ .setAttribute("name", "name Value")
+ .setAttribute("url", "urlValue")
+ .setAttribute("id", "idValue")
+ .setContent(new Element("text").setContent(new CDATA(text))));
+ assertNotNull("Builder should build", result);
+ assertEquals("Expected base text to be set", text, result.getText());
+ }
+
+}
Propchange: incubator/rat/whisker/trunk/apache-whisker-xml/src/test/java/org/apache/rat/whisker/fromxml/JDomBuilderLicenseTest.java
------------------------------------------------------------------------------
svn:eol-style = native