This is an automated email from the ASF dual-hosted git repository.
vavrtom pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/qpid-broker-j.git
The following commit(s) were added to refs/heads/main by this push:
new 7049ac46e1 QPID-8756: [Broker-J] AMQP-1.0 unsigned classes should use
java 8+ APIs (#434)
7049ac46e1 is described below
commit 7049ac46e16a61ca57e9492fbd4c6d5e121a6d38
Author: Daniil Kirilyuk <[email protected]>
AuthorDate: Mon Sep 14 10:48:03 2026 +0200
QPID-8756: [Broker-J] AMQP-1.0 unsigned classes should use java 8+ APIs
(#434)
---
.../protocol/v1_0/codec/UnsignedIntegerWriter.java | 2 +-
.../server/protocol/v1_0/type/UnsignedByte.java | 4 +-
.../server/protocol/v1_0/type/UnsignedInteger.java | 17 +--
.../server/protocol/v1_0/type/UnsignedLong.java | 25 ++---
.../server/protocol/v1_0/type/UnsignedShort.java | 4 +-
.../v1_0/type/messaging/TerminusDurability.java | 2 +-
.../qpid/server/protocol/v1_0/Session_1_0Test.java | 6 +-
.../v1_0/StandardReceivingLinkEndpointTest.java | 2 +-
.../v1_0/codec/UnsignedIntegerWriterTest.java | 47 ++++++++
.../protocol/v1_0/store/LinkStoreTestCase.java | 4 +-
.../protocol/v1_0/type/UnsignedNumberTest.java | 120 +++++++++++++++++++++
.../SoleConnectionDetectionPolicyTest.java | 10 +-
.../SoleConnectionEnforcementPolicyTest.java | 10 +-
13 files changed, 207 insertions(+), 46 deletions(-)
diff --git
a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/UnsignedIntegerWriter.java
b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/UnsignedIntegerWriter.java
index 2470cdff1d..4c2a4856b0 100644
---
a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/UnsignedIntegerWriter.java
+++
b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/UnsignedIntegerWriter.java
@@ -57,7 +57,7 @@ public class UnsignedIntegerWriter
{
return ZERO_BYTE_WRITER;
}
- else if(uint.compareTo(UnsignedInteger.valueOf(256))<0)
+ else if(uint.longValue() < 256L)
{
return new UnsignedIntegerFixedOneWriter(uint);
}
diff --git
a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/UnsignedByte.java
b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/UnsignedByte.java
index 564ec317a9..d7c01f7984 100644
---
a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/UnsignedByte.java
+++
b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/UnsignedByte.java
@@ -36,6 +36,8 @@ public final class UnsignedByte extends Number implements
Comparable<UnsignedByt
}
}
+ /** Deprecated, use {@link UnsignedByte#valueOf(byte)}, planned for
removal in version 12.0.0 */
+ @Deprecated(forRemoval = true)
public UnsignedByte(byte underlying)
{
_underlying = underlying;
@@ -97,7 +99,7 @@ public final class UnsignedByte extends Number implements
Comparable<UnsignedByt
@Override
public int compareTo(UnsignedByte o)
{
- return Integer.signum(intValue() - o.intValue());
+ return Byte.compareUnsigned(_underlying, o._underlying);
}
@Override
diff --git
a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/UnsignedInteger.java
b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/UnsignedInteger.java
index 1afabbd108..85d97b0d42 100644
---
a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/UnsignedInteger.java
+++
b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/UnsignedInteger.java
@@ -40,7 +40,8 @@ public final class UnsignedInteger extends Number implements
Comparable<Unsigned
public static final UnsignedInteger ONE = cachedValues[1];
public static final UnsignedInteger MAX_VALUE = new
UnsignedInteger(0xffffffff);
-
+ /** Deprecated, use {@link UnsignedInteger#valueOf(int)}, planned for
removal in version 12.0.0 */
+ @Deprecated(forRemoval = true)
public UnsignedInteger(int underlying)
{
_underlying = underlying;
@@ -90,7 +91,7 @@ public final class UnsignedInteger extends Number implements
Comparable<Unsigned
@Override
public int compareTo(UnsignedInteger o)
{
- return Long.signum(longValue() - o.longValue());
+ return Integer.compareUnsigned(_underlying, o._underlying);
}
@Override
@@ -102,12 +103,16 @@ public final class UnsignedInteger extends Number
implements Comparable<Unsigned
@Override
public String toString()
{
- return String.valueOf(longValue());
+ return Integer.toUnsignedString(_underlying);
}
public static UnsignedInteger valueOf(int underlying)
{
- if((underlying & 0xFFFFFF00) == 0)
+ if (underlying == -1)
+ {
+ return MAX_VALUE;
+ }
+ else if (0 == (underlying & 0xFFFFFF00))
{
return cachedValues[underlying];
}
@@ -131,8 +136,8 @@ public final class UnsignedInteger extends Number
implements Comparable<Unsigned
public static UnsignedInteger valueOf(final String value)
{
- long longVal = Long.parseLong(value);
- return valueOf(longVal);
+ final int parsed = Integer.parseUnsignedInt(value);
+ return valueOf(parsed);
}
public static UnsignedInteger valueOf(final long longVal)
diff --git
a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/UnsignedLong.java
b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/UnsignedLong.java
index 975c0a1413..ed01f7f898 100644
---
a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/UnsignedLong.java
+++
b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/UnsignedLong.java
@@ -28,7 +28,6 @@ public final class UnsignedLong extends Number implements
Comparable<UnsignedLon
private static final long serialVersionUID = 1L;
private static final BigInteger TWO_TO_THE_SIXTY_FOUR = new BigInteger(
new byte[] { (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte)
0, (byte) 0, (byte) 0 });
- private static final BigInteger LONG_MAX_VALUE =
BigInteger.valueOf(Long.MAX_VALUE);
private static final UnsignedLong[] cachedValues = new UnsignedLong[256];
@@ -45,8 +44,8 @@ public final class UnsignedLong extends Number implements
Comparable<UnsignedLon
private final long _underlying;
-
-
+ /** Deprecated, use {@link UnsignedLong#valueOf(long)}, planned for
removal in version 12.0.0 */
+ @Deprecated(forRemoval = true)
public UnsignedLong(long underlying)
{
_underlying = underlying;
@@ -108,7 +107,7 @@ public final class UnsignedLong extends Number implements
Comparable<UnsignedLon
@Override
public int compareTo(UnsignedLong o)
{
- return bigIntegerValue().compareTo(o.bigIntegerValue());
+ return Long.compareUnsigned(_underlying, o._underlying);
}
@Override
@@ -120,7 +119,7 @@ public final class UnsignedLong extends Number implements
Comparable<UnsignedLon
@Override
public String toString()
{
- return String.valueOf(bigIntegerValue());
+ return Long.toUnsignedString(_underlying);
}
public static UnsignedLong valueOf(long underlying)
@@ -137,20 +136,8 @@ public final class UnsignedLong extends Number implements
Comparable<UnsignedLon
public static UnsignedLong valueOf(final String value)
{
- BigInteger bigInt = new BigInteger(value);
- if(bigInt.signum() == -1 || bigInt.bitCount()>64)
- {
- throw new NumberFormatException("Value \""+value+"\" lies outside
the range [" + 0L + "- 2^64).");
- }
- else if(bigInt.compareTo(LONG_MAX_VALUE)>=0)
- {
- return UnsignedLong.valueOf(bigInt.longValue());
- }
- else
- {
- return
UnsignedLong.valueOf(TWO_TO_THE_SIXTY_FOUR.subtract(bigInt).negate().longValue());
- }
-
+ final long parsed = Long.parseUnsignedLong(value);
+ return valueOf(parsed);
}
public UnsignedLong add(UnsignedLong unsignedLong)
diff --git
a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/UnsignedShort.java
b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/UnsignedShort.java
index 074ff53a40..da4d014ac2 100644
---
a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/UnsignedShort.java
+++
b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/UnsignedShort.java
@@ -93,7 +93,7 @@ public final class UnsignedShort extends Number implements
Comparable<UnsignedSh
@Override
public int compareTo(UnsignedShort o)
{
- return Integer.signum(intValue() - o.intValue());
+ return Short.compareUnsigned(_underlying, o._underlying);
}
@Override
@@ -105,7 +105,7 @@ public final class UnsignedShort extends Number implements
Comparable<UnsignedSh
@Override
public String toString()
{
- return String.valueOf(longValue());
+ return Integer.toString(intValue());
}
public static UnsignedShort valueOf(short underlying)
diff --git
a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/TerminusDurability.java
b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/TerminusDurability.java
index 38466ed5cf..dcc63e396c 100644
---
a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/TerminusDurability.java
+++
b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/TerminusDurability.java
@@ -101,6 +101,6 @@ public class TerminusDurability implements
RestrictedType<UnsignedInteger>
{
int durabilitAValue = durabilityA != null ?
durabilityA._val.intValue() : 0;
int durabilityBValue = durabilityB != null ?
durabilityB._val.intValue() : 0;
- return TerminusDurability.valueOf(new
UnsignedInteger(Math.min(durabilitAValue, durabilityBValue)));
+ return
TerminusDurability.valueOf(UnsignedInteger.valueOf(Math.min(durabilitAValue,
durabilityBValue)));
}
}
diff --git
a/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/Session_1_0Test.java
b/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/Session_1_0Test.java
index e054295d10..e520d4f735 100644
---
a/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/Session_1_0Test.java
+++
b/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/Session_1_0Test.java
@@ -1598,7 +1598,7 @@ class Session_1_0Test extends UnitTestBase
final Attach attach = new Attach();
final Target target = new Target();
attach.setTarget(target);
- attach.setHandle(new UnsignedInteger(_handle++));
+ attach.setHandle(UnsignedInteger.valueOf(_handle++));
attach.setIncompleteUnsettled(false);
attach.setName(linkName);
attach.setRole(Role.RECEIVER);
@@ -1658,7 +1658,7 @@ class Session_1_0Test extends UnitTestBase
final long incomingWindow)
{
final Begin begin = mock(Begin.class);
- when(begin.getNextOutgoingId()).thenReturn(new
UnsignedInteger(channelId));
+
when(begin.getNextOutgoingId()).thenReturn(UnsignedInteger.valueOf(channelId));
return new Session_1_0(connection, begin, channelId, channelId,
incomingWindow);
}
@@ -1694,7 +1694,7 @@ class Session_1_0Test extends UnitTestBase
final java.util.concurrent.Executor
executor)
{
final Begin begin = mock(Begin.class);
- when(begin.getNextOutgoingId()).thenReturn(new
UnsignedInteger(channelId));
+
when(begin.getNextOutgoingId()).thenReturn(UnsignedInteger.valueOf(channelId));
return new Session_1_0(connection, begin, channelId, channelId,
incomingWindow, echoFlowCoalesceIntervalMs,
clock, scheduler, executor);
}
diff --git
a/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/StandardReceivingLinkEndpointTest.java
b/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/StandardReceivingLinkEndpointTest.java
index 6060f3bb7a..0e2899b61a 100644
---
a/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/StandardReceivingLinkEndpointTest.java
+++
b/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/StandardReceivingLinkEndpointTest.java
@@ -171,7 +171,7 @@ public class StandardReceivingLinkEndpointTest extends
UnitTestBase
.getContextValue(Integer.class,
AMQPConnection_1_0.ECHO_FLOW_COALESCE_INTERVAL_MS);
final Begin begin = mock(Begin.class);
- doReturn(new UnsignedInteger(0)).when(begin).getNextOutgoingId();
+ doReturn(UnsignedInteger.valueOf(0)).when(begin).getNextOutgoingId();
final Session_1_0 session = spy(new Session_1_0(connection, begin, 0,
0, 1000L));
final Link_1_0<Source, Target> link = mock(Link_1_0.class);
diff --git
a/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/codec/UnsignedIntegerWriterTest.java
b/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/codec/UnsignedIntegerWriterTest.java
new file mode 100644
index 0000000000..2988e21112
--- /dev/null
+++
b/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/codec/UnsignedIntegerWriterTest.java
@@ -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.qpid.server.protocol.v1_0.codec;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import org.junit.jupiter.api.Test;
+
+import org.apache.qpid.server.protocol.v1_0.type.UnsignedInteger;
+import
org.apache.qpid.server.protocol.v1_0.type.codec.AMQPDescribedTypeRegistry;
+
+class UnsignedIntegerWriterTest
+{
+ private static final AMQPDescribedTypeRegistry TYPE_REGISTRY =
AMQPDescribedTypeRegistry.newInstance();
+
+ @Test
+ void encodingChangesAtSmallUnsignedIntegerBoundary()
+ {
+ assertEquals(2, getEncodedSize(255));
+ assertEquals(5, getEncodedSize(256));
+ }
+
+ private static int getEncodedSize(final int value)
+ {
+ final ValueWriter<UnsignedInteger> writer =
TYPE_REGISTRY.getValueWriter(UnsignedInteger.valueOf(value));
+ return writer.getEncodedSize();
+ }
+}
diff --git
a/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/store/LinkStoreTestCase.java
b/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/store/LinkStoreTestCase.java
index ceb22124d7..e05a1c6684 100644
---
a/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/store/LinkStoreTestCase.java
+++
b/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/store/LinkStoreTestCase.java
@@ -74,9 +74,9 @@ public abstract class LinkStoreTestCase extends UnitTestBase
_source.setFilter(Map.of(Symbol.valueOf("foo"),
NoLocalFilter.INSTANCE));
_source.setOutcomes(new Accepted().getSymbol());
_source.setDynamicNodeProperties(Map.of(Symbol.valueOf("dynamicProperty"),
"dynamicPropertyValue"));
- _source.setTimeout(new UnsignedInteger(1));
+ _source.setTimeout(UnsignedInteger.valueOf(1));
- _target.setTimeout(new UnsignedInteger(2));
+ _target.setTimeout(UnsignedInteger.valueOf(2));
_target.setDynamicNodeProperties(Map.of(Symbol.valueOf("targetDynamicProperty"),
"targetDynamicPropertyValue"));
_target.setDynamic(Boolean.TRUE);
_target.setExpiryPolicy(TerminusExpiryPolicy.LINK_DETACH);
diff --git
a/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/type/UnsignedNumberTest.java
b/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/type/UnsignedNumberTest.java
new file mode 100644
index 0000000000..eefe197749
--- /dev/null
+++
b/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/type/UnsignedNumberTest.java
@@ -0,0 +1,120 @@
+/*
+ *
+ * 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.qpid.server.protocol.v1_0.type;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import org.junit.jupiter.api.Test;
+
+import org.apache.qpid.test.utils.UnitTestBase;
+
+class UnsignedNumberTest extends UnitTestBase
+{
+ private static final String TWO_TO_THE_THIRTY_ONE_MINUS_ONE = "2147483647";
+ private static final String TWO_TO_THE_THIRTY_ONE = "2147483648";
+ private static final String TWO_TO_THE_THIRTY_TWO_MINUS_ONE = "4294967295";
+ private static final String TWO_TO_THE_THIRTY_TWO = "4294967296";
+ private static final String TWO_TO_THE_SIXTY_THREE_MINUS_ONE =
"9223372036854775807";
+ private static final String TWO_TO_THE_SIXTY_THREE = "9223372036854775808";
+ private static final String TWO_TO_THE_SIXTY_FOUR_MINUS_ONE =
"18446744073709551615";
+ private static final String TWO_TO_THE_SIXTY_FOUR = "18446744073709551616";
+
+ @Test
+ void unsignedIntegerParsingAcceptsBoundaryValues()
+ {
+ assertUnsignedIntegerRoundTrip("0", 0);
+ assertUnsignedIntegerRoundTrip(TWO_TO_THE_THIRTY_ONE_MINUS_ONE,
Integer.MAX_VALUE);
+ assertUnsignedIntegerRoundTrip(TWO_TO_THE_THIRTY_ONE,
Integer.MIN_VALUE);
+ assertUnsignedIntegerRoundTrip(TWO_TO_THE_THIRTY_TWO_MINUS_ONE, -1);
+ }
+
+ @Test
+ void unsignedIntegerParsingRejectsOutOfRangeValues()
+ {
+ assertThrows(NumberFormatException.class, () ->
UnsignedInteger.valueOf(TWO_TO_THE_THIRTY_TWO));
+ assertThrows(NumberFormatException.class, () ->
UnsignedInteger.valueOf("-1"));
+ }
+
+ @Test
+ void unsignedLongParsingAcceptsBoundaryValues()
+ {
+ assertUnsignedLongRoundTrip("0", 0L);
+ assertUnsignedLongRoundTrip(TWO_TO_THE_SIXTY_THREE_MINUS_ONE,
Long.MAX_VALUE);
+ assertUnsignedLongRoundTrip(TWO_TO_THE_SIXTY_THREE, Long.MIN_VALUE);
+ assertUnsignedLongRoundTrip(TWO_TO_THE_SIXTY_FOUR_MINUS_ONE, -1L);
+ }
+
+ @Test
+ void unsignedLongParsingRejectsOutOfRangeValues()
+ {
+ assertThrows(NumberFormatException.class, () ->
UnsignedLong.valueOf(TWO_TO_THE_SIXTY_FOUR));
+ assertThrows(NumberFormatException.class, () ->
UnsignedLong.valueOf("-1"));
+ }
+
+ @Test
+ void unsignedByteComparisonCrossesSignedBoundary()
+ {
+ assertUnsignedOrder(UnsignedByte.valueOf(Byte.MAX_VALUE),
UnsignedByte.valueOf(Byte.MIN_VALUE));
+ }
+
+ @Test
+ void unsignedShortComparisonCrossesSignedBoundary()
+ {
+ assertUnsignedOrder(UnsignedShort.valueOf(Short.MAX_VALUE),
UnsignedShort.valueOf(Short.MIN_VALUE));
+ }
+
+ @Test
+ void unsignedIntegerComparisonCrossesSignedBoundary()
+ {
+ assertUnsignedOrder(UnsignedInteger.valueOf(Integer.MAX_VALUE),
UnsignedInteger.valueOf(Integer.MIN_VALUE));
+ }
+
+ @Test
+ void unsignedLongComparisonCrossesSignedBoundary()
+ {
+ assertUnsignedOrder(UnsignedLong.valueOf(Long.MAX_VALUE),
UnsignedLong.valueOf(Long.MIN_VALUE));
+ }
+
+ private static void assertUnsignedIntegerRoundTrip(final String encoded,
final int underlying)
+ {
+ final UnsignedInteger value = UnsignedInteger.valueOf(encoded);
+
+ assertEquals(underlying, value.intValue());
+ assertEquals(encoded, value.toString());
+ }
+
+ private static void assertUnsignedLongRoundTrip(final String encoded,
final long underlying)
+ {
+ final UnsignedLong value = UnsignedLong.valueOf(encoded);
+
+ assertEquals(underlying, value.longValue());
+ assertEquals(encoded, value.toString());
+ }
+
+ private static <T extends Comparable<T>> void assertUnsignedOrder(final T
lower, final T higher)
+ {
+ assertTrue(lower.compareTo(higher) < 0);
+ assertTrue(higher.compareTo(lower) > 0);
+ }
+}
diff --git
a/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/type/extensions/soleconn/SoleConnectionDetectionPolicyTest.java
b/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/type/extensions/soleconn/SoleConnectionDetectionPolicyTest.java
index d54110bf30..1b35c0e13f 100644
---
a/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/type/extensions/soleconn/SoleConnectionDetectionPolicyTest.java
+++
b/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/type/extensions/soleconn/SoleConnectionDetectionPolicyTest.java
@@ -32,20 +32,20 @@ class SoleConnectionDetectionPolicyTest extends UnitTestBase
@Test
void value()
{
- assertEquals(new UnsignedInteger(0),
SoleConnectionDetectionPolicy.STRONG.getValue());
- assertEquals(new UnsignedInteger(1),
SoleConnectionDetectionPolicy.WEAK.getValue());
+ assertEquals(UnsignedInteger.valueOf(0),
SoleConnectionDetectionPolicy.STRONG.getValue());
+ assertEquals(UnsignedInteger.valueOf(1),
SoleConnectionDetectionPolicy.WEAK.getValue());
}
@Test
void valueOf()
{
assertEquals(SoleConnectionDetectionPolicy.STRONG,
- SoleConnectionDetectionPolicy.valueOf(new UnsignedInteger(0)));
+
SoleConnectionDetectionPolicy.valueOf(UnsignedInteger.valueOf(0)));
assertEquals(SoleConnectionDetectionPolicy.WEAK,
- SoleConnectionDetectionPolicy.valueOf(new UnsignedInteger(1)));
+
SoleConnectionDetectionPolicy.valueOf(UnsignedInteger.valueOf(1)));
final RuntimeException thrown = assertThrows(RuntimeException.class,
- () -> SoleConnectionDetectionPolicy.valueOf(new
UnsignedInteger(2)),
+ () ->
SoleConnectionDetectionPolicy.valueOf(UnsignedInteger.valueOf(2)),
"An exception is expected");
assertNotNull(thrown.getMessage());
}
diff --git
a/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/type/extensions/soleconn/SoleConnectionEnforcementPolicyTest.java
b/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/type/extensions/soleconn/SoleConnectionEnforcementPolicyTest.java
index 61371ccf9f..e6df579047 100644
---
a/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/type/extensions/soleconn/SoleConnectionEnforcementPolicyTest.java
+++
b/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/type/extensions/soleconn/SoleConnectionEnforcementPolicyTest.java
@@ -32,20 +32,20 @@ class SoleConnectionEnforcementPolicyTest extends
UnitTestBase
@Test
void value()
{
- assertEquals(new UnsignedInteger(0),
SoleConnectionEnforcementPolicy.REFUSE_CONNECTION.getValue());
- assertEquals(new UnsignedInteger(1),
SoleConnectionEnforcementPolicy.CLOSE_EXISTING.getValue());
+ assertEquals(UnsignedInteger.valueOf(0),
SoleConnectionEnforcementPolicy.REFUSE_CONNECTION.getValue());
+ assertEquals(UnsignedInteger.valueOf(1),
SoleConnectionEnforcementPolicy.CLOSE_EXISTING.getValue());
}
@Test
void valueOf()
{
assertEquals(SoleConnectionEnforcementPolicy.REFUSE_CONNECTION,
- SoleConnectionEnforcementPolicy.valueOf(new
UnsignedInteger(0)));
+
SoleConnectionEnforcementPolicy.valueOf(UnsignedInteger.valueOf(0)));
assertEquals(SoleConnectionEnforcementPolicy.CLOSE_EXISTING,
- SoleConnectionEnforcementPolicy.valueOf(new
UnsignedInteger(1)));
+
SoleConnectionEnforcementPolicy.valueOf(UnsignedInteger.valueOf(1)));
final RuntimeException thrown = assertThrows(RuntimeException.class,
- () -> SoleConnectionEnforcementPolicy.valueOf(new
UnsignedInteger(2)),
+ () ->
SoleConnectionEnforcementPolicy.valueOf(UnsignedInteger.valueOf(2)),
"An exception is expected");
assertNotNull(thrown.getMessage());
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]