Search in sources :

Example 11 with InternationalString

use of org.opengis.util.InternationalString in project sis by apache.

the class PropertyAccessorTest method testSetCollection.

/**
 * Tests the {@link PropertyAccessor#set(int, Object, Object, int)} method when the value
 * is a collection. The new collection shall replace the previous one (no merge expected).
 * The metadata object created by this test after the replacement is:
 *
 * {@preformat text
 *   DefaultCitation
 *     ├─Title……………………………………………………… Ignored title
 *     ├─Alternate title (1 of 2)…… New title 1
 *     └─Alternate title (2 of 2)…… New title 2
 * }
 *
 * @see #testSetInAppendMode()
 */
@Test
@DependsOnMethod("testSet")
public void testSetCollection() {
    final DefaultCitation instance = new DefaultCitation("Ignored title");
    final List<InternationalString> oldTitles = Arrays.<InternationalString>asList(new SimpleInternationalString("Old title 1"), new SimpleInternationalString("Old title 2"));
    final List<InternationalString> newTitles = Arrays.<InternationalString>asList(new SimpleInternationalString("New title 1"), new SimpleInternationalString("New title 2"));
    // Set the alternate titles.
    instance.setAlternateTitles(oldTitles);
    final PropertyAccessor accessor = createPropertyAccessor();
    final int index = accessor.indexOf("alternateTitles", true);
    final Object oldValue = accessor.set(index, instance, newTitles, RETURN_PREVIOUS);
    final Object newValue = accessor.get(index, instance);
    // Verify the values.
    assertEquals("set(…, RETURN_PREVIOUS)", oldTitles, oldValue);
    assertEquals("get(…)", newTitles, newValue);
    assertSame("alternateTitles", newValue, instance.getAlternateTitles());
    assertTitleEquals("title", "Ignored title", instance);
}
Also used : DefaultCitation(org.apache.sis.metadata.iso.citation.DefaultCitation) InternationalString(org.opengis.util.InternationalString) SimpleInternationalString(org.apache.sis.util.iso.SimpleInternationalString) SimpleInternationalString(org.apache.sis.util.iso.SimpleInternationalString) IdentifiedObject(org.opengis.referencing.IdentifiedObject) Test(org.junit.Test) DependsOnMethod(org.apache.sis.test.DependsOnMethod)

Example 12 with InternationalString

use of org.opengis.util.InternationalString in project sis by apache.

the class PropertyAccessorTest method testHashCode.

/**
 * Tests {@link PropertyAccessor#hashCode(Object)}.
 */
@Test
public void testHashCode() {
    final DefaultCitation instance = new DefaultCitation();
    final PropertyAccessor accessor = createPropertyAccessor();
    final int baseCode = Citation.class.hashCode();
    int hashCode = accessor.hashCode(instance);
    assertEquals("Empty metadata.", baseCode, hashCode);
    final InternationalString title = new SimpleInternationalString("Some title");
    instance.setTitle(title);
    hashCode = accessor.hashCode(instance);
    assertEquals("Metadata with a single value.", baseCode + title.hashCode(), hashCode);
    final InternationalString alternateTitle = new SimpleInternationalString("An other title");
    instance.setAlternateTitles(singleton(alternateTitle));
    hashCode = accessor.hashCode(instance);
    assertEquals("Metadata with two values.", baseCode + title.hashCode() + Arrays.asList(alternateTitle).hashCode(), hashCode);
}
Also used : DefaultCitation(org.apache.sis.metadata.iso.citation.DefaultCitation) InternationalString(org.opengis.util.InternationalString) SimpleInternationalString(org.apache.sis.util.iso.SimpleInternationalString) SimpleInternationalString(org.apache.sis.util.iso.SimpleInternationalString) Test(org.junit.Test)

Example 13 with InternationalString

use of org.opengis.util.InternationalString in project sis by apache.

the class PropertyAccessorTest method testSetIntoCollection.

/**
 * Tests the {@link PropertyAccessor#set(int, Object, Object, int)} method
 * when adding elements in a collection, with or without conversion of type.
 */
