You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sis.apache.org by de...@apache.org on 2014/04/30 19:13:23 UTC

svn commit: r1591400 - in /sis/branches/JDK8/core/sis-feature: ./ src/main/java/org/apache/sis/feature/ src/test/java/org/ src/test/java/org/apache/ src/test/java/org/apache/sis/ src/test/java/org/apache/sis/feature/ src/test/java/org/apache/sis/test/ ...

Author: desruisseaux
Date: Wed Apr 30 17:13:23 2014
New Revision: 1591400

URL: http://svn.apache.org/r1591400
Log:
Added tests and package javadoc.

Added:
    sis/branches/JDK8/core/sis-feature/src/main/java/org/apache/sis/feature/package-info.java   (with props)
    sis/branches/JDK8/core/sis-feature/src/test/java/org/
    sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/
    sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/sis/
    sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/sis/feature/
    sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/sis/feature/DefaultAttributeTypeTest.java   (with props)
    sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/sis/feature/DefaultFeatureTest.java   (with props)
    sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/sis/feature/DefaultFeatureTypeTest.java   (with props)
    sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/sis/test/
    sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/sis/test/suite/
    sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/sis/test/suite/FeatureTestSuite.java   (with props)
    sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/sis/test/suite/package-info.txt
      - copied unchanged from r1590469, sis/branches/JDK8/storage/sis-storage/src/test/java/org/apache/sis/test/suite/package-info.txt
Modified:
    sis/branches/JDK8/core/sis-feature/pom.xml
    sis/branches/JDK8/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultFeature.java

Modified: sis/branches/JDK8/core/sis-feature/pom.xml
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-feature/pom.xml?rev=1591400&r1=1591399&r2=1591400&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-feature/pom.xml (original)
+++ sis/branches/JDK8/core/sis-feature/pom.xml Wed Apr 30 17:13:23 2014
@@ -98,6 +98,19 @@ Representations of geographic features.
       <groupId>com.esri.geometry</groupId>
       <artifactId>esri-geometry-api</artifactId>
     </dependency>
+
+    <!-- Test dependencies -->
+    <dependency>
+      <groupId>org.opengis</groupId>
+      <artifactId>geoapi-conformance</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.sis.core</groupId>
+      <artifactId>sis-utility</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
 
 </project>

Modified: sis/branches/JDK8/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultFeature.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultFeature.java?rev=1591400&r1=1591399&r2=1591400&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultFeature.java [UTF-8] (original)
+++ sis/branches/JDK8/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultFeature.java [UTF-8] Wed Apr 30 17:13:23 2014
@@ -18,12 +18,16 @@ package org.apache.sis.feature;
 
 import java.util.Map;
 import java.util.HashMap;
+import java.util.ConcurrentModificationException;
 import java.io.Serializable;
 import org.apache.sis.util.Debug;
 import org.apache.sis.util.ArgumentChecks;
 import org.apache.sis.util.resources.Errors;
 import org.apache.sis.util.collection.Containers;
 
+// Related to JDK7
+import java.util.Objects;
+
 
 /**
  * An instance of {@linkplain DefaultFeatureType feature type} containing values for a real-world phenomena.
@@ -42,7 +46,7 @@ public class DefaultFeature implements S
     private static final long serialVersionUID = 6594295132544357870L;
 
     /**
-     * Information about the feature.
+     * Information about the feature (name, characteristics, <i>etc.</i>).
      */
     private final DefaultFeatureType type;
 
