From af226b820c4f28ad465048cc8636341604927fcc Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Wed, 12 Nov 2014 10:06:43 +0000
Subject: [PATCH] OPENDJ-1591 (CR-5206) Switch to SDK matching rules
---
opendj-core/src/test/java/org/forgerock/opendj/ldap/ByteSequenceTestCase.java | 13 +++----------
opendj-core/src/test/java/org/forgerock/opendj/ldap/ByteStringTestCase.java | 39 +++++++++++++++++++++++++++++++++------
opendj-core/src/main/java/org/forgerock/opendj/ldap/ByteSequence.java | 8 ++++++++
3 files changed, 44 insertions(+), 16 deletions(-)
diff --git a/opendj-core/src/main/java/org/forgerock/opendj/ldap/ByteSequence.java b/opendj-core/src/main/java/org/forgerock/opendj/ldap/ByteSequence.java
index ce217f6..7305bc7 100755
--- a/opendj-core/src/main/java/org/forgerock/opendj/ldap/ByteSequence.java
+++ b/opendj-core/src/main/java/org/forgerock/opendj/ldap/ByteSequence.java
@@ -36,6 +36,14 @@
*/
public interface ByteSequence extends Comparable<ByteSequence> {
+ /** A byte array comparator. */
+ public static final Comparator<byte[]> BYTE_ARRAY_COMPARATOR = new Comparator<byte[]>() {
+ @Override
+ public int compare(final byte[] b1, final byte[] b2) {
+ return ByteString.compareTo(b1, 0, b1.length, b2, 0, b2.length);
+ }
+ };
+
/** A ByteSequence comparator. */
public static final Comparator<ByteSequence> COMPARATOR = new Comparator<ByteSequence>() {
@Override
diff --git a/opendj-core/src/test/java/org/forgerock/opendj/ldap/ByteSequenceTestCase.java b/opendj-core/src/test/java/org/forgerock/opendj/ldap/ByteSequenceTestCase.java
index c04d578..9de5758 100644
--- a/opendj-core/src/test/java/org/forgerock/opendj/ldap/ByteSequenceTestCase.java
+++ b/opendj-core/src/test/java/org/forgerock/opendj/ldap/ByteSequenceTestCase.java
@@ -22,12 +22,11 @@
*
*
* Copyright 2010 Sun Microsystems, Inc.
+ * Portions copyright 2014 ForgeRock AS
*/
-
package org.forgerock.opendj.ldap;
import java.io.ByteArrayOutputStream;
-import java.io.UnsupportedEncodingException;
import java.util.Arrays;
import javax.xml.bind.DatatypeConverter;
@@ -158,14 +157,8 @@
}
@Test(dataProvider = "byteSequenceProvider")
- public void testToString(final ByteSequence bs, final byte[] ba) {
- String str;
- try {
- str = new String(ba, "UTF-8");
- } catch (final UnsupportedEncodingException uee) {
- str = new String(ba);
- }
-
+ public void testToString(final ByteSequence bs, final byte[] ba) throws Exception {
+ String str = new String(ba, "UTF-8");
Assert.assertTrue(bs.toString().equals(str));
}
diff --git a/opendj-core/src/test/java/org/forgerock/opendj/ldap/ByteStringTestCase.java b/opendj-core/src/test/java/org/forgerock/opendj/ldap/ByteStringTestCase.java
index 77264ae..e141d06 100644
--- a/opendj-core/src/test/java/org/forgerock/opendj/ldap/ByteStringTestCase.java
+++ b/opendj-core/src/test/java/org/forgerock/opendj/ldap/ByteStringTestCase.java
@@ -22,13 +22,10 @@
*
*
* Copyright 2010 Sun Microsystems, Inc.
- * Portions copyright 2011-2012 ForgeRock AS
+ * Portions copyright 2011-2014 ForgeRock AS
*/
-
package org.forgerock.opendj.ldap;
-import static org.fest.assertions.Assertions.*;
-
import java.util.Arrays;
import javax.xml.bind.DatatypeConverter;
@@ -38,6 +35,8 @@
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
+import static org.fest.assertions.Assertions.*;
+
/**
* This class defines a set of tests for the ByteString class.
*/
@@ -229,11 +228,28 @@
+ "8PHy8/T19vf4+fr7/P3+/w==" }, };
}
+ @DataProvider
+ public Object[][] comparatorTest() throws Exception {
+ final Object[][] array = byteSequenceProvider();
+ int len = array.length;
+ final Object[][] result = new Object[len + 4][];
+ for (int i = 0; i < array.length; i++) {
+ final Object[] original = array[i];
+ final Object[] copy = Arrays.copyOf(original, original.length + 1);
+ copy[original.length] = 0;
+ result[i] = copy;
+ }
+ result[len++] = new Object[] { ByteString.empty(), new byte[0], 0 };
+ result[len++] = new Object[] { ByteString.empty(), "bla".getBytes("UTF8"), -3 };
+ result[len++] = new Object[] { ByteString.valueOf("bla"), new byte[0], 3 };
+ result[len++] = new Object[] { ByteString.valueOf("bla"), "bla".getBytes("UTF8"), 0 };
+ return result;
+ }
+
@Test(dataProvider = "invalidBase64Data",
expectedExceptions = { LocalizedIllegalArgumentException.class })
public void testValueOfBase64ThrowsLIAE(final String invalidBase64) throws Exception {
- Assert.fail("Expected exception but got result: "
- + Arrays.toString(new ByteString[] { ByteString.valueOfBase64(invalidBase64) }));
+ ByteString.valueOfBase64(invalidBase64);
}
@Test(dataProvider = "validBase64Data")
@@ -271,4 +287,15 @@
public void testValueOfInvalidHex() {
ByteString.valueOfHex("636E3D746573x7476616C7565");
}
+
+ @Test(dataProvider = "comparatorTest")
+ public void testComparator(final ByteSequence bs, final byte[] ba, final int expectedCmp) throws Exception {
+ assertThat(ByteSequence.COMPARATOR.compare(bs, ByteString.wrap(ba))).isEqualTo(expectedCmp);
+ }
+
+ @Test(dataProvider = "comparatorTest")
+ public void testByteArrayComparator(final ByteSequence bs, final byte[] ba, final int expectedCmp)
+ throws Exception {
+ assertThat(ByteSequence.BYTE_ARRAY_COMPARATOR.compare(bs.toByteArray(), ba)).isEqualTo(expectedCmp);
+ }
}
--
Gitblit v1.10.0