private static void testSetIntoCollection(final boolean conversion) {
    final String text1 = "An other title";
    final String text2 = "Yet an other title";
    final InternationalString title1 = new SimpleInternationalString(text1);
    final InternationalString title2 = new SimpleInternationalString(text2);
    final DefaultCitation instance = new DefaultCitation("Ignored title");
    final PropertyAccessor accessor = createPropertyAccessor();
    final int index = accessor.indexOf("alternateTitles", true);
    // Insert the first value. Old collection shall be empty.
    Object oldValue = accessor.set(index, instance, conversion ? text1 : title1, RETURN_PREVIOUS);
    assertInstanceOf("alternateTitles", Collection.class, oldValue);
    assertTrue("alternateTitles", ((Collection<?>) oldValue).isEmpty());
    // Insert the second value. Old collection shall contain the first value.
    oldValue = accessor.set(index, instance, conversion ? text2 : title2, RETURN_PREVIOUS);
    assertInstanceOf("alternateTitles", Collection.class, oldValue);
    oldValue = getSingleton((Collection<?>) oldValue);
    assertSame("alternateTitles", text1, oldValue.toString());
    if (!conversion) {
        assertSame("InternationalString should have been stored as-is.", title1, oldValue);
    }
    // Check final collection content.
    final List<InternationalString> expected = Arrays.asList(title1, title2);
    assertEquals("alternateTitles", expected, accessor.get(index, instance));
    assertTitleEquals("title", "Ignored title", instance);
}
Also used : InternationalString(org.opengis.util.InternationalString) SimpleInternationalString(org.apache.sis.util.iso.SimpleInternationalString) SimpleInternationalString(org.apache.sis.util.iso.SimpleInternationalString) DefaultCitation(org.apache.sis.metadata.iso.citation.DefaultCitation) Collection(java.util.Collection) IdentifiedObject(org.opengis.referencing.IdentifiedObject) InternationalString(org.opengis.util.InternationalString) SimpleInternationalString(org.apache.sis.util.iso.SimpleInternationalString)

Example 14 with InternationalString

use of org.opengis.util.InternationalString in project sis by apache.

the class PropertyInformationTest method validateTitle.

/**
 * Validates a property information for {@link Citation#getTitle()}.
 * This is validation code to be shared with {@link PropertyAccessorTest#testInformation()}.
 */
static void validateTitle(final ExtendedElementInformation information) {
    assertParentIsCitation(information);
    assertEquals("title", information.getName());
    final InternationalString definition = information.getDefinition();
    assertEquals("Name by which the cited resource is known.", definition.toString(Locale.ENGLISH));
    // Test other locale here, if any.
    assertInstanceOf("Specific to SIS implementation.", CheckedContainer.class, information);
    assertEquals(InternationalString.class, ((CheckedContainer<?>) information).getElementType());
    assertEquals(Datatype.CHARACTER_STRING, information.getDataType());
    assertEquals(Obligation.MANDATORY, information.getObligation());
    assertEquals(Integer.valueOf(1), information.getMaximumOccurrence());
    assertNull(information.getDomainValue());
}
Also used : InternationalString(org.opengis.util.InternationalString)

Example 15 with InternationalString

use of org.opengis.util.InternationalString in project sis by apache.

the class SpecialCasesTest method testPropertyInformation.

/**
 * Tests {@link SpecialCases#information(int)}.
 */
@Test
public void testPropertyInformation() {
    final ExtendedElementInformation info = accessor.information(accessor.indexOf("westBoundLongitude", true));
    final InternationalString domain = info.getDomainValue();
    assertInstanceOf("Expected numerical information about range.", NumberRange.class, domain);
    final NumberRange<?> range = (NumberRange) domain;
    assertEquals(-180, range.getMinDouble(), STRICT);
    assertEquals(+180, range.getMaxDouble(), STRICT);
}
Also used : NumberRange(org.apache.sis.measure.NumberRange) ExtendedElementInformation(org.opengis.metadata.ExtendedElementInformation) InternationalString(org.opengis.util.InternationalString) Test(org.junit.Test)

Aggregations

InternationalString (org.opengis.util.InternationalString)86 SimpleInternationalString (org.apache.sis.util.iso.SimpleInternationalString)20 Test (org.junit.Test)17 DefaultCitation (org.apache.sis.metadata.iso.citation.DefaultCitation)13 IdentifiedObject (org.opengis.referencing.IdentifiedObject)10 ArrayList (java.util.ArrayList)7 Locale (java.util.Locale)6 GenericName (org.opengis.util.GenericName)6 Extent (org.opengis.metadata.extent.Extent)5 DefaultDataIdentification (org.apache.sis.metadata.iso.identification.DefaultDataIdentification)4 DependsOnMethod (org.apache.sis.test.DependsOnMethod)4 Vocabulary (org.apache.sis.util.resources.Vocabulary)4 Citation (org.opengis.metadata.citation.Citation)4 IllegalArgumentException (com.sun.star.lang.IllegalArgumentException)3 ResultSet (java.sql.ResultSet)3 HashMap (java.util.HashMap)3 Map (java.util.Map)3 TableAppender (org.apache.sis.io.TableAppender)3 AbstractIdentifiedObject (org.apache.sis.referencing.AbstractIdentifiedObject)3 DataStoreException (org.apache.sis.storage.DataStoreException)3