You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by an...@apache.org on 2009/05/28 18:46:19 UTC
svn commit: r779659 -
/jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/value/QValueTest.java
Author: angela
Date: Thu May 28 16:46:19 2009
New Revision: 779659
URL: http://svn.apache.org/viewvc?rev=779659&view=rev
Log:
JCR-2115 new property types
JCR-1609 new Property Types
add tests for new property types
Modified:
jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/value/QValueTest.java
Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/value/QValueTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/value/QValueTest.java?rev=779659&r1=779658&r2=779659&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/value/QValueTest.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/value/QValueTest.java Thu May 28 16:46:19 2009
@@ -30,6 +30,9 @@
import java.io.FileWriter;
import java.util.Arrays;
import java.util.Calendar;
+import java.math.BigDecimal;
+import java.net.URI;
+import java.net.URISyntaxException;
import javax.jcr.PropertyType;
import javax.jcr.RepositoryException;
@@ -51,8 +54,9 @@
*/
public class QValueTest extends TestCase {
- private final Calendar CALENDAR = Calendar.getInstance();
+ private final Calendar CALENDAR = Calendar.getInstance();
private static final String REFERENCE = UUID.randomUUID().toString();
+ private static final String URI_STRING = "http://jackrabbit.apache.org";
private static final Path ROOT_PATH = PathFactoryImpl.getInstance().getRootPath();
private static final QValueFactory factory = QValueFactoryImpl.getInstance();
@@ -108,6 +112,62 @@
}
}
+ //------------------------------------------------------------< DECIMAL >---
+ public void testNullDecimalValue() throws IOException, RepositoryException {
+ try {
+ factory.create(null, PropertyType.DECIMAL);
+ fail();
+ } catch (IllegalArgumentException e) {
+ // ok
+ }
+ }
+
+ public void testCreateInvalidDecimalValue() throws RepositoryException {
+ try {
+ factory.create("any", PropertyType.DECIMAL);
+ fail("'any' cannot be converted to a valid decimal value.");
+ } catch (ValueFormatException e) {
+ // ok
+ }
+ }
+
+ public void testGetDecimalOnBooleanValue() throws RepositoryException {
+ try {
+ QValue v = factory.create(true);
+ v.getDecimal();
+ fail("'true' cannot be converted to a valid decimal value.");
+ } catch (ValueFormatException e) {
+ // ok
+ }
+ }
+
+ public void testGetDecimal() throws RepositoryException {
+ BigDecimal bd1 = new BigDecimal(Long.MAX_VALUE);
+ BigDecimal bd2 = new BigDecimal(Double.MIN_VALUE);
+
+ assertEquals(bd1, factory.create(bd1).getDecimal());
+ assertEquals(bd2, factory.create(bd2).getDecimal());
+
+ assertEquals(bd1, factory.create(Long.MAX_VALUE).getDecimal());
+ assertEquals(bd2, factory.create(Double.MIN_VALUE).getDecimal());
+ }
+
+ public void testGetDoubleOnDecimal() throws RepositoryException {
+ BigDecimal bd1 = new BigDecimal(Long.MAX_VALUE);
+ BigDecimal bd2 = new BigDecimal(Double.MIN_VALUE);
+
+ assertEquals(bd1.doubleValue(), factory.create(bd1).getDouble());
+ assertEquals(bd2.doubleValue(), factory.create(bd2).getDouble());
+ }
+
+ public void testGetLongOnDecimal() throws RepositoryException {
+ BigDecimal bd1 = new BigDecimal(Long.MAX_VALUE);
+ BigDecimal bd2 = new BigDecimal(Double.MIN_VALUE);
+
+ assertEquals(bd1.longValue(), factory.create(bd1).getLong());
+ assertEquals(bd2.longValue(), factory.create(bd2).getLong());
+ }
+
//------------------------------------------------------------< BOOLEAN >---
/**
* QValueImpl has a final static constant for the TRUE and the FALSE boolean
@@ -239,6 +299,65 @@
assertFalse(v.equals(v2));
}
+ //------------------------------------------------------< WEAKREFERENCE >---
+
+ public void testNullWeakReferenceValue() throws IOException, RepositoryException {
+ try {
+ factory.create(null, PropertyType.WEAKREFERENCE);
+ fail();
+ } catch (IllegalArgumentException e) {
+ // ok
+ }
+ }
+
+ public void testWeakReferenceValueType() throws RepositoryException {
+ QValue v = factory.create(REFERENCE, PropertyType.WEAKREFERENCE);
+ assertTrue("Type of a date value must be PropertyType.WEAKREFERENCE.", v.getType() == PropertyType.WEAKREFERENCE);
+ }
+
+ public void testWeakReferenceValueEquality() throws RepositoryException {
+ QValue v = factory.create(REFERENCE, PropertyType.WEAKREFERENCE);
+ QValue otherV = factory.create(REFERENCE, PropertyType.WEAKREFERENCE);
+ assertEquals("Qualified ref values created from the same string must be equal.", v, otherV);
+ }
+
+ public void testEqualityDifferentTypes2() throws RepositoryException {
+ QValue v = factory.create(REFERENCE, PropertyType.WEAKREFERENCE);
+ QValue v2 = factory.create(REFERENCE, PropertyType.STRING);
+ assertFalse(v.equals(v2));
+ }
+
+ //----------------------------------------------------------------< URI >---
+
+ public void testNullUriValue() throws IOException, RepositoryException {
+ try {
+ factory.create(null, PropertyType.URI);
+ fail();
+ } catch (IllegalArgumentException e) {
+ // ok
+ }
+ }
+
+ public void testUriValueType() throws RepositoryException, URISyntaxException {
+ QValue v = factory.create(URI_STRING, PropertyType.URI);
+ assertTrue("Type of a date value must be PropertyType.URI.", v.getType() == PropertyType.URI);
+ }
+
+ public void testUriValueEquality() throws RepositoryException, URISyntaxException {
+ QValue v = factory.create(URI_STRING, PropertyType.URI);
+ QValue otherV = factory.create(URI_STRING, PropertyType.URI);
+ assertEquals("Qualified uri values created from the same string must be equal.", v, otherV);
+
+ URI uri = new URI(URI_STRING);
+ v = factory.create(uri);
+ assertEquals("Qualified uri values created from the same string must be equal.", v, otherV);
+ }
+
+ public void testEqualityDifferentTypes3() throws RepositoryException {
+ QValue v = factory.create(URI_STRING, PropertyType.URI);
+ QValue v2 = factory.create(URI_STRING, PropertyType.STRING);
+ assertFalse(v.equals(v2));
+ }
//---------------------------------------------------------------< Name >---