@@ -54,7 +58,7 @@ public class DefaultFeature implements S
     /**
      * Creates a new features.
      *
-     * @param type Information about the feature.
+     * @param type Information about the feature (name, characteristics, <i>etc.</i>).
      */
     public DefaultFeature(final DefaultFeatureType type) {
         ArgumentChecks.ensureNonNull("type", type);
@@ -63,6 +67,15 @@ public class DefaultFeature implements S
     }
 
     /**
+     * Returns information about the feature (name, characteristics, <i>etc.</i>).
+     *
+     * @return Information about the feature.
+     */
+    public DefaultFeatureType getType() {
+        return type;
+    }
+
+    /**
      * Returns the value of the attribute of the given name.
      *
      * @param  name The attribute name.
@@ -70,7 +83,14 @@ public class DefaultFeature implements S
      */
     public Object getAttributeValue(final String name) {
         final DefaultAttribute<?> attribute = properties.get(name);
-        return (attribute != null) ? attribute.getValue() : null;
+        if (attribute == null) {
+            final DefaultAttributeType<?> at = type.getProperty(name);
+            if (at == null) {
+                throw new IllegalArgumentException(propertyNotFound(name));
+            }
+            return at.getDefaultValue();
+        }
+        return attribute.getValue();
     }
 
     /**
@@ -83,20 +103,30 @@ public class DefaultFeature implements S
     public void setAttributeValue(final String name, final Object value) {
         DefaultAttribute<?> attribute = properties.get(name);
         if (attribute == null) {
-            if (value == null) {
-                return;
-            }
             final DefaultAttributeType<?> at = type.getProperty(name);
             if (at == null) {
-                throw new IllegalArgumentException(Errors.format(Errors.Keys.PropertyNotFound_2, type.getName(), name));
+                throw new IllegalArgumentException(propertyNotFound(name));
+            }
+            if (Objects.equals(value, at.getDefaultValue())) {
+                return; // Avoid creating the attribute if not necessary.
             }
             attribute = new DefaultAttribute<>(at);
+            if (properties.put(name, attribute) != null) {
+                throw new ConcurrentModificationException();
+            }
         }
         ArgumentChecks.ensureCanCast(name, attribute.getType().getValueClass(), value);
         ((DefaultAttribute) attribute).setValue(value);
     }
 
     /**
+     * Returns the error message for a property not found.
+     */
+    private String propertyNotFound(final String name) {
+        return Errors.format(Errors.Keys.PropertyNotFound_2, type.getName(), name);
+    }
+
+    /**
      * Returns a hash code value for this feature.
      *
      * @return A hash code value.

Added: sis/branches/JDK8/core/sis-feature/src/main/java/org/apache/sis/feature/package-info.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-feature/src/main/java/org/apache/sis/feature/package-info.java?rev=1591400&view=auto
==============================================================================
--- sis/branches/JDK8/core/sis-feature/src/main/java/org/apache/sis/feature/package-info.java (added)
+++ sis/branches/JDK8/core/sis-feature/src/main/java/org/apache/sis/feature/package-info.java [UTF-8] Wed Apr 30 17:13:23 2014
@@ -0,0 +1,46 @@
+/*
+ * 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.
+ */
+
+/**
+ * Defines the structure and content of views of real-world phenomenon.
+ * The phenomenon to represent (or a fundamental unit of information) is called <cite>a feature</cite>.
+ * The term “feature” may be used in different contexts:
+ *
+ * <ul>
+ *   <li>{@linkplain org.apache.sis.feature.DefaultFeatureType Feature types} define the <em>structure</em> of a
+ *       real-world representation. A feature type lists the attributes, operations, or associations to other
+ *       features (collectively called “properties”) that a feature can have.
+ *
+ *       <div class="note"><b>Note:</b> a {@code FeatureType} in a Spatial Information System is equivalent to a
+ *       {@link java.lang.Class} in the Java language. By extension, {@code AttributeType} and {@code OperationType}
+ *       are equivalent to {@link java.lang.reflect.Field} and {@link java.lang.reflect.Method} respectively.</div></li>
+ *
+ *   <li>{@linkplain org.apache.sis.feature.DefaultFeature Feature instances} holds the <em>content</em> (or values)
+ *       that describe one specific real-world object. For example the “Eiffel tower” is a feature <em>instance</em>
+ *       belonging to the “Tower” feature <em>type</em>.
+ *
+ *       <div class="note"><b>Note:</b> feature instances are often called only {@code Feature}s.</div></li>
+ * </ul>
+ *
+ * @author  Travis L. Pinney
+ * @author  Johann Sorel (Geomatys)
+ * @author  Martin Desruisseaux (Geomatys)
+ * @since   0.5
+ * @version 0.5
+ * @module
+ */
+package org.apache.sis.feature;

