This is an automated email from the ASF dual-hosted git repository.
tabish pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/qpid-protonj2.git
The following commit(s) were added to refs/heads/main by this push:
new 27aa5a43 PROTON-2569 Fixes and some tests for client options clone API
27aa5a43 is described below
commit 27aa5a4397c6406e49ca775b97488e1366da345b
Author: Timothy Bish <[email protected]>
AuthorDate: Wed Jun 22 17:09:38 2022 -0400
PROTON-2569 Fixes and some tests for client options clone API
---
.../apache/qpid/protonj2/client/ClientOptions.java | 8 ++--
.../qpid/protonj2/client/ConnectionOptions.java | 8 ++--
.../qpid/protonj2/client/OutputStreamOptions.java | 6 +--
.../qpid/protonj2/client/ReceiverOptions.java | 6 +--
.../qpid/protonj2/client/ReconnectOptions.java | 11 +++--
.../apache/qpid/protonj2/client/SenderOptions.java | 6 +--
.../qpid/protonj2/client/SessionOptions.java | 6 +--
.../apache/qpid/protonj2/client/SourceOptions.java | 6 +--
.../apache/qpid/protonj2/client/SslOptions.java | 2 +-
.../protonj2/client/StreamReceiverOptions.java | 6 +--
.../qpid/protonj2/client/StreamSenderOptions.java | 6 +--
.../apache/qpid/protonj2/client/TargetOptions.java | 6 +--
.../qpid/protonj2/client/ClientOptionsTest.java} | 46 +++++++++++----------
.../protonj2/client/ConnectionOptionsTest.java} | 46 +++++++++++----------
.../protonj2/client/RecconnectOptionsTest.java} | 46 +++++++++++----------
...slOptionsTest.java => ReceiverOptionsTest.java} | 41 ++++++------------
.../qpid/protonj2/client/SaslOptionsTest.java | 2 +
.../qpid/protonj2/client/SenderOptionsTest.java | 48 ++++++++++++++++++++++
.../qpid/protonj2/client/SessionOptionsTest.java | 48 ++++++++++++++++++++++
.../qpid/protonj2/client/SourceOptionsTest.java} | 43 +++++++++----------
.../qpid/protonj2/client/SslOptionsTest.java | 5 ++-
.../protonj2/client/StreamReceiverOptionsTest.java | 48 ++++++++++++++++++++++
.../protonj2/client/StreamSenderOptionsTest.java | 48 ++++++++++++++++++++++
.../qpid/protonj2/client/TargetOptionsTest.java} | 43 +++++++++----------
.../qpid/protonj2/client/TransportOptionsTest.java | 6 ++-
25 files changed, 376 insertions(+), 171 deletions(-)
diff --git
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/ClientOptions.java
b/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/ClientOptions.java
index 6c612c23..4d475cec 100644
---
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/ClientOptions.java
+++
b/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/ClientOptions.java
@@ -19,7 +19,7 @@ package org.apache.qpid.protonj2.client;
/**
* Container Options for customizing the behavior of the Container
*/
-public class ClientOptions {
+public class ClientOptions implements Cloneable {
private String id;
private String futureType;
@@ -95,12 +95,12 @@ public class ClientOptions {
* @param other
* the target of this copy operation.
*
- * @return this options class for chaining.
+ * @return the {@link ClientOptions} instance that was given.
*/
- public ClientOptions copyInto(ClientOptions other) {
+ protected ClientOptions copyInto(ClientOptions other) {
other.id(id);
other.futureType(futureType);
- return this;
+ return other;
}
}
diff --git
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/ConnectionOptions.java
b/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/ConnectionOptions.java
index da4bf222..f369cb59 100644
---
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/ConnectionOptions.java
+++
b/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/ConnectionOptions.java
@@ -29,9 +29,9 @@ import
org.apache.qpid.protonj2.client.exceptions.ClientSendTimedOutException;
import org.apache.qpid.protonj2.types.transport.Open;
/**
- * Options that control the behaviour of the {@link Connection} created from
them.
+ * Options that control the behavior of the {@link Connection} created from
them.
*/
-public class ConnectionOptions {
+public class ConnectionOptions implements Cloneable {
/**
* Default value for the AMQP desired capabilities set in the Open frame.
@@ -111,7 +111,7 @@ public class ConnectionOptions {
* @param other
* the target of this copy operation.
*
- * @return this {@link ConnectionOptions} instance.
+ * @return the {@link ConnectionOptions} instance that was given.
*/
protected ConnectionOptions copyInto(ConnectionOptions other) {
other.closeTimeout(closeTimeout);
@@ -146,7 +146,7 @@ public class ConnectionOptions {
sasl.copyInto(other.saslOptions());
reconnect.copyInto(other.reconnectOptions());
- return this;
+ return other;
}
/**
diff --git
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/OutputStreamOptions.java
b/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/OutputStreamOptions.java
index 5dc2da1b..6900b0dd 100644
---
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/OutputStreamOptions.java
+++
b/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/OutputStreamOptions.java
@@ -24,7 +24,7 @@ import org.apache.qpid.protonj2.types.messaging.Footer;
* Options class that controls various aspects of a {@link OutputStream}
instance created to write
* the contents of a section of a {@link StreamSenderMessage}.
*/
-public class OutputStreamOptions {
+public class OutputStreamOptions implements Cloneable {
/**
* Defines the default value for the complete parent {@link
StreamSenderMessage} on close option
@@ -65,13 +65,13 @@ public class OutputStreamOptions {
* @param other
* the target of this copy operation.
*
- * @return this {@link OutputStreamOptions} class for chaining.
+ * @return the {@link OutputStreamOptions} that was given.
*/
protected OutputStreamOptions copyInto(OutputStreamOptions other) {
other.bodyLength(streamSize);
other.completeSendOnClose(completeSendOnClose);
- return this;
+ return other;
}
/**
diff --git
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/ReceiverOptions.java
b/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/ReceiverOptions.java
index fa7f3879..78f58e0d 100644
---
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/ReceiverOptions.java
+++
b/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/ReceiverOptions.java
@@ -21,7 +21,7 @@ import java.util.concurrent.TimeUnit;
/**
* Options that control the behavior of the {@link Receiver} created from them.
*/
-public class ReceiverOptions extends LinkOptions<ReceiverOptions> {
+public class ReceiverOptions extends LinkOptions<ReceiverOptions> implements
Cloneable {
private long drainTimeout = ConnectionOptions.DEFAULT_DRAIN_TIMEOUT;
private boolean autoAccept = true;
@@ -140,7 +140,7 @@ public class ReceiverOptions extends
LinkOptions<ReceiverOptions> {
* @param other
* the target of this copy operation.
*
- * @return this options class for chaining.
+ * @return the {@link ReceiverOptions} instance that was given.
*/
protected ReceiverOptions copyInto(ReceiverOptions other) {
super.copyInto(other);
@@ -149,7 +149,7 @@ public class ReceiverOptions extends
LinkOptions<ReceiverOptions> {
other.creditWindow(creditWindow);
other.drainTimeout(drainTimeout);
- return this;
+ return other;
}
@Override
diff --git
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/ReconnectOptions.java
b/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/ReconnectOptions.java
index b21edf41..4c0fe40f 100644
---
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/ReconnectOptions.java
+++
b/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/ReconnectOptions.java
@@ -23,7 +23,7 @@ import java.util.List;
/**
* Options that control the reconnection behavior of a client {@link
Connection}.
*/
-public class ReconnectOptions {
+public class ReconnectOptions implements Cloneable {
public static final boolean DEFAULT_RECONNECT_ENABLED = false;
public static final int INFINITE = -1;
@@ -62,6 +62,11 @@ public class ReconnectOptions {
}
}
+ @Override
+ public ReconnectOptions clone() {
+ return copyInto(new ReconnectOptions());
+ }
+
/**
* Copy all options from this {@link ReconnectOptions} instance into the
instance
* provided.
@@ -69,7 +74,7 @@ public class ReconnectOptions {
* @param other
* the target of this copy operation.
*
- * @return this {@link ReconnectOptions} instance.
+ * @return the {@link ReconnectOptions} instance that was given.
*/
protected ReconnectOptions copyInto(ReconnectOptions other) {
other.reconnectEnabled(reconnectEnabled());
@@ -82,7 +87,7 @@ public class ReconnectOptions {
other.reconnectBackOffMultiplier(reconnectBackOffMultiplier);
other.reconnectHosts.addAll(reconnectHosts);
- return this;
+ return other;
}
/**
diff --git
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/SenderOptions.java
b/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/SenderOptions.java
index 8e3cba23..77c4990c 100644
---
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/SenderOptions.java
+++
b/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/SenderOptions.java
@@ -23,7 +23,7 @@ import
org.apache.qpid.protonj2.client.exceptions.ClientSendTimedOutException;
/**
* Options that control the behavior of a {@link Sender} created from them.
*/
-public class SenderOptions extends LinkOptions<SenderOptions>{
+public class SenderOptions extends LinkOptions<SenderOptions> implements
Cloneable {
private long sendTimeout = ConnectionOptions.DEFAULT_SEND_TIMEOUT;
@@ -97,14 +97,14 @@ public class SenderOptions extends
LinkOptions<SenderOptions>{
* @param other
* the target of this copy operation.
*
- * @return this options class for chaining.
+ * @return the {@link SenderOptions} instance that was given.
*/
protected SenderOptions copyInto(SenderOptions other) {
super.copyInto(other);
other.sendTimeout(sendTimeout);
- return this;
+ return other;
}
@Override
diff --git
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/SessionOptions.java
b/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/SessionOptions.java
index dac19d5f..55cfb711 100644
---
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/SessionOptions.java
+++
b/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/SessionOptions.java
@@ -27,7 +27,7 @@ import
org.apache.qpid.protonj2.client.exceptions.ClientSendTimedOutException;
/**
* Options that control the behavior of the {@link Session} created from them.
*/
-public class SessionOptions {
+public class SessionOptions implements Cloneable {
/**
* The default Session configured incoming capacity limit to provide to
the remote
@@ -83,7 +83,7 @@ public class SessionOptions {
* @param other
* the target of this copy operation.
*
- * @return this options class for chaining.
+ * @return the {@link SessionOptions} instance that was given.
*/
protected SessionOptions copyInto(SessionOptions other) {
other.closeTimeout(closeTimeout);
@@ -105,7 +105,7 @@ public class SessionOptions {
other.properties(new HashMap<>(properties));
}
- return this;
+ return other;
}
/**
diff --git
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/SourceOptions.java
b/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/SourceOptions.java
index c9005c20..51def8aa 100644
---
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/SourceOptions.java
+++
b/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/SourceOptions.java
@@ -25,7 +25,7 @@ import
org.apache.qpid.protonj2.client.impl.ClientDeliveryState;
/**
* Options type that carries configuration for link Source types.
*/
-public final class SourceOptions extends TerminusOptions<SourceOptions> {
+public final class SourceOptions extends TerminusOptions<SourceOptions>
implements Cloneable {
private static final DeliveryState.Type[] DEFAULT_OUTCOMES = new
DeliveryState.Type[] {
DeliveryState.Type.ACCEPTED, DeliveryState.Type.REJECTED,
DeliveryState.Type.RELEASED, DeliveryState.Type.MODIFIED
@@ -55,14 +55,14 @@ public final class SourceOptions extends
TerminusOptions<SourceOptions> {
*
* @return this {@link SourceOptions} instance.
*/
- public SourceOptions copyInto(SourceOptions other) {
+ protected SourceOptions copyInto(SourceOptions other) {
super.copyInto(other);
other.distributionMode(distributionMode);
if (filters != null) {
other.filters(new HashMap<>(filters));
}
- return this;
+ return other;
}
/**
diff --git
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/SslOptions.java
b/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/SslOptions.java
index 144f8701..5ef0f37a 100644
---
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/SslOptions.java
+++
b/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/SslOptions.java
@@ -425,7 +425,7 @@ public class SslOptions implements Cloneable {
*
* @return the options instance that was copied into.
*/
- public SslOptions copyInto(SslOptions other) {
+ protected SslOptions copyInto(SslOptions other) {
other.sslEnabled(sslEnabled());
other.keyStoreLocation(keyStoreLocation());
other.keyStorePassword(keyStorePassword());
diff --git
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/StreamReceiverOptions.java
b/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/StreamReceiverOptions.java
index 3d52fecd..90f04716 100644
---
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/StreamReceiverOptions.java
+++
b/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/StreamReceiverOptions.java
@@ -22,7 +22,7 @@ import java.util.concurrent.TimeUnit;
* Options class that controls various aspects of a {@link StreamReceiver}
instance and how
* a streamed message transfer is written.
*/
-public class StreamReceiverOptions extends LinkOptions<StreamReceiverOptions> {
+public final class StreamReceiverOptions extends
LinkOptions<StreamReceiverOptions> implements Cloneable {
/**
* Defines the default read buffering size which is used to control how
much incoming
@@ -67,7 +67,7 @@ public class StreamReceiverOptions extends
LinkOptions<StreamReceiverOptions> {
* @param other
* the target of this copy operation.
*
- * @return this {@link StreamReceiverOptions} class for chaining.
+ * @return the {@link StreamReceiverOptions} instance that was given.
*/
protected StreamReceiverOptions copyInto(StreamReceiverOptions other) {
super.copyInto(other);
@@ -77,7 +77,7 @@ public class StreamReceiverOptions extends
LinkOptions<StreamReceiverOptions> {
other.creditWindow(creditWindow);
other.drainTimeout(drainTimeout);
- return this;
+ return other;
}
/**
diff --git
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/StreamSenderOptions.java
b/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/StreamSenderOptions.java
index a519b2e3..4040ef54 100644
---
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/StreamSenderOptions.java
+++
b/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/StreamSenderOptions.java
@@ -24,7 +24,7 @@ import
org.apache.qpid.protonj2.client.exceptions.ClientSendTimedOutException;
* Options class that controls various aspects of a {@link
StreamSenderMessage} instance and how
* a streamed message transfer is written.
*/
-public class StreamSenderOptions extends LinkOptions<StreamSenderOptions> {
+public class StreamSenderOptions extends LinkOptions<StreamSenderOptions>
implements Cloneable {
/**
* Defines the default pending write buffering size which is used to
control how much outgoing
@@ -76,7 +76,7 @@ public class StreamSenderOptions extends
LinkOptions<StreamSenderOptions> {
* @param other
* the target of this copy operation.
*
- * @return this {@link StreamSenderOptions} class for chaining.
+ * @return the {@link StreamSenderOptions} instance that was given.
*/
protected StreamSenderOptions copyInto(StreamSenderOptions other) {
super.copyInto(other);
@@ -85,7 +85,7 @@ public class StreamSenderOptions extends
LinkOptions<StreamSenderOptions> {
other.sendTimeout(sendTimeout);
other.pendingWritesBufferSize(pendingWritesBufferSize);
- return this;
+ return other;
}
/**
diff --git
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/TargetOptions.java
b/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/TargetOptions.java
index 7ab40f7c..37724dbd 100644
---
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/TargetOptions.java
+++
b/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/TargetOptions.java
@@ -19,7 +19,7 @@ package org.apache.qpid.protonj2.client;
/**
* Options type that carries configuration for link Target types.
*/
-public final class TargetOptions extends TerminusOptions<TargetOptions> {
+public final class TargetOptions extends TerminusOptions<TargetOptions>
implements Cloneable {
/**
* @param other
@@ -27,9 +27,9 @@ public final class TargetOptions extends
TerminusOptions<TargetOptions> {
*
* @return the given {@link TargetOptions} instance with all configuration
copied from this instance.
*/
- public TargetOptions copyInto(TargetOptions other) {
+ protected TargetOptions copyInto(TargetOptions other) {
super.copyInto(other);
- return this;
+ return other;
}
@Override
diff --git
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/TargetOptions.java
b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/ClientOptionsTest.java
similarity index 52%
copy from
protonj2-client/src/main/java/org/apache/qpid/protonj2/client/TargetOptions.java
copy to
protonj2-client/src/test/java/org/apache/qpid/protonj2/client/ClientOptionsTest.java
index 7ab40f7c..eb8ba885 100644
---
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/TargetOptions.java
+++
b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/ClientOptionsTest.java
@@ -16,29 +16,33 @@
*/
package org.apache.qpid.protonj2.client;
-/**
- * Options type that carries configuration for link Target types.
- */
-public final class TargetOptions extends TerminusOptions<TargetOptions> {
-
- /**
- * @param other
- * The instance which should receive the configuration
from this options instance.
- *
- * @return the given {@link TargetOptions} instance with all configuration
copied from this instance.
- */
- public TargetOptions copyInto(TargetOptions other) {
- super.copyInto(other);
- return this;
- }
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotSame;
+import static org.junit.jupiter.api.Assertions.assertNull;
+
+import org.junit.jupiter.api.Test;
+
+public class ClientOptionsTest {
- @Override
- public TargetOptions clone() {
- return copyInto(new TargetOptions());
+ @Test
+ void testCreate() {
+ ClientOptions options = new ClientOptions();
+
+ assertNull(options.id());
+ assertNull(options.futureType());
}
- @Override
- TargetOptions self() {
- return this;
+ @Test
+ void testCopy() {
+ ClientOptions options = new ClientOptions();
+
+ options.id("test");
+ options.futureType("past-present");
+
+ ClientOptions copy = options.clone();
+
+ assertNotSame(copy, options);
+ assertEquals(options.id(), copy.id());
+ assertEquals(options.futureType(), copy.futureType());
}
}
diff --git
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/TargetOptions.java
b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/ConnectionOptionsTest.java
similarity index 52%
copy from
protonj2-client/src/main/java/org/apache/qpid/protonj2/client/TargetOptions.java
copy to
protonj2-client/src/test/java/org/apache/qpid/protonj2/client/ConnectionOptionsTest.java
index 7ab40f7c..34eef532 100644
---
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/TargetOptions.java
+++
b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/ConnectionOptionsTest.java
@@ -16,29 +16,33 @@
*/
package org.apache.qpid.protonj2.client;
-/**
- * Options type that carries configuration for link Target types.
- */
-public final class TargetOptions extends TerminusOptions<TargetOptions> {
-
- /**
- * @param other
- * The instance which should receive the configuration
from this options instance.
- *
- * @return the given {@link TargetOptions} instance with all configuration
copied from this instance.
- */
- public TargetOptions copyInto(TargetOptions other) {
- super.copyInto(other);
- return this;
- }
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotSame;
+import static org.junit.jupiter.api.Assertions.assertNull;
+
+import org.junit.jupiter.api.Test;
+
+public class ConnectionOptionsTest {
- @Override
- public TargetOptions clone() {
- return copyInto(new TargetOptions());
+ @Test
+ void testCreate() {
+ ConnectionOptions options = new ConnectionOptions();
+
+ assertNull(options.password());
+ assertNull(options.user());
}
- @Override
- TargetOptions self() {
- return this;
+ @Test
+ void testCopy() {
+ ConnectionOptions options = new ConnectionOptions();
+
+ options.user("test");
+ options.password("test-pass");
+
+ ConnectionOptions copy = options.clone();
+
+ assertNotSame(copy, options);
+ assertEquals(options.user(), copy.user());
+ assertEquals(options.password(), copy.password());
}
}
diff --git
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/TargetOptions.java
b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/RecconnectOptionsTest.java
similarity index 52%
copy from
protonj2-client/src/main/java/org/apache/qpid/protonj2/client/TargetOptions.java
copy to
protonj2-client/src/test/java/org/apache/qpid/protonj2/client/RecconnectOptionsTest.java
index 7ab40f7c..6a8ee93a 100644
---
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/TargetOptions.java
+++
b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/RecconnectOptionsTest.java
@@ -16,29 +16,33 @@
*/
package org.apache.qpid.protonj2.client;
-/**
- * Options type that carries configuration for link Target types.
- */
-public final class TargetOptions extends TerminusOptions<TargetOptions> {
-
- /**
- * @param other
- * The instance which should receive the configuration
from this options instance.
- *
- * @return the given {@link TargetOptions} instance with all configuration
copied from this instance.
- */
- public TargetOptions copyInto(TargetOptions other) {
- super.copyInto(other);
- return this;
- }
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotSame;
+import static org.junit.jupiter.api.Assertions.assertNull;
+
+import org.junit.jupiter.api.Test;
+
+public class RecconnectOptionsTest {
- @Override
- public TargetOptions clone() {
- return copyInto(new TargetOptions());
+ @Test
+ void testCreate() {
+ ConnectionOptions options = new ConnectionOptions();
+
+ assertNull(options.password());
+ assertNull(options.user());
}
- @Override
- TargetOptions self() {
- return this;
+ @Test
+ void testCopy() {
+ ConnectionOptions options = new ConnectionOptions();
+
+ options.user("test");
+ options.password("test-pass");
+
+ ConnectionOptions copy = options.clone();
+
+ assertNotSame(copy, options);
+ assertEquals(options.user(), copy.user());
+ assertEquals(options.password(), copy.password());
}
}
diff --git
a/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/SaslOptionsTest.java
b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/ReceiverOptionsTest.java
similarity index 52%
copy from
protonj2-client/src/test/java/org/apache/qpid/protonj2/client/SaslOptionsTest.java
copy to
protonj2-client/src/test/java/org/apache/qpid/protonj2/client/ReceiverOptionsTest.java
index ff3a5e2e..df9b50c3 100644
---
a/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/SaslOptionsTest.java
+++
b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/ReceiverOptionsTest.java
@@ -19,48 +19,33 @@ package org.apache.qpid.protonj2.client;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNotSame;
import static org.junit.jupiter.api.Assertions.assertTrue;
import org.junit.jupiter.api.Test;
-class SaslOptionsTest {
+public class ReceiverOptionsTest {
@Test
void testCreate() {
- SaslOptions options = new SaslOptions();
+ ReconnectOptions options = new ReconnectOptions();
- assertNotNull(options.allowedMechanisms());
- assertTrue(options.allowedMechanisms().isEmpty());
- assertTrue(options.saslEnabled());
+ assertNotNull(options.reconnectLocations());
+ assertTrue(options.reconnectLocations().isEmpty());
+ assertFalse(options.reconnectEnabled());
}
@Test
void testCopy() {
- SaslOptions options = new SaslOptions();
+ ReconnectOptions options = new ReconnectOptions();
- options.addAllowedMechanism("PLAIN");
- options.addAllowedMechanism("ANONYMOUS");
- options.saslEnabled(false);
+ options.addReconnectLocation("test1", 5672);
+ options.reconnectEnabled(true);
- SaslOptions copy = options.clone();
+ ReconnectOptions copy = options.clone();
- assertEquals(options.allowedMechanisms(), copy.allowedMechanisms());
- assertEquals(options.saslEnabled(), copy.saslEnabled());
- }
-
- @Test
- void testAllowedOptions() {
- SaslOptions options = new SaslOptions();
-
- assertNotNull(options.allowedMechanisms());
- assertTrue(options.allowedMechanisms().isEmpty());
-
- options.addAllowedMechanism("PLAIN");
- options.addAllowedMechanism("ANONYMOUS");
-
- assertFalse(options.allowedMechanisms().isEmpty());
-
- assertTrue(options.allowedMechanisms().contains("PLAIN"));
- assertTrue(options.allowedMechanisms().contains("ANONYMOUS"));
+ assertNotSame(copy, options);
+ assertEquals(options.reconnectLocations(), copy.reconnectLocations());
+ assertEquals(options.reconnectEnabled(), copy.reconnectEnabled());
}
}
diff --git
a/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/SaslOptionsTest.java
b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/SaslOptionsTest.java
index ff3a5e2e..39f9a42a 100644
---
a/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/SaslOptionsTest.java
+++
b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/SaslOptionsTest.java
@@ -19,6 +19,7 @@ package org.apache.qpid.protonj2.client;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNotSame;
import static org.junit.jupiter.api.Assertions.assertTrue;
import org.junit.jupiter.api.Test;
@@ -44,6 +45,7 @@ class SaslOptionsTest {
SaslOptions copy = options.clone();
+ assertNotSame(copy, options);
assertEquals(options.allowedMechanisms(), copy.allowedMechanisms());
assertEquals(options.saslEnabled(), copy.saslEnabled());
}
diff --git
a/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/SenderOptionsTest.java
b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/SenderOptionsTest.java
new file mode 100644
index 00000000..7f314881
--- /dev/null
+++
b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/SenderOptionsTest.java
@@ -0,0 +1,48 @@
+/*
+ * 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.protonj2.client;
+
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertNotSame;
+import static org.junit.jupiter.api.Assertions.assertNull;
+
+import org.junit.jupiter.api.Test;
+
+public class SenderOptionsTest {
+
+ @Test
+ void testCreate() {
+ SenderOptions options = new SenderOptions();
+
+ assertNull(options.offeredCapabilities());
+ assertNull(options.desiredCapabilities());
+ }
+
+ @Test
+ void testCopy() {
+ SenderOptions options = new SenderOptions();
+
+ options.offeredCapabilities("test1");
+ options.desiredCapabilities("test2");
+
+ SenderOptions copy = options.clone();
+
+ assertNotSame(copy, options);
+ assertArrayEquals(options.offeredCapabilities(),
copy.offeredCapabilities());
+ assertArrayEquals(options.desiredCapabilities(),
copy.desiredCapabilities());
+ }
+}
diff --git
a/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/SessionOptionsTest.java
b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/SessionOptionsTest.java
new file mode 100644
index 00000000..96dc4509
--- /dev/null
+++
b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/SessionOptionsTest.java
@@ -0,0 +1,48 @@
+/*
+ * 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.protonj2.client;
+
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertNotSame;
+import static org.junit.jupiter.api.Assertions.assertNull;
+
+import org.junit.jupiter.api.Test;
+
+public class SessionOptionsTest {
+
+ @Test
+ void testCreate() {
+ SessionOptions options = new SessionOptions();
+
+ assertNull(options.offeredCapabilities());
+ assertNull(options.desiredCapabilities());
+ }
+
+ @Test
+ void testCopy() {
+ SessionOptions options = new SessionOptions();
+
+ options.offeredCapabilities("test1");
+ options.desiredCapabilities("test2");
+
+ SessionOptions copy = options.clone();
+
+ assertNotSame(copy, options);
+ assertArrayEquals(options.offeredCapabilities(),
copy.offeredCapabilities());
+ assertArrayEquals(options.desiredCapabilities(),
copy.desiredCapabilities());
+ }
+}
diff --git
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/TargetOptions.java
b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/SourceOptionsTest.java
similarity index 56%
copy from
protonj2-client/src/main/java/org/apache/qpid/protonj2/client/TargetOptions.java
copy to
protonj2-client/src/test/java/org/apache/qpid/protonj2/client/SourceOptionsTest.java
index 7ab40f7c..d56932db 100644
---
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/TargetOptions.java
+++
b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/SourceOptionsTest.java
@@ -16,29 +16,30 @@
*/
package org.apache.qpid.protonj2.client;
-/**
- * Options type that carries configuration for link Target types.
- */
-public final class TargetOptions extends TerminusOptions<TargetOptions> {
-
- /**
- * @param other
- * The instance which should receive the configuration
from this options instance.
- *
- * @return the given {@link TargetOptions} instance with all configuration
copied from this instance.
- */
- public TargetOptions copyInto(TargetOptions other) {
- super.copyInto(other);
- return this;
- }
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertNotSame;
+import static org.junit.jupiter.api.Assertions.assertNull;
+
+import org.junit.jupiter.api.Test;
+
+public class SourceOptionsTest {
- @Override
- public TargetOptions clone() {
- return copyInto(new TargetOptions());
+ @Test
+ void testCreate() {
+ SourceOptions options = new SourceOptions();
+
+ assertNull(options.capabilities());
}
- @Override
- TargetOptions self() {
- return this;
+ @Test
+ void testCopy() {
+ SourceOptions options = new SourceOptions();
+
+ options.capabilities("test1");
+
+ SourceOptions copy = options.clone();
+
+ assertNotSame(copy, options);
+ assertArrayEquals(options.capabilities(), copy.capabilities());
}
}
diff --git
a/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/SslOptionsTest.java
b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/SslOptionsTest.java
index 1f7fbf60..4c629695 100644
---
a/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/SslOptionsTest.java
+++
b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/SslOptionsTest.java
@@ -20,6 +20,7 @@ import static
org.junit.jupiter.api.Assertions.assertArrayEquals;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
+import static org.junit.jupiter.api.Assertions.assertNotSame;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -99,8 +100,10 @@ public class SslOptionsTest extends
ImperativeClientTestCase {
@Test
public void testClone() {
- SslOptions options = createNonDefaultOptions().clone();
+ SslOptions original = createNonDefaultOptions();
+ SslOptions options = original.clone();
+ assertNotSame(original, options);
assertTrue(options.sslEnabled());
assertEquals(TEST_DEFAULT_SSL_PORT, options.defaultSslPort());
assertEquals(CLIENT_KEYSTORE, options.keyStoreLocation());
diff --git
a/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/StreamReceiverOptionsTest.java
b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/StreamReceiverOptionsTest.java
new file mode 100644
index 00000000..f02e2495
--- /dev/null
+++
b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/StreamReceiverOptionsTest.java
@@ -0,0 +1,48 @@
+/*
+ * 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.protonj2.client;
+
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertNotSame;
+import static org.junit.jupiter.api.Assertions.assertNull;
+
+import org.junit.jupiter.api.Test;
+
+public class StreamReceiverOptionsTest {
+
+ @Test
+ void testCreate() {
+ StreamReceiverOptions options = new StreamReceiverOptions();
+
+ assertNull(options.offeredCapabilities());
+ assertNull(options.desiredCapabilities());
+ }
+
+ @Test
+ void testCopy() {
+ StreamReceiverOptions options = new StreamReceiverOptions();
+
+ options.offeredCapabilities("test1");
+ options.desiredCapabilities("test2");
+
+ StreamReceiverOptions copy = options.clone();
+
+ assertNotSame(copy, options);
+ assertArrayEquals(options.offeredCapabilities(),
copy.offeredCapabilities());
+ assertArrayEquals(options.desiredCapabilities(),
copy.desiredCapabilities());
+ }
+}
diff --git
a/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/StreamSenderOptionsTest.java
b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/StreamSenderOptionsTest.java
new file mode 100644
index 00000000..c34064d1
--- /dev/null
+++
b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/StreamSenderOptionsTest.java
@@ -0,0 +1,48 @@
+/*
+ * 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.protonj2.client;
+
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertNotSame;
+import static org.junit.jupiter.api.Assertions.assertNull;
+
+import org.junit.jupiter.api.Test;
+
+public class StreamSenderOptionsTest {
+
+ @Test
+ void testCreate() {
+ StreamSenderOptions options = new StreamSenderOptions();
+
+ assertNull(options.offeredCapabilities());
+ assertNull(options.desiredCapabilities());
+ }
+
+ @Test
+ void testCopy() {
+ StreamSenderOptions options = new StreamSenderOptions();
+
+ options.offeredCapabilities("test1");
+ options.desiredCapabilities("test2");
+
+ StreamSenderOptions copy = options.clone();
+
+ assertNotSame(copy, options);
+ assertArrayEquals(options.offeredCapabilities(),
copy.offeredCapabilities());
+ assertArrayEquals(options.desiredCapabilities(),
copy.desiredCapabilities());
+ }
+}
diff --git
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/TargetOptions.java
b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/TargetOptionsTest.java
similarity index 56%
copy from
protonj2-client/src/main/java/org/apache/qpid/protonj2/client/TargetOptions.java
copy to
protonj2-client/src/test/java/org/apache/qpid/protonj2/client/TargetOptionsTest.java
index 7ab40f7c..0a5c2a5f 100644
---
a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/TargetOptions.java
+++
b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/TargetOptionsTest.java
@@ -16,29 +16,30 @@
*/
package org.apache.qpid.protonj2.client;
-/**
- * Options type that carries configuration for link Target types.
- */
-public final class TargetOptions extends TerminusOptions<TargetOptions> {
-
- /**
- * @param other
- * The instance which should receive the configuration
from this options instance.
- *
- * @return the given {@link TargetOptions} instance with all configuration
copied from this instance.
- */
- public TargetOptions copyInto(TargetOptions other) {
- super.copyInto(other);
- return this;
- }
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertNotSame;
+import static org.junit.jupiter.api.Assertions.assertNull;
+
+import org.junit.jupiter.api.Test;
+
+public class TargetOptionsTest {
- @Override
- public TargetOptions clone() {
- return copyInto(new TargetOptions());
+ @Test
+ void testCreate() {
+ TargetOptions options = new TargetOptions();
+
+ assertNull(options.capabilities());
}
- @Override
- TargetOptions self() {
- return this;
+ @Test
+ void testCopy() {
+ TargetOptions options = new TargetOptions();
+
+ options.capabilities("test1");
+
+ TargetOptions copy = options.clone();
+
+ assertNotSame(copy, options);
+ assertArrayEquals(options.capabilities(), copy.capabilities());
}
}
diff --git
a/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/TransportOptionsTest.java
b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/TransportOptionsTest.java
index 6fd93b2e..b4d30af9 100644
---
a/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/TransportOptionsTest.java
+++
b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/TransportOptionsTest.java
@@ -20,6 +20,7 @@ import static
org.junit.jupiter.api.Assertions.assertArrayEquals;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNotSame;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
@@ -82,7 +83,10 @@ public class TransportOptionsTest extends
ImperativeClientTestCase {
@Test
public void testClone() {
- TransportOptions options = createNonDefaultOptions().clone();
+ TransportOptions original = createNonDefaultOptions();
+ TransportOptions options = original.clone();
+
+ assertNotSame(original, options);
assertEquals(TEST_SEND_BUFFER_SIZE, options.sendBufferSize());
assertEquals(TEST_RECEIVE_BUFFER_SIZE, options.receiveBufferSize());
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]