Propchange: sis/branches/JDK8/core/sis-feature/src/main/java/org/apache/sis/feature/package-info.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/branches/JDK8/core/sis-feature/src/main/java/org/apache/sis/feature/package-info.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain;charset=UTF-8

Added: sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/sis/feature/DefaultAttributeTypeTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/sis/feature/DefaultAttributeTypeTest.java?rev=1591400&view=auto
==============================================================================
--- sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/sis/feature/DefaultAttributeTypeTest.java (added)
+++ sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/sis/feature/DefaultAttributeTypeTest.java [UTF-8] Wed Apr 30 17:13:23 2014
@@ -0,0 +1,92 @@
+/*
+ * 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.sis.feature;
+
+import java.util.Map;
+import java.util.HashMap;
+import java.util.Locale;
+import org.opengis.util.LocalName;
+import org.opengis.util.GenericName;
+import org.opengis.util.InternationalString;
+import org.apache.sis.measure.NumberRange;
+import org.apache.sis.test.TestCase;
+import org.junit.Test;
+
+import static org.opengis.test.Assert.*;
+
+
+/**
+ * Tests {@link DefaultAttributeType}.
+ *
+ * @author  Martin Desruisseaux (Geomatys)
+ * @since   0.5
+ * @version 0.5
+ * @module
+ */
+public final strictfp class DefaultAttributeTypeTest extends TestCase {
+    /**
+     * Creates an attribute type for city name.
+     *
+     * @param properties An empty temporary map (provided only for recycling existing instances).
+     */
+    static DefaultAttributeType<String> city(final Map<String,Object> properties) {
+        assertNull(properties.put(DefaultAttributeType.NAME_KEY, "city"));
+        assertNull(properties.put(DefaultAttributeType.DESIGNATION_KEY + "_en", "City"));
+        assertNull(properties.put(DefaultAttributeType.DESIGNATION_KEY + "_fr", "Ville"));
+        assertNull(properties.put(DefaultAttributeType.DESIGNATION_KEY + "_ja", "都市"));
+        assertNull(properties.put(DefaultAttributeType.DEFINITION_KEY  + "_en", "The name of the city."));
+        assertNull(properties.put(DefaultAttributeType.DEFINITION_KEY  + "_fr", "Le nom de la ville."));
+        assertNull(properties.put(DefaultAttributeType.DEFINITION_KEY  + "_ja", "都市の名前。"));
+        assertNull(properties.put(DefaultAttributeType.DESCRIPTION_KEY, "Some verbose description."));
+        final DefaultAttributeType<String> city = new DefaultAttributeType<>(properties,
+                String.class, "Utopia", NumberRange.create(1, true, 1, true));
+        properties.clear();
+        return city;
+    }
+
+    /**
+     * Tests the creation of a simple {@link DefaultAttributeType} instance for a mandatory singleton.
+     */
+    @Test
+    public void testMandatorySingleton() {
+        final DefaultAttributeType<String> city = city(new HashMap<>());
+        final GenericName name = city.getName();
+        assertInstanceOf("city.name", LocalName.class, name);
+        assertEquals("city.name", "city", name.toString());
+
+        InternationalString p = city.getDesignation();
+        assertNotNull("designation", p);
+        assertEquals("designation", "City",  p.toString(Locale.ENGLISH));
+        assertEquals("designation", "Ville", p.toString(Locale.FRENCH));
+        assertEquals("designation", "都市",   p.toString(Locale.JAPANESE));
+
+        p = city.getDefinition();
+        assertEquals("definition",  "The name of the city.", p.toString(Locale.ENGLISH));
+        assertEquals("definition",  "Le nom de la ville.", p.toString(Locale.FRENCH));
+        assertEquals("definition",  "都市の名前。", p.toString(Locale.JAPANESE));
+
+        p = city.getDescription();
+        assertEquals("description",  "Some verbose description.", p.toString(Locale.ENGLISH));
+        assertEquals("valueClass",   String.class, city.getValueClass());
+        assertEquals("defaultValue", "Utopia",     city.getDefaultValue());
+
+        final NumberRange<Integer> cardinality = city.getCardinality();
+        assertNotNull("cardinality", cardinality);
+        assertEquals("cardinality.minValue", Integer.valueOf(1), cardinality.getMinValue());
+        assertEquals("cardinality.maxValue", Integer.valueOf(1), cardinality.getMaxValue());
+    }
+}

Propchange: sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/sis/feature/DefaultAttributeTypeTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/sis/feature/DefaultAttributeTypeTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain;charset=UTF-8

Added: sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/sis/feature/DefaultFeatureTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/sis/feature/DefaultFeatureTest.java?rev=1591400&view=auto
==============================================================================
--- sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/sis/feature/DefaultFeatureTest.java (added)
+++ sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/sis/feature/DefaultFeatureTest.java [UTF-8] Wed Apr 30 17:13:23 2014
@@ -0,0 +1,51 @@
+/*
+ * 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.sis.feature;
+
+import org.apache.sis.test.DependsOn;
+import org.apache.sis.test.TestCase;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+
+/**
+ * Tests {@link DefaultFeature}.
+ *
+ * @author  Martin Desruisseaux (Geomatys)
+ * @since   0.5
+ * @version 0.5
+ * @module
+ */
+@DependsOn(DefaultFeatureTypeTest.class)
+public final strictfp class DefaultFeatureTest extends TestCase {
+    /**
+     * Tests the construction of a simple feature without super-types.
+     */
+    @Test
+    public void testSimple() {
+        final DefaultFeature simple = new DefaultFeature(DefaultFeatureTypeTest.simple());
+
+        assertEquals("Utopia", simple.getAttributeValue("city"));
+        simple.setAttributeValue("city", "Atlantide");
+        assertEquals("Atlantide", simple.getAttributeValue("city"));
+
+        assertNull(simple.getAttributeValue("population"));
+        simple.setAttributeValue("population", 1000);
+        assertEquals(1000, simple.getAttributeValue("population"));
+    }
+}

Propchange: sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/sis/feature/DefaultFeatureTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/sis/feature/DefaultFeatureTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain;charset=UTF-8

Added: sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/sis/feature/DefaultFeatureTypeTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/sis/feature/DefaultFeatureTypeTest.java?rev=1591400&view=auto
==============================================================================
--- sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/sis/feature/DefaultFeatureTypeTest.java (added)
+++ sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/sis/feature/DefaultFeatureTypeTest.java [UTF-8] Wed Apr 30 17:13:23 2014
@@ -0,0 +1,104 @@
+/*
+ * 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.sis.feature;
+
+import java.util.Map;
+import java.util.HashMap;
+import java.util.List;
+import org.apache.sis.measure.NumberRange;
+import org.apache.sis.test.DependsOnMethod;
+import org.apache.sis.test.DependsOn;
+import org.apache.sis.test.TestCase;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+import static java.util.Collections.singletonMap;
+
+
+/**
+ * Tests {@link DefaultFeatureType}.
+ *
+ * @author  Martin Desruisseaux (Geomatys)
+ * @since   0.5
+ * @version 0.5
+ * @module
+ */
+@DependsOn(DefaultAttributeTypeTest.class)
+public final strictfp class DefaultFeatureTypeTest extends TestCase {
+    /**
+     * Creates a simple feature type without super-types.
+     */
+    static DefaultFeatureType simple() {
+        final Map<String,Object> properties = new HashMap<>();
+        final DefaultAttributeType<String> city = DefaultAttributeTypeTest.city(properties);
+
+        properties.clear();
+        assertNull(properties.put(DefaultAttributeType.NAME_KEY, "population"));
+        final DefaultAttributeType<Integer> population = new DefaultAttributeType<>(
+                properties, Integer.class, null, NumberRange.create(1, true, 1, true));
+
+        properties.clear();
+        assertNull(properties.put(DefaultAttributeType.NAME_KEY, "City population"));
+        return new DefaultFeatureType(properties, false, null, city, population);
+    }
+
+    /**
+     * Tests the construction of a simple feature without super-types.
+     */
+    @Test
+    public void testSimple() {
+        final DefaultFeatureType simple = simple();
+        assertEquals("name", "City population", simple.getName().toString());
+        /*
+         * Verify content.
+         */
+        final List<DefaultAttributeType<?>> characteristics = simple.getCharacteristics();
+        assertEquals("characteristics.size", 2, characteristics.size());
+        assertEquals("characteristics[0]", "city",       characteristics.get(0).getName().toString());
+        assertEquals("characteristics[1]", "population", characteristics.get(1).getName().toString());
+        /*
+         * Verify search by name.
+         */
+        assertSame(characteristics.get(0), simple.getProperty("city"));
+        assertSame(characteristics.get(1), simple.getProperty("population"));
+        assertNull(simple.getProperty("apple"));
+    }
+
+    /**
+     * Ensures that we can not use two property with the same name.
+     */
+    @Test
+    @DependsOnMethod("testSimple")
+    public void testNameCollision() {
+        final NumberRange<Integer> cardinality = NumberRange.create(1, true, 1, true);
+        final DefaultAttributeType<String> city = new DefaultAttributeType<>(
+                singletonMap(DefaultAttributeType.NAME_KEY, "city"), String.class, null, cardinality);
+        final DefaultAttributeType<Integer> cityId = new DefaultAttributeType<>(
+                singletonMap(DefaultAttributeType.NAME_KEY, "city"), Integer.class, null, cardinality);
+        final DefaultAttributeType<Integer> population = new DefaultAttributeType<>(
+                singletonMap(DefaultAttributeType.NAME_KEY, "population"), Integer.class, null, cardinality);
+
+        final Map<String,String> properties = singletonMap(DefaultAttributeType.NAME_KEY, "City population");
+        try {
+            new DefaultFeatureType(properties, false, null, city, population, cityId);
+            fail("Duplicated attribute names shall not be allowed.");
+        } catch (IllegalArgumentException e) {
+            final String message = e.getMessage();
+            assertTrue(message, message.contains("city"));
+        }
+    }
+}

Propchange: sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/sis/feature/DefaultFeatureTypeTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/sis/feature/DefaultFeatureTypeTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain;charset=UTF-8

Added: sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/sis/test/suite/FeatureTestSuite.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/sis/test/suite/FeatureTestSuite.java?rev=1591400&view=auto
==============================================================================
--- sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/sis/test/suite/FeatureTestSuite.java (added)
+++ sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/sis/test/suite/FeatureTestSuite.java [UTF-8] Wed Apr 30 17:13:23 2014
@@ -0,0 +1,47 @@
+/*
+ * 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.sis.test.suite;
+
+import org.apache.sis.test.TestSuite;
+import org.junit.runners.Suite;
+import org.junit.BeforeClass;
+
+
+/**
+ * All tests from the {@code sis-feature} module, in approximative dependency order.
+ *
+ * @author  Martin Desruisseaux (Geomatys)
+ * @since   0.5
+ * @version 0.5
+ * @module
+ */
+@Suite.SuiteClasses({
+    org.apache.sis.feature.DefaultAttributeTypeTest.class,
+    org.apache.sis.feature.DefaultFeatureTypeTest.class,
+    org.apache.sis.feature.DefaultFeatureTest.class
+})
+public final strictfp class FeatureTestSuite extends TestSuite {
+    /**
+     * Verifies the list of tests before to run the suite.
+     * See {@link #verifyTestList(Class, Class[])} for more information.
+     */
+    @BeforeClass
+    public static void verifyTestList() {
+        assertNoMissingTest(FeatureTestSuite.class);
+        verifyTestList(FeatureTestSuite.class);
+    }
+}

Propchange: sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/sis/test/suite/FeatureTestSuite.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/branches/JDK8/core/sis-feature/src/test/java/org/apache/sis/test/suite/FeatureTestSuite.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain;charset=UTF-8