diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/ChannelBindingsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/ChannelBindingsDeserializer.java index ec7a235b..4f9f317f 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/bindings/ChannelBindingsDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/ChannelBindingsDeserializer.java @@ -1,6 +1,6 @@ package com.asyncapi.bindings; -import com.asyncapi.bindings.amqp.v0._2_0.channel.AMQPChannelBinding; +import com.asyncapi.bindings.amqp.AMQPChannelBinding; import com.asyncapi.bindings.amqp1.v0._1_0.channel.AMQP1ChannelBinding; import com.asyncapi.bindings.anypointmq.v0._0_1.channel.AnypointMQChannelBinding; import com.asyncapi.bindings.googlepubsub.v0._1_0.channel.GooglePubSubChannelBinding; diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/MessageBindingsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/MessageBindingsDeserializer.java index f817f2fb..4c5e9b4d 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/bindings/MessageBindingsDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/MessageBindingsDeserializer.java @@ -1,6 +1,6 @@ package com.asyncapi.bindings; -import com.asyncapi.bindings.amqp.v0._2_0.message.AMQPMessageBinding; +import com.asyncapi.bindings.amqp.AMQPMessageBinding; import com.asyncapi.bindings.amqp1.v0._1_0.message.AMQP1MessageBinding; import com.asyncapi.bindings.anypointmq.v0._0_1.message.AnypointMQMessageBinding; import com.asyncapi.bindings.googlepubsub.v0._1_0.message.GooglePubSubMessageBinding; diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/OperationBindingsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/OperationBindingsDeserializer.java index 4a0b19ab..931fcb31 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/bindings/OperationBindingsDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/OperationBindingsDeserializer.java @@ -1,6 +1,6 @@ package com.asyncapi.bindings; -import com.asyncapi.bindings.amqp.v0._2_0.operation.AMQPOperationBinding; +import com.asyncapi.bindings.amqp.AMQPOperationBinding; import com.asyncapi.bindings.amqp1.v0._1_0.operation.AMQP1OperationBinding; import com.asyncapi.bindings.anypointmq.v0._0_1.operation.AnypointMQOperationBinding; import com.asyncapi.bindings.googlepubsub.v0._1_0.operation.GooglePubSubOperationBinding; diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/ServerBindingsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/ServerBindingsDeserializer.java index 142818a4..ef39d492 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/bindings/ServerBindingsDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/ServerBindingsDeserializer.java @@ -1,6 +1,6 @@ package com.asyncapi.bindings; -import com.asyncapi.bindings.amqp.v0._2_0.server.AMQPServerBinding; +import com.asyncapi.bindings.amqp.AMQPServerBinding; import com.asyncapi.bindings.amqp1.v0._1_0.server.AMQP1ServerBinding; import com.asyncapi.bindings.anypointmq.v0._0_1.server.AnypointMQServerBinding; import com.asyncapi.bindings.googlepubsub.v0._1_0.server.GooglePubSubServerBinding; diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/AMQPChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/AMQPChannelBinding.java new file mode 100644 index 00000000..eedcef70 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/AMQPChannelBinding.java @@ -0,0 +1,35 @@ +package com.asyncapi.bindings.amqp; + +import com.asyncapi.bindings.ChannelBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * Describes AMQP 0-9-1 channel binding. + *

+ * Contains information about the channel representation in AMQP. + * + * @since 1.0.0-RC2 + * @see AMQP channel binding + * @author Pavel Bodiachevskii + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.amqp.v0._1_0.channel.AMQPChannelBinding.class, name = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.amqp.v0._2_0.channel.AMQPChannelBinding.class, name = "0.2.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelBinding.class, names = { + "0.3.0", + "latest" + }), +}) +@Data +@EqualsAndHashCode(callSuper = true) +public abstract class AMQPChannelBinding extends ChannelBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/AMQPMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/AMQPMessageBinding.java new file mode 100644 index 00000000..6dfa065f --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/AMQPMessageBinding.java @@ -0,0 +1,35 @@ +package com.asyncapi.bindings.amqp; + +import com.asyncapi.bindings.MessageBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * Describes AMQP 0-9-1 message binding. + *

+ * Contains information about the message representation in AMQP. + * + * @since 1.0.0-RC2 + * @see AMQP message binding + * @author Pavel Bodiachevskii + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.amqp.v0._3_0.message.AMQPMessageBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.amqp.v0._1_0.message.AMQPMessageBinding.class, name = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.amqp.v0._2_0.message.AMQPMessageBinding.class, name = "0.2.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.amqp.v0._3_0.message.AMQPMessageBinding.class, names = { + "0.3.0", + "latest" + }), +}) +@Data +@EqualsAndHashCode(callSuper = true) +public abstract class AMQPMessageBinding extends MessageBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/AMQPOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/AMQPOperationBinding.java new file mode 100644 index 00000000..a6b18f00 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/AMQPOperationBinding.java @@ -0,0 +1,35 @@ +package com.asyncapi.bindings.amqp; + +import com.asyncapi.bindings.OperationBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * Describes AMQP 0-9-1 operation binding. + *

+ * Contains information about the operation representation in AMQP. + * + * @since 1.0.0-RC2 + * @see AMQP operation binding + * @author Pavel Bodiachevskii + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.amqp.v0._3_0.operation.AMQPOperationBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.amqp.v0._1_0.operation.AMQPOperationBinding.class, name = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.amqp.v0._2_0.operation.AMQPOperationBinding.class, name = "0.2.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.amqp.v0._3_0.operation.AMQPOperationBinding.class, names = { + "0.3.0", + "latest" + }), +}) +@Data +@EqualsAndHashCode(callSuper = true) +public abstract class AMQPOperationBinding extends OperationBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/AMQPServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/AMQPServerBinding.java new file mode 100644 index 00000000..ffca0b47 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/AMQPServerBinding.java @@ -0,0 +1,35 @@ +package com.asyncapi.bindings.amqp; + +import com.asyncapi.bindings.ServerBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * Describes AMQP 0-9-1 server binding. + *

+ * Contains information about the server representation in AMQP. + * + * @since 1.0.0-RC2 + * @see AMQP server binding + * @author Pavel Bodiachevskii + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.amqp.v0._3_0.server.AMQPServerBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.amqp.v0._1_0.server.AMQPServerBinding.class, name = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.amqp.v0._2_0.server.AMQPServerBinding.class, name = "0.2.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.amqp.v0._3_0.server.AMQPServerBinding.class, names = { + "0.3.0", + "latest" + }), +}) +@Data +@EqualsAndHashCode(callSuper = true) +public abstract class AMQPServerBinding extends ServerBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/channel/AMQPChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/channel/AMQPChannelBinding.java new file mode 100644 index 00000000..2e785b2e --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/channel/AMQPChannelBinding.java @@ -0,0 +1,65 @@ +package com.asyncapi.bindings.amqp.v0._1_0.channel; + +import com.asyncapi.bindings.amqp.v0._1_0.channel.exchange.AMQPChannelExchangeProperties; +import com.asyncapi.bindings.amqp.v0._1_0.channel.queue.AMQPChannelQueueProperties; +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.*; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * Describes AMQP 0-9-1 channel binding. + *

+ * Contains information about the channel representation in AMQP. + * + * @version 0.1.0 + * @see AMQP channel binding + * @author Pavel Bodiachevskii + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes AMQP 0-9-1 channel binding.") +public class AMQPChannelBinding extends com.asyncapi.bindings.amqp.AMQPChannelBinding { + + /** + * Defines what type of channel is it. Can be either queue or routingKey (default). + */ + @NotNull + @Builder.Default + @javax.validation.constraints.NotNull + @JsonProperty(value = "is", required = true, defaultValue = "routingKey") + @JsonPropertyDescription("Defines what type of channel is it. Can be either queue or routingKey (default).") + private AMQPChannelType is = AMQPChannelType.ROUTING_KEY; + + /** + * When is=routingKey, this object defines the exchange properties. + */ + @Nullable + @JsonProperty("exchange") + @JsonPropertyDescription("When is=routingKey, this object defines the exchange properties.") + private AMQPChannelExchangeProperties exchange; + + /** + * When is=queue, this object defines the queue properties. + */ + @Nullable + @JsonProperty("queue") + @JsonPropertyDescription("When is=queue, this object defines the queue properties.") + private AMQPChannelQueueProperties queue; + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/channel/AMQPChannelType.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/channel/AMQPChannelType.java new file mode 100644 index 00000000..3bca793b --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/channel/AMQPChannelType.java @@ -0,0 +1,24 @@ +package com.asyncapi.bindings.amqp.v0._1_0.channel; + +import com.fasterxml.jackson.annotation.JsonAlias; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Describes AMQP 0-9-1 channel type. + *

+ * Contains information about the type of channel in AMQP. + * + * @version 0.1.0 + * @see AMQP channel binding + * @author Pavel Bodiachevskii + */ +public enum AMQPChannelType { + + @JsonProperty("queue") + QUEUE, + + @JsonProperty("routingKey") + @JsonAlias("routingKey") + ROUTING_KEY + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/channel/exchange/AMQPChannelExchangeProperties.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/channel/exchange/AMQPChannelExchangeProperties.java new file mode 100644 index 00000000..16aa431e --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/channel/exchange/AMQPChannelExchangeProperties.java @@ -0,0 +1,62 @@ +package com.asyncapi.bindings.amqp.v0._1_0.channel.exchange; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.*; +import org.jetbrains.annotations.Nullable; + +/** + * Describes AMQP 0-9-1 channel exchange properties. + *

+ * Contains information about the channel exchange properties in AMQP. + * + * @version 0.1.0 + * @see AMQP channel binding + * @author Pavel Bodiachevskii + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode +@JsonClassDescription("Describes AMQP 0-9-1 channel exchange properties.") +public class AMQPChannelExchangeProperties { + + /** + * The name of the exchange. It MUST NOT exceed 255 characters long. + */ + @Nullable + @javax.validation.constraints.Size( + max = 255, + message = "Exchange name must not exceed 255 characters long." + ) + @JsonProperty("name") + @JsonPropertyDescription("The name of the exchange. It MUST NOT exceed 255 characters long.") + private String name; + + /** + * The type of the exchange. Can be either topic, direct, fanout, default or headers. + */ + @Nullable + @JsonProperty("type") + @JsonPropertyDescription("The type of the exchange. Can be either topic, direct, fanout, default or headers.") + private AMQPChannelExchangeType type; + + /** + * Whether the exchange should survive broker restarts or not. + */ + @Nullable + @JsonProperty("durable") + @JsonPropertyDescription("Whether the exchange should survive broker restarts or not.") + private Boolean durable; + + /** + * Whether the exchange should be deleted when the last queue is unbound from it. + */ + @Nullable + @JsonProperty("autoDelete") + @JsonPropertyDescription("Whether the exchange should be deleted when the last queue is unbound from it.") + private Boolean autoDelete; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/channel/exchange/AMQPChannelExchangeType.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/channel/exchange/AMQPChannelExchangeType.java new file mode 100644 index 00000000..8531ba38 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/channel/exchange/AMQPChannelExchangeType.java @@ -0,0 +1,33 @@ +package com.asyncapi.bindings.amqp.v0._1_0.channel.exchange; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Describes AMQP 0-9-1 channel exchange type. + *

+ * Contains information about the channel exchange type in AMQP. + * + * @version 0.1.0 + * @see AMQP channel binding + * @author Pavel Bodiachevskii + */ +@JsonClassDescription("Describes AMQP 0-9-1 channel exchange type.") +public enum AMQPChannelExchangeType { + + @JsonProperty("topic") + TOPIC, + + @JsonProperty("direct") + DIRECT, + + @JsonProperty("fanout") + FANOUT, + + @JsonProperty("default") + DEFAULT, + + @JsonProperty("headers") + HEADERS + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/channel/queue/AMQPChannelQueueProperties.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/channel/queue/AMQPChannelQueueProperties.java new file mode 100644 index 00000000..fc2d602b --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/channel/queue/AMQPChannelQueueProperties.java @@ -0,0 +1,62 @@ +package com.asyncapi.bindings.amqp.v0._1_0.channel.queue; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.*; +import org.jetbrains.annotations.Nullable; + +/** + * Describes AMQP 0-9-1 channel queue properties. + *

+ * Contains information about the queue exchange properties in AMQP. + * + * @version 0.1.0 + * @see AMQP channel binding + * @author Pavel Bodiachevskii + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode +@JsonClassDescription("Describes AMQP 0-9-1 channel queue properties.") +public class AMQPChannelQueueProperties { + + /** + * The name of the queue. It MUST NOT exceed 255 characters long. + */ + @Nullable + @javax.validation.constraints.Size( + max = 255, + message = "Queue name must not exceed 255 characters long." + ) + @JsonProperty("name") + @JsonPropertyDescription("The name of the queue. It MUST NOT exceed 255 characters long.") + private String name; + + /** + * Whether the queue should survive broker restarts or not. + */ + @Nullable + @JsonProperty("durable") + @JsonPropertyDescription("Whether the queue should survive broker restarts or not.") + private Boolean durable; + + /** + * Whether the queue should be used only by one connection or not. + */ + @Nullable + @JsonProperty("exclusive") + @JsonPropertyDescription("Whether the queue should be used only by one connection or not.") + private Boolean exclusive; + + /** + * Whether the queue should be deleted when the last consumer unsubscribes. + */ + @Nullable + @JsonProperty("autoDelete") + @JsonPropertyDescription("Whether the queue should be deleted when the last consumer unsubscribes.") + private Boolean autoDelete; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/message/AMQPMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/message/AMQPMessageBinding.java new file mode 100644 index 00000000..64f69ad0 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/message/AMQPMessageBinding.java @@ -0,0 +1,52 @@ +package com.asyncapi.bindings.amqp.v0._1_0.message; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.*; +import org.jetbrains.annotations.Nullable; + +/** + * Describes AMQP 0-9-1 message binding. + *

+ * Contains information about the message representation in AMQP. + * + * @version 0.1.0 + * @see AMQP message binding + * @author Pavel Bodiachevskii + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes AMQP 0-9-1 message binding.") +public class AMQPMessageBinding extends com.asyncapi.bindings.amqp.AMQPMessageBinding { + + /** + * A MIME encoding for the message content. + */ + @Nullable + @JsonProperty("contentEncoding") + @JsonPropertyDescription("A MIME encoding for the message content.") + private String contentEncoding; + + /** + * Application-specific message type. + */ + @Nullable + @JsonProperty("messageType") + @JsonPropertyDescription("Application-specific message type.") + private String messageType; + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/operation/AMQPOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/operation/AMQPOperationBinding.java new file mode 100644 index 00000000..46c6ea54 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/operation/AMQPOperationBinding.java @@ -0,0 +1,150 @@ +package com.asyncapi.bindings.amqp.v0._1_0.operation; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.*; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +/** + * Describes AMQP 0-9-1 operation binding. + *

+ * Contains information about the operation representation in AMQP. + * + * @version 0.1.0 + * @see AMQP operation binding + * @author Pavel Bodiachevskii + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes AMQP 0-9-1 operation binding.") +public class AMQPOperationBinding extends com.asyncapi.bindings.amqp.AMQPOperationBinding { + + /** + * TTL (Time-To-Live) for the message. It MUST be greater than or equal to zero. + *

+ * Applies to: publish, subscribe + */ + @Nullable + @javax.validation.constraints.Min( + value = 0, + message = "TTL (Time-To-Live) for the message must be greater than or equal to zero" + ) + @JsonProperty("expiration") + @JsonPropertyDescription("TTL (Time-To-Live) for the message. It MUST be greater than or equal to zero.") + private Integer expiration; + + /** + * Identifies the user who has sent the message. + *

+ * Applies to: publish, subscribe + */ + @Nullable + @JsonProperty("userId") + @JsonPropertyDescription("Identifies the user who has sent the message.") + private String userId; + + /** + * The routing keys the message should be routed to at the time of publishing. + *

+ * Applies to: publish, subscribe + */ + @Nullable + @JsonProperty("cc") + @JsonPropertyDescription("The routing keys the message should be routed to at the time of publishing.") + private List cc; + + /** + * A priority for the message. + *

+ * Applies to: publish, subscribe + */ + @Nullable + @JsonProperty("priority") + @JsonPropertyDescription("A priority for the message.") + private Integer priority; + + /** + * Delivery mode of the message. Its value MUST be either 1 (transient) or 2 (persistent). + *

+ * Applies to: publish, subscribe + */ + @Nullable + @javax.validation.constraints.Min( + value = 1, + message = "Delivery mode of the message must be either 1 (transient) or 2 (persistent)" + ) + @javax.validation.constraints.Max( + value = 2, + message = "Delivery mode of the message must be either 1 (transient) or 2 (persistent)" + ) + @JsonProperty("deliveryMode") + @JsonPropertyDescription("Delivery mode of the message. Its value MUST be either 1 (transient) or 2 (persistent).") + private Integer deliveryMode; + + /** + * Whether the message is mandatory or not. + *

+ * Applies to: publish + */ + @Nullable + @JsonProperty("mandatory") + @JsonPropertyDescription("Whether the message is mandatory or not.") + private Boolean mandatory; + + /** + * Like {@link #cc} but consumers will not receive this information. + *

+ * Applies to: publish + */ + @Nullable + @JsonProperty("bcc") + @JsonPropertyDescription("Like cc but consumers will not receive this information.") + private List bcc; + + /** + * Name of the queue where the consumer should send the response. + *

+ * Applies to: publish, subscribe + */ + @Nullable + @JsonProperty("replyTo") + @JsonPropertyDescription("Name of the queue where the consumer should send the response.") + private String replyTo; + + /** + * Whether the message should include a timestamp or not. + *

+ * Applies to: publish, subscribe + */ + @Nullable + @JsonProperty("timestamp") + @JsonPropertyDescription("Whether the message should include a timestamp or not.") + private Boolean timestamp; + + /** + * Whether the consumer should ack the message or not. + *

+ * Applies to: subscribe + */ + @Nullable + @JsonProperty("ack") + @JsonPropertyDescription("Whether the consumer should ack the message or not.") + private Boolean ack; + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/server/AMQPServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/server/AMQPServerBinding.java new file mode 100644 index 00000000..735e4271 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/server/AMQPServerBinding.java @@ -0,0 +1,32 @@ +package com.asyncapi.bindings.amqp.v0._1_0.server; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes AMQP 0-9-1 server binding. + * + * @version 0.1.0 + * @see AMQP server binding + * @author Pavel Bodiachevskii + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class AMQPServerBinding extends com.asyncapi.bindings.amqp.AMQPServerBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/channel/AMQPChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/channel/AMQPChannelBinding.java index f25da590..5f5c552e 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/channel/AMQPChannelBinding.java +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/channel/AMQPChannelBinding.java @@ -1,6 +1,5 @@ package com.asyncapi.bindings.amqp.v0._2_0.channel; -import com.asyncapi.bindings.ChannelBinding; import com.asyncapi.bindings.amqp.v0._2_0.channel.exchange.AMQPChannelExchangeProperties; import com.asyncapi.bindings.amqp.v0._2_0.channel.queue.AMQPChannelQueueProperties; import com.fasterxml.jackson.annotation.JsonClassDescription; @@ -25,7 +24,7 @@ @AllArgsConstructor @EqualsAndHashCode(callSuper = true) @JsonClassDescription("Describes AMQP 0-9-1 channel binding.") -public class AMQPChannelBinding extends ChannelBinding { +public class AMQPChannelBinding extends com.asyncapi.bindings.amqp.AMQPChannelBinding { /** * Defines what type of channel is it. Can be either queue or routingKey (default). @@ -53,10 +52,14 @@ public class AMQPChannelBinding extends ChannelBinding { @JsonPropertyDescription("When is=queue, this object defines the queue properties.") private AMQPChannelQueueProperties queue; - @Nullable - @Builder.Default - @JsonProperty(value = "bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private final String bindingVersion = "0.2.0"; + @Override + public String getBindingVersion() { + return "0.2.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.2.0"); + } } diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/message/AMQPMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/message/AMQPMessageBinding.java index 0fcb70e8..fcc8e2c0 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/message/AMQPMessageBinding.java +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/message/AMQPMessageBinding.java @@ -1,6 +1,5 @@ package com.asyncapi.bindings.amqp.v0._2_0.message; -import com.asyncapi.bindings.MessageBinding; import com.fasterxml.jackson.annotation.JsonClassDescription; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyDescription; @@ -22,7 +21,7 @@ @AllArgsConstructor @EqualsAndHashCode(callSuper = true) @JsonClassDescription("Describes AMQP 0-9-1 message binding.") -public class AMQPMessageBinding extends MessageBinding { +public class AMQPMessageBinding extends com.asyncapi.bindings.amqp.AMQPMessageBinding { /** * A MIME encoding for the message content. @@ -40,13 +39,14 @@ public class AMQPMessageBinding extends MessageBinding { @JsonPropertyDescription("Application-specific message type.") private String messageType; - /** - * The version of this binding. If omitted, "latest" MUST be assumed. - */ - @Nullable - @Builder.Default - @JsonProperty(value = "bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.2.0"; + @Override + public String getBindingVersion() { + return "0.2.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.2.0"); + } } diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/operation/AMQPOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/operation/AMQPOperationBinding.java index 54121114..a2e479fd 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/operation/AMQPOperationBinding.java +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/operation/AMQPOperationBinding.java @@ -1,6 +1,5 @@ package com.asyncapi.bindings.amqp.v0._2_0.operation; -import com.asyncapi.bindings.OperationBinding; import com.fasterxml.jackson.annotation.JsonClassDescription; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyDescription; @@ -24,7 +23,7 @@ @AllArgsConstructor @EqualsAndHashCode(callSuper = true) @JsonClassDescription("Describes AMQP 0-9-1 operation binding.") -public class AMQPOperationBinding extends OperationBinding { +public class AMQPOperationBinding extends com.asyncapi.bindings.amqp.AMQPOperationBinding { /** * TTL (Time-To-Live) for the message. It MUST be greater than or equal to zero. @@ -138,13 +137,14 @@ public class AMQPOperationBinding extends OperationBinding { @JsonPropertyDescription("Whether the consumer should ack the message or not.") private Boolean ack; - /** - * The version of this binding. If omitted, "latest" MUST be assumed. - */ - @Nullable - @Builder.Default - @JsonProperty(value = "bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.2.0"; + @Override + public String getBindingVersion() { + return "0.2.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.2.0"); + } } diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/server/AMQPServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/server/AMQPServerBinding.java index a14af6ed..868088a0 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/server/AMQPServerBinding.java +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/server/AMQPServerBinding.java @@ -1,9 +1,9 @@ package com.asyncapi.bindings.amqp.v0._2_0.server; -import com.asyncapi.bindings.ServerBinding; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; /** * This class MUST NOT contain any properties. Its name is reserved for future use. @@ -17,5 +17,16 @@ @Data @NoArgsConstructor @EqualsAndHashCode(callSuper = true) -public class AMQPServerBinding extends ServerBinding { +public class AMQPServerBinding extends com.asyncapi.bindings.amqp.AMQPServerBinding { + + @Override + public String getBindingVersion() { + return "0.2.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.2.0"); + } + } diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/channel/AMQPChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/channel/AMQPChannelBinding.java new file mode 100644 index 00000000..d1925075 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/channel/AMQPChannelBinding.java @@ -0,0 +1,65 @@ +package com.asyncapi.bindings.amqp.v0._3_0.channel; + +import com.asyncapi.bindings.amqp.v0._3_0.channel.exchange.AMQPChannelExchangeProperties; +import com.asyncapi.bindings.amqp.v0._3_0.channel.queue.AMQPChannelQueueProperties; +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.*; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * Describes AMQP 0-9-1 channel binding. + *

+ * Contains information about the channel representation in AMQP. + * + * @version 0.3.0 + * @see AMQP channel binding + * @author Pavel Bodiachevskii + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes AMQP 0-9-1 channel binding.") +public class AMQPChannelBinding extends com.asyncapi.bindings.amqp.AMQPChannelBinding { + + /** + * Defines what type of channel is it. Can be either queue or routingKey (default). + */ + @NotNull + @Builder.Default + @javax.validation.constraints.NotNull + @JsonProperty(value = "is", required = true, defaultValue = "routingKey") + @JsonPropertyDescription("Defines what type of channel is it. Can be either queue or routingKey (default).") + private AMQPChannelType is = AMQPChannelType.ROUTING_KEY; + + /** + * When is=routingKey, this object defines the exchange properties. + */ + @Nullable + @JsonProperty("exchange") + @JsonPropertyDescription("When is=routingKey, this object defines the exchange properties.") + private AMQPChannelExchangeProperties exchange; + + /** + * When is=queue, this object defines the queue properties. + */ + @Nullable + @JsonProperty("queue") + @JsonPropertyDescription("When is=queue, this object defines the queue properties.") + private AMQPChannelQueueProperties queue; + + @Override + public String getBindingVersion() { + return "0.3.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.3.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/channel/AMQPChannelType.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/channel/AMQPChannelType.java new file mode 100644 index 00000000..a270537d --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/channel/AMQPChannelType.java @@ -0,0 +1,24 @@ +package com.asyncapi.bindings.amqp.v0._3_0.channel; + +import com.fasterxml.jackson.annotation.JsonAlias; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Describes AMQP 0-9-1 channel type. + *

+ * Contains information about the type of channel in AMQP. + * + * @version 0.3.0 + * @see AMQP channel binding + * @author Pavel Bodiachevskii + */ +public enum AMQPChannelType { + + @JsonProperty("queue") + QUEUE, + + @JsonProperty("routingKey") + @JsonAlias("routingKey") + ROUTING_KEY + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/channel/exchange/AMQPChannelExchangeProperties.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/channel/exchange/AMQPChannelExchangeProperties.java new file mode 100644 index 00000000..aa0476ba --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/channel/exchange/AMQPChannelExchangeProperties.java @@ -0,0 +1,71 @@ +package com.asyncapi.bindings.amqp.v0._3_0.channel.exchange; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.*; +import org.jetbrains.annotations.Nullable; + +/** + * Describes AMQP 0-9-1 channel exchange properties. + *

+ * Contains information about the channel exchange properties in AMQP. + * + * @version 0.3.0 + * @see AMQP channel binding + * @author Pavel Bodiachevskii + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode +@JsonClassDescription("Describes AMQP 0-9-1 channel exchange properties.") +public class AMQPChannelExchangeProperties { + + /** + * The name of the exchange. It MUST NOT exceed 255 characters long. + */ + @Nullable + @javax.validation.constraints.Size( + max = 255, + message = "Exchange name must not exceed 255 characters long." + ) + @JsonProperty("name") + @JsonPropertyDescription("The name of the exchange. It MUST NOT exceed 255 characters long.") + private String name; + + /** + * The type of the exchange. Can be either topic, direct, fanout, default or headers. + */ + @Nullable + @JsonProperty("type") + @JsonPropertyDescription("The type of the exchange. Can be either topic, direct, fanout, default or headers.") + private AMQPChannelExchangeType type; + + /** + * Whether the exchange should survive broker restarts or not. + */ + @Nullable + @JsonProperty("durable") + @JsonPropertyDescription("Whether the exchange should survive broker restarts or not.") + private Boolean durable; + + /** + * Whether the exchange should be deleted when the last queue is unbound from it. + */ + @Nullable + @JsonProperty("autoDelete") + @JsonPropertyDescription("Whether the exchange should be deleted when the last queue is unbound from it.") + private Boolean autoDelete; + + /** + * The virtual host of the exchange. Defaults to /. + */ + @Nullable + @Builder.Default + @JsonProperty(value = "vhost", defaultValue = "/") + @JsonPropertyDescription("The virtual host of the exchange. Defaults to /.") + private String vhost = "/"; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/channel/exchange/AMQPChannelExchangeType.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/channel/exchange/AMQPChannelExchangeType.java new file mode 100644 index 00000000..7abf4fc8 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/channel/exchange/AMQPChannelExchangeType.java @@ -0,0 +1,33 @@ +package com.asyncapi.bindings.amqp.v0._3_0.channel.exchange; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Describes AMQP 0-9-1 channel exchange type. + *

+ * Contains information about the channel exchange type in AMQP. + * + * @version 0.3.0 + * @see AMQP channel binding + * @author Pavel Bodiachevskii + */ +@JsonClassDescription("Describes AMQP 0-9-1 channel exchange type.") +public enum AMQPChannelExchangeType { + + @JsonProperty("topic") + TOPIC, + + @JsonProperty("direct") + DIRECT, + + @JsonProperty("fanout") + FANOUT, + + @JsonProperty("default") + DEFAULT, + + @JsonProperty("headers") + HEADERS + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/channel/queue/AMQPChannelQueueProperties.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/channel/queue/AMQPChannelQueueProperties.java new file mode 100644 index 00000000..e67c88a7 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/channel/queue/AMQPChannelQueueProperties.java @@ -0,0 +1,71 @@ +package com.asyncapi.bindings.amqp.v0._3_0.channel.queue; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.*; +import org.jetbrains.annotations.Nullable; + +/** + * Describes AMQP 0-9-1 channel queue properties. + *

+ * Contains information about the queue exchange properties in AMQP. + * + * @version 0.3.0 + * @see AMQP channel binding + * @author Pavel Bodiachevskii + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode +@JsonClassDescription("Describes AMQP 0-9-1 channel queue properties.") +public class AMQPChannelQueueProperties { + + /** + * The name of the queue. It MUST NOT exceed 255 characters long. + */ + @Nullable + @javax.validation.constraints.Size( + max = 255, + message = "Queue name must not exceed 255 characters long." + ) + @JsonProperty("name") + @JsonPropertyDescription("The name of the queue. It MUST NOT exceed 255 characters long.") + private String name; + + /** + * Whether the queue should survive broker restarts or not. + */ + @Nullable + @JsonProperty("durable") + @JsonPropertyDescription("Whether the queue should survive broker restarts or not.") + private Boolean durable; + + /** + * Whether the queue should be used only by one connection or not. + */ + @Nullable + @JsonProperty("exclusive") + @JsonPropertyDescription("Whether the queue should be used only by one connection or not.") + private Boolean exclusive; + + /** + * Whether the queue should be deleted when the last consumer unsubscribes. + */ + @Nullable + @JsonProperty("autoDelete") + @JsonPropertyDescription("Whether the queue should be deleted when the last consumer unsubscribes.") + private Boolean autoDelete; + + /** + * The virtual host of the queue. Defaults to /. + */ + @Nullable + @Builder.Default + @JsonProperty(value = "vhost", defaultValue = "/") + @JsonPropertyDescription("The virtual host of the queue. Defaults to /.") + private String vhost = "/"; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/message/AMQPMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/message/AMQPMessageBinding.java new file mode 100644 index 00000000..199cee94 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/message/AMQPMessageBinding.java @@ -0,0 +1,52 @@ +package com.asyncapi.bindings.amqp.v0._3_0.message; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.*; +import org.jetbrains.annotations.Nullable; + +/** + * Describes AMQP 0-9-1 message binding. + *

+ * Contains information about the message representation in AMQP. + * + * @version 0.3.0 + * @see AMQP message binding + * @author Pavel Bodiachevskii + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes AMQP 0-9-1 message binding.") +public class AMQPMessageBinding extends com.asyncapi.bindings.amqp.AMQPMessageBinding { + + /** + * A MIME encoding for the message content. + */ + @Nullable + @JsonProperty("contentEncoding") + @JsonPropertyDescription("A MIME encoding for the message content.") + private String contentEncoding; + + /** + * Application-specific message type. + */ + @Nullable + @JsonProperty("messageType") + @JsonPropertyDescription("Application-specific message type.") + private String messageType; + + @Override + public String getBindingVersion() { + return "0.3.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.3.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/operation/AMQPOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/operation/AMQPOperationBinding.java new file mode 100644 index 00000000..e49efe4b --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/operation/AMQPOperationBinding.java @@ -0,0 +1,140 @@ +package com.asyncapi.bindings.amqp.v0._3_0.operation; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.*; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +/** + * Describes AMQP 0-9-1 operation binding. + *

+ * Contains information about the operation representation in AMQP. + * + * @version 0.3.0 + * @see AMQP operation binding + * @author Pavel Bodiachevskii + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes AMQP 0-9-1 operation binding.") +public class AMQPOperationBinding extends com.asyncapi.bindings.amqp.AMQPOperationBinding { + + /** + * TTL (Time-To-Live) for the message. It MUST be greater than or equal to zero. + *

+ * Applies to: publish, subscribe + */ + @Nullable + @javax.validation.constraints.Min( + value = 0, + message = "TTL (Time-To-Live) for the message must be greater than or equal to zero" + ) + @JsonProperty("expiration") + @JsonPropertyDescription("TTL (Time-To-Live) for the message. It MUST be greater than or equal to zero.") + private Integer expiration; + + /** + * Identifies the user who has sent the message. + *

+ * Applies to: publish, subscribe + */ + @Nullable + @JsonProperty("userId") + @JsonPropertyDescription("Identifies the user who has sent the message.") + private String userId; + + /** + * The routing keys the message should be routed to at the time of publishing. + *

+ * Applies to: publish, subscribe + */ + @Nullable + @JsonProperty("cc") + @JsonPropertyDescription("The routing keys the message should be routed to at the time of publishing.") + private List cc; + + /** + * A priority for the message. + *

+ * Applies to: publish, subscribe + */ + @Nullable + @JsonProperty("priority") + @JsonPropertyDescription("A priority for the message.") + private Integer priority; + + /** + * Delivery mode of the message. Its value MUST be either 1 (transient) or 2 (persistent). + *

+ * Applies to: publish, subscribe + */ + @Nullable + @javax.validation.constraints.Min( + value = 1, + message = "Delivery mode of the message must be either 1 (transient) or 2 (persistent)" + ) + @javax.validation.constraints.Max( + value = 2, + message = "Delivery mode of the message must be either 1 (transient) or 2 (persistent)" + ) + @JsonProperty("deliveryMode") + @JsonPropertyDescription("Delivery mode of the message. Its value MUST be either 1 (transient) or 2 (persistent).") + private Integer deliveryMode; + + /** + * Whether the message is mandatory or not. + *

+ * Applies to: publish + */ + @Nullable + @JsonProperty("mandatory") + @JsonPropertyDescription("Whether the message is mandatory or not.") + private Boolean mandatory; + + /** + * Like {@link #cc} but consumers will not receive this information. + *

+ * Applies to: publish + */ + @Nullable + @JsonProperty("bcc") + @JsonPropertyDescription("Like cc but consumers will not receive this information.") + private List bcc; + + /** + * Whether the message should include a timestamp or not. + *

+ * Applies to: publish, subscribe + */ + @Nullable + @JsonProperty("timestamp") + @JsonPropertyDescription("Whether the message should include a timestamp or not.") + private Boolean timestamp; + + /** + * Whether the consumer should ack the message or not. + *

+ * Applies to: subscribe + */ + @Nullable + @JsonProperty("ack") + @JsonPropertyDescription("Whether the consumer should ack the message or not.") + private Boolean ack; + + @Override + public String getBindingVersion() { + return "0.3.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.3.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/server/AMQPServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/server/AMQPServerBinding.java new file mode 100644 index 00000000..c358e110 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/server/AMQPServerBinding.java @@ -0,0 +1,32 @@ +package com.asyncapi.bindings.amqp.v0._3_0.server; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes AMQP 0-9-1 server binding. + * + * @version 0.3.0 + * @see AMQP server binding + * @author Pavel Bodiachevskii + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class AMQPServerBinding extends com.asyncapi.bindings.amqp.AMQPServerBinding { + + @Override + public String getBindingVersion() { + return "0.3.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.3.0"); + } + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQP.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQP.java new file mode 100644 index 00000000..96fcda09 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQP.java @@ -0,0 +1,10 @@ +package com.asyncapi.bindings.amqp; + +import org.junit.platform.suite.api.SelectPackages; +import org.junit.platform.suite.api.Suite; +import org.junit.platform.suite.api.SuiteDisplayName; + +@Suite +@SuiteDisplayName("AMQP") +@SelectPackages("com.asyncapi.bindings.amqp") +public class AMQP {} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPLatestTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPLatestTest.java new file mode 100644 index 00000000..c0ae94ed --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPLatestTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.amqp; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelBinding; +import com.asyncapi.bindings.amqp.v0._3_0.message.AMQPMessageBinding; +import com.asyncapi.bindings.amqp.v0._3_0.operation.AMQPOperationBinding; +import com.asyncapi.bindings.amqp.v0._3_0.server.AMQPServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("latest") +public class AMQPLatestTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = AMQPV0_3_0Test.channelBinding();; + super.bindingTypeClass = AMQPChannelBinding.class; + super.pathToBindingJson = "/bindings/amqp/latest/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/latest/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/latest/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = AMQPV0_3_0Test.messageBinding();; + super.bindingTypeClass = AMQPMessageBinding.class; + super.pathToBindingJson = "/bindings/amqp/latest/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/latest/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/latest/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = AMQPV0_3_0Test.operationBinding();; + super.bindingTypeClass = AMQPOperationBinding.class; + super.pathToBindingJson = "/bindings/amqp/latest/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/latest/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/latest/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = AMQPV0_3_0Test.serverBinding();; + super.bindingTypeClass = AMQPServerBinding.class; + super.pathToBindingJson = "/bindings/amqp/latest/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/latest/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/latest/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPUnknownVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPUnknownVersionTest.java new file mode 100644 index 00000000..b6e1de19 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPUnknownVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.amqp; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelBinding; +import com.asyncapi.bindings.amqp.v0._3_0.message.AMQPMessageBinding; +import com.asyncapi.bindings.amqp.v0._3_0.operation.AMQPOperationBinding; +import com.asyncapi.bindings.amqp.v0._3_0.server.AMQPServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("unknown version") +public class AMQPUnknownVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = AMQPV0_3_0Test.channelBinding(); + super.bindingTypeClass = AMQPChannelBinding.class; + super.pathToBindingJson = "/bindings/amqp/unknown version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/unknown version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/unknown version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = AMQPV0_3_0Test.messageBinding(); + super.bindingTypeClass = AMQPMessageBinding.class; + super.pathToBindingJson = "/bindings/amqp/unknown version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/unknown version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/unknown version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = AMQPV0_3_0Test.operationBinding(); + super.bindingTypeClass = AMQPOperationBinding.class; + super.pathToBindingJson = "/bindings/amqp/unknown version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/unknown version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/unknown version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = AMQPV0_3_0Test.serverBinding(); + super.bindingTypeClass = AMQPServerBinding.class; + super.pathToBindingJson = "/bindings/amqp/unknown version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/unknown version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/unknown version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPV0_1_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPV0_1_0Test.java new file mode 100644 index 00000000..9cb3fea7 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPV0_1_0Test.java @@ -0,0 +1,106 @@ +package com.asyncapi.bindings.amqp; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.amqp.v0._1_0.channel.AMQPChannelBinding; +import com.asyncapi.bindings.amqp.v0._1_0.channel.AMQPChannelType; +import com.asyncapi.bindings.amqp.v0._1_0.channel.exchange.AMQPChannelExchangeProperties; +import com.asyncapi.bindings.amqp.v0._1_0.channel.exchange.AMQPChannelExchangeType; +import com.asyncapi.bindings.amqp.v0._1_0.channel.queue.AMQPChannelQueueProperties; +import com.asyncapi.bindings.amqp.v0._1_0.message.AMQPMessageBinding; +import com.asyncapi.bindings.amqp.v0._1_0.operation.AMQPOperationBinding; +import com.asyncapi.bindings.amqp.v0._1_0.server.AMQPServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +import java.util.List; + +@DisplayName("0.1.0") +public class AMQPV0_1_0Test { + + public static AMQPChannelBinding channelBinding () { + return AMQPChannelBinding.builder() + .is(AMQPChannelType.ROUTING_KEY) + .queue(AMQPChannelQueueProperties.builder() + .name("my-queue-name") + .durable(true) + .exclusive(true) + .autoDelete(false) + .build() + ) + .exchange(AMQPChannelExchangeProperties.builder() + .name("myExchange") + .type(AMQPChannelExchangeType.TOPIC) + .durable(true) + .autoDelete(false) + .build() + ) + .build(); + } + + public static AMQPMessageBinding messageBinding () { + return AMQPMessageBinding.builder() + .contentEncoding("gzip") + .messageType("user.signup") + .build(); + } + + public static AMQPOperationBinding operationBinding () { + return AMQPOperationBinding.builder() + .expiration(100_000) + .userId("guest") + .cc(List.of("user.logs")) + .priority(10) + .deliveryMode(2) + .mandatory(false) + .bcc(List.of("external.audit")) + .replyTo("user.signedup") + .timestamp(true) + .ack(false) + .build(); + } + + public static AMQPServerBinding serverBinding () { + return new AMQPServerBinding(); + } + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = channelBinding(); + super.bindingTypeClass = AMQPChannelBinding.class; + super.pathToBindingJson = "/bindings/amqp/0.1.0/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/0.1.0/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/0.1.0/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = messageBinding(); + super.bindingTypeClass = AMQPMessageBinding.class; + super.pathToBindingJson = "/bindings/amqp/0.1.0/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/0.1.0/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/0.1.0/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = operationBinding(); + super.bindingTypeClass = AMQPOperationBinding.class; + super.pathToBindingJson = "/bindings/amqp/0.1.0/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/0.1.0/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/0.1.0/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = serverBinding(); + super.bindingTypeClass = AMQPServerBinding.class; + super.pathToBindingJson = "/bindings/amqp/0.1.0/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/0.1.0/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/0.1.0/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPV0_2_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPV0_2_0Test.java new file mode 100644 index 00000000..4c561fcc --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPV0_2_0Test.java @@ -0,0 +1,106 @@ +package com.asyncapi.bindings.amqp; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.amqp.v0._2_0.channel.AMQPChannelBinding; +import com.asyncapi.bindings.amqp.v0._2_0.channel.AMQPChannelType; +import com.asyncapi.bindings.amqp.v0._2_0.channel.exchange.AMQPChannelExchangeProperties; +import com.asyncapi.bindings.amqp.v0._2_0.channel.exchange.AMQPChannelExchangeType; +import com.asyncapi.bindings.amqp.v0._2_0.channel.queue.AMQPChannelQueueProperties; +import com.asyncapi.bindings.amqp.v0._2_0.message.AMQPMessageBinding; +import com.asyncapi.bindings.amqp.v0._2_0.operation.AMQPOperationBinding; +import com.asyncapi.bindings.amqp.v0._2_0.server.AMQPServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +import java.util.List; + +@DisplayName("0.2.0") +public class AMQPV0_2_0Test { + + public static AMQPChannelBinding channelBinding () { + return AMQPChannelBinding.builder() + .is(AMQPChannelType.ROUTING_KEY) + .queue(AMQPChannelQueueProperties.builder() + .name("my-queue-name") + .durable(true) + .exclusive(true) + .autoDelete(false) + .build() + ) + .exchange(AMQPChannelExchangeProperties.builder() + .name("myExchange") + .type(AMQPChannelExchangeType.TOPIC) + .durable(true) + .autoDelete(false) + .build() + ) + .build(); + } + + public static AMQPMessageBinding messageBinding () { + return AMQPMessageBinding.builder() + .contentEncoding("gzip") + .messageType("user.signup") + .build(); + } + + public static AMQPOperationBinding operationBinding () { + return AMQPOperationBinding.builder() + .expiration(100_000) + .userId("guest") + .cc(List.of("user.logs")) + .priority(10) + .deliveryMode(2) + .mandatory(false) + .bcc(List.of("external.audit")) + .replyTo("user.signedup") + .timestamp(true) + .ack(false) + .build(); + } + + public static AMQPServerBinding serverBinding () { + return new AMQPServerBinding(); + } + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = channelBinding(); + super.bindingTypeClass = AMQPChannelBinding.class; + super.pathToBindingJson = "/bindings/amqp/0.2.0/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/0.2.0/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/0.2.0/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = messageBinding(); + super.bindingTypeClass = AMQPMessageBinding.class; + super.pathToBindingJson = "/bindings/amqp/0.2.0/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/0.2.0/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/0.2.0/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = operationBinding(); + super.bindingTypeClass = AMQPOperationBinding.class; + super.pathToBindingJson = "/bindings/amqp/0.2.0/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/0.2.0/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/0.2.0/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = serverBinding(); + super.bindingTypeClass = AMQPServerBinding.class; + super.pathToBindingJson = "/bindings/amqp/0.2.0/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/0.2.0/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/0.2.0/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPV0_3_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPV0_3_0Test.java new file mode 100644 index 00000000..8f11a12a --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPV0_3_0Test.java @@ -0,0 +1,105 @@ +package com.asyncapi.bindings.amqp; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelBinding; +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelType; +import com.asyncapi.bindings.amqp.v0._3_0.channel.exchange.AMQPChannelExchangeProperties; +import com.asyncapi.bindings.amqp.v0._3_0.channel.exchange.AMQPChannelExchangeType; +import com.asyncapi.bindings.amqp.v0._3_0.channel.queue.AMQPChannelQueueProperties; +import com.asyncapi.bindings.amqp.v0._3_0.message.AMQPMessageBinding; +import com.asyncapi.bindings.amqp.v0._3_0.operation.AMQPOperationBinding; +import com.asyncapi.bindings.amqp.v0._3_0.server.AMQPServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +import java.util.List; + +@DisplayName("0.3.0") +public class AMQPV0_3_0Test { + + public static AMQPChannelBinding channelBinding () { + return AMQPChannelBinding.builder() + .is(AMQPChannelType.ROUTING_KEY) + .queue(AMQPChannelQueueProperties.builder() + .name("my-queue-name") + .durable(true) + .exclusive(true) + .autoDelete(false) + .build() + ) + .exchange(AMQPChannelExchangeProperties.builder() + .name("myExchange") + .type(AMQPChannelExchangeType.TOPIC) + .durable(true) + .autoDelete(false) + .build() + ) + .build(); + } + + public static AMQPMessageBinding messageBinding () { + return AMQPMessageBinding.builder() + .contentEncoding("gzip") + .messageType("user.signup") + .build(); + } + + public static AMQPOperationBinding operationBinding () { + return AMQPOperationBinding.builder() + .expiration(100_000) + .userId("guest") + .cc(List.of("user.logs")) + .priority(10) + .deliveryMode(2) + .mandatory(false) + .bcc(List.of("external.audit")) + .timestamp(true) + .ack(false) + .build(); + } + + public static AMQPServerBinding serverBinding () { + return new AMQPServerBinding(); + } + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = channelBinding(); + super.bindingTypeClass = AMQPChannelBinding.class; + super.pathToBindingJson = "/bindings/amqp/0.3.0/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/0.3.0/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/0.3.0/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = messageBinding(); + super.bindingTypeClass = AMQPMessageBinding.class; + super.pathToBindingJson = "/bindings/amqp/0.3.0/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/0.3.0/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/0.3.0/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = operationBinding(); + super.bindingTypeClass = AMQPOperationBinding.class; + super.pathToBindingJson = "/bindings/amqp/0.3.0/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/0.3.0/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/0.3.0/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = serverBinding(); + super.bindingTypeClass = AMQPServerBinding.class; + super.pathToBindingJson = "/bindings/amqp/0.3.0/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/0.3.0/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/0.3.0/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPWithoutVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPWithoutVersionTest.java new file mode 100644 index 00000000..62ac530c --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPWithoutVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.amqp; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelBinding; +import com.asyncapi.bindings.amqp.v0._3_0.message.AMQPMessageBinding; +import com.asyncapi.bindings.amqp.v0._3_0.operation.AMQPOperationBinding; +import com.asyncapi.bindings.amqp.v0._3_0.server.AMQPServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("without version") +public class AMQPWithoutVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = AMQPV0_3_0Test.channelBinding(); + super.bindingTypeClass = AMQPChannelBinding.class; + super.pathToBindingJson = "/bindings/amqp/without version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/without version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/without version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = AMQPV0_3_0Test.messageBinding(); + super.bindingTypeClass = AMQPMessageBinding.class; + super.pathToBindingJson = "/bindings/amqp/without version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/without version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/without version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = AMQPV0_3_0Test.operationBinding(); + super.bindingTypeClass = AMQPOperationBinding.class; + super.pathToBindingJson = "/bindings/amqp/without version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/without version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/without version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = AMQPV0_3_0Test.serverBinding(); + super.bindingTypeClass = AMQPServerBinding.class; + super.pathToBindingJson = "/bindings/amqp/without version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/without version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/without version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/v0/_2_0/channel/AMQPChannelBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/v0/_2_0/channel/AMQPChannelBindingTest.kt deleted file mode 100644 index 26396c43..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/v0/_2_0/channel/AMQPChannelBindingTest.kt +++ /dev/null @@ -1,42 +0,0 @@ -package com.asyncapi.bindings.amqp.v0._2_0.channel - -import com.asyncapi.v3.SerDeTest -import com.asyncapi.bindings.amqp.v0._2_0.channel.exchange.AMQPChannelExchangeProperties -import com.asyncapi.bindings.amqp.v0._2_0.channel.exchange.AMQPChannelExchangeType -import com.asyncapi.bindings.amqp.v0._2_0.channel.queue.AMQPChannelQueueProperties - -/** - * @version 3.0.0 - * @author Pavel Bodiachevskii - */ -class AMQPChannelBindingTest: SerDeTest() { - - override fun objectClass() = AMQPChannelBinding::class.java - - override fun baseObjectJson() = "/bindings/amqp/channel/amqpChannelBinding.json" - - override fun extendedObjectJson() = "/bindings/amqp/channel/amqpChannelBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/bindings/amqp/channel/amqpChannelBinding - wrongly extended.json" - - override fun build(): AMQPChannelBinding { - return AMQPChannelBinding.builder() - .`is`(AMQPChannelType.ROUTING_KEY) - .queue(AMQPChannelQueueProperties.builder() - .name("my-queue-name") - .durable(true) - .exclusive(true) - .autoDelete(false) - .build() - ) - .exchange(AMQPChannelExchangeProperties.builder() - .name("myExchange") - .type(AMQPChannelExchangeType.TOPIC) - .durable(true) - .autoDelete(false) - .build() - ) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/v0/_2_0/message/AMQPMessageBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/v0/_2_0/message/AMQPMessageBindingTest.kt deleted file mode 100644 index 2191fe00..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/v0/_2_0/message/AMQPMessageBindingTest.kt +++ /dev/null @@ -1,22 +0,0 @@ -package com.asyncapi.bindings.amqp.v0._2_0.message - -import com.asyncapi.v3.SerDeTest - -class AMQPMessageBindingTest: SerDeTest() { - - override fun objectClass() = AMQPMessageBinding::class.java - - override fun baseObjectJson() = "/bindings/amqp/message/amqpMessageBinding.json" - - override fun extendedObjectJson() = "/bindings/amqp/message/amqpMessageBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/bindings/amqp/message/amqpMessageBinding - wrongly extended.json" - - override fun build(): AMQPMessageBinding { - return AMQPMessageBinding.builder() - .contentEncoding("gzip") - .messageType("user.signup") - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/v0/_2_0/operation/AMQPOperationBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/v0/_2_0/operation/AMQPOperationBindingTest.kt deleted file mode 100644 index 356e0a0c..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/v0/_2_0/operation/AMQPOperationBindingTest.kt +++ /dev/null @@ -1,30 +0,0 @@ -package com.asyncapi.bindings.amqp.v0._2_0.operation - -import com.asyncapi.v3.SerDeTest - -class AMQPOperationBindingTest: SerDeTest() { - - override fun objectClass() = AMQPOperationBinding::class.java - - override fun baseObjectJson() = "/bindings/amqp/operation/amqpOperationBinding.json" - - override fun extendedObjectJson() = "/bindings/amqp/operation/amqpOperationBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/bindings/amqp/operation/amqpOperationBinding - wrongly extended.json" - - override fun build(): AMQPOperationBinding { - return AMQPOperationBinding.builder() - .expiration(100_000) - .userId("guest") - .cc(listOf("user.logs")) - .priority(10) - .deliveryMode(2) - .mandatory(false) - .bcc(listOf("external.audit")) - .replyTo("user.signedup") - .timestamp(true) - .ack(false) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/RpcClient.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/RpcClient.kt index 669644e0..f406d78b 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/RpcClient.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/RpcClient.kt @@ -8,10 +8,10 @@ import com.asyncapi.v2._0_0.model.channel.operation.Operation import com.asyncapi.v2._0_0.model.component.Components import com.asyncapi.v2._0_0.model.info.Info import com.asyncapi.v2._0_0.model.server.Server -import com.asyncapi.bindings.amqp.v0._2_0.channel.AMQPChannelBinding -import com.asyncapi.bindings.amqp.v0._2_0.channel.AMQPChannelType -import com.asyncapi.bindings.amqp.v0._2_0.channel.queue.AMQPChannelQueueProperties -import com.asyncapi.bindings.amqp.v0._2_0.operation.AMQPOperationBinding +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelBinding +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelType +import com.asyncapi.bindings.amqp.v0._3_0.channel.queue.AMQPChannelQueueProperties +import com.asyncapi.bindings.amqp.v0._3_0.operation.AMQPOperationBinding import com.asyncapi.v2.schema.Schema class RpcClient: AbstractExampleValidationTest() { diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/RpcServer.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/RpcServer.kt index 20fd2450..7f266767 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/RpcServer.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/RpcServer.kt @@ -8,10 +8,10 @@ import com.asyncapi.v2._0_0.model.channel.operation.Operation import com.asyncapi.v2._0_0.model.component.Components import com.asyncapi.v2._0_0.model.info.Info import com.asyncapi.v2._0_0.model.server.Server -import com.asyncapi.bindings.amqp.v0._2_0.channel.AMQPChannelBinding -import com.asyncapi.bindings.amqp.v0._2_0.channel.AMQPChannelType -import com.asyncapi.bindings.amqp.v0._2_0.channel.queue.AMQPChannelQueueProperties -import com.asyncapi.bindings.amqp.v0._2_0.operation.AMQPOperationBinding +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelBinding +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelType +import com.asyncapi.bindings.amqp.v0._3_0.channel.queue.AMQPChannelQueueProperties +import com.asyncapi.bindings.amqp.v0._3_0.operation.AMQPOperationBinding import com.asyncapi.v2.schema.Schema class RpcServer: AbstractExampleValidationTest() { diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/RpcClient.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/RpcClient.kt index 2b2abed8..17f6f40a 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/RpcClient.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/RpcClient.kt @@ -8,10 +8,10 @@ import com.asyncapi.v2._6_0.model.channel.operation.Operation import com.asyncapi.v2._6_0.model.component.Components import com.asyncapi.v2._6_0.model.info.Info import com.asyncapi.v2._6_0.model.server.Server -import com.asyncapi.bindings.amqp.v0._2_0.channel.AMQPChannelBinding -import com.asyncapi.bindings.amqp.v0._2_0.channel.AMQPChannelType -import com.asyncapi.bindings.amqp.v0._2_0.channel.queue.AMQPChannelQueueProperties -import com.asyncapi.bindings.amqp.v0._2_0.operation.AMQPOperationBinding +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelBinding +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelType +import com.asyncapi.bindings.amqp.v0._3_0.channel.queue.AMQPChannelQueueProperties +import com.asyncapi.bindings.amqp.v0._3_0.operation.AMQPOperationBinding import com.asyncapi.v2.schema.Schema class RpcClient: AbstractExampleValidationTest() { diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/RpcServer.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/RpcServer.kt index a25c741f..a62ee78e 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/RpcServer.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/RpcServer.kt @@ -8,10 +8,10 @@ import com.asyncapi.v2._6_0.model.channel.operation.Operation import com.asyncapi.v2._6_0.model.component.Components import com.asyncapi.v2._6_0.model.info.Info import com.asyncapi.v2._6_0.model.server.Server -import com.asyncapi.bindings.amqp.v0._2_0.channel.AMQPChannelBinding -import com.asyncapi.bindings.amqp.v0._2_0.channel.AMQPChannelType -import com.asyncapi.bindings.amqp.v0._2_0.channel.queue.AMQPChannelQueueProperties -import com.asyncapi.bindings.amqp.v0._2_0.operation.AMQPOperationBinding +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelBinding +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelType +import com.asyncapi.bindings.amqp.v0._3_0.channel.queue.AMQPChannelQueueProperties +import com.asyncapi.bindings.amqp.v0._3_0.operation.AMQPOperationBinding import com.asyncapi.v2.schema.Schema class RpcServer: AbstractExampleValidationTest() { diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/RpcClientAsyncAPI.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/RpcClientAsyncAPI.kt index 56e2cd70..1d0a514a 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/RpcClientAsyncAPI.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/RpcClientAsyncAPI.kt @@ -10,10 +10,10 @@ import com.asyncapi.v3._0_0.model.info.Info import com.asyncapi.v3._0_0.model.operation.Operation import com.asyncapi.v3._0_0.model.operation.OperationAction import com.asyncapi.v3._0_0.model.server.Server -import com.asyncapi.bindings.amqp.v0._2_0.channel.AMQPChannelBinding -import com.asyncapi.bindings.amqp.v0._2_0.channel.AMQPChannelType -import com.asyncapi.bindings.amqp.v0._2_0.channel.queue.AMQPChannelQueueProperties -import com.asyncapi.bindings.amqp.v0._2_0.operation.AMQPOperationBinding +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelBinding +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelType +import com.asyncapi.bindings.amqp.v0._3_0.channel.queue.AMQPChannelQueueProperties +import com.asyncapi.bindings.amqp.v0._3_0.operation.AMQPOperationBinding import com.asyncapi.v3.schema.AsyncAPISchema class RpcClientAsyncAPI: AbstractExampleValidationTest() { diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/RpcServerAsyncAPI.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/RpcServerAsyncAPI.kt index c84361a5..efc3e077 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/RpcServerAsyncAPI.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/RpcServerAsyncAPI.kt @@ -10,10 +10,10 @@ import com.asyncapi.v3._0_0.model.info.Info import com.asyncapi.v3._0_0.model.operation.Operation import com.asyncapi.v3._0_0.model.operation.OperationAction import com.asyncapi.v3._0_0.model.server.Server -import com.asyncapi.bindings.amqp.v0._2_0.channel.AMQPChannelBinding -import com.asyncapi.bindings.amqp.v0._2_0.channel.AMQPChannelType -import com.asyncapi.bindings.amqp.v0._2_0.channel.queue.AMQPChannelQueueProperties -import com.asyncapi.bindings.amqp.v0._2_0.operation.AMQPOperationBinding +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelBinding +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelType +import com.asyncapi.bindings.amqp.v0._3_0.channel.queue.AMQPChannelQueueProperties +import com.asyncapi.bindings.amqp.v0._3_0.operation.AMQPOperationBinding import com.asyncapi.v3.schema.AsyncAPISchema class RpcServerAsyncAPI: AbstractExampleValidationTest() { diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/ChannelItemTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/ChannelItemTest.kt index d4d4b595..74bcd332 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/ChannelItemTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/ChannelItemTest.kt @@ -5,7 +5,7 @@ import com.asyncapi.v2._0_0.model.channel.operation.OperationWithMessageTest import com.asyncapi.v2._0_0.model.channel.operation.OperationWithReferenceToMessageTest import com.asyncapi.v2.schema.Schema import com.asyncapi.bindings.ChannelBinding -import com.asyncapi.bindings.amqp.v0._2_0.channel.AMQPChannelBindingTest +import com.asyncapi.bindings.amqp.AMQPV0_2_0Test import com.asyncapi.bindings.amqp1.v0._1_0.channel.AMQP1ChannelBinding import com.asyncapi.bindings.anypointmq.v0._0_1.channel.AnypointMQChannelBindingTest import com.asyncapi.bindings.googlepubsub.v0._1_0.channel.GooglePubSubChannelBindingTest @@ -55,7 +55,7 @@ class ChannelItemTest: SerDeTest() { companion object { fun bindings(): Map { return mapOf( - Pair("amqp", AMQPChannelBindingTest().build()), + Pair("amqp", AMQPV0_2_0Test.channelBinding()), Pair("amqp1", AMQP1ChannelBinding()), Pair("anypointmq", AnypointMQChannelBindingTest().build()), Pair("googlepubsub", GooglePubSubChannelBindingTest().build()), diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/message/MessageTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/message/MessageTest.kt index 1482e4a9..1bc03805 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/message/MessageTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/message/MessageTest.kt @@ -6,7 +6,7 @@ import com.asyncapi.Reference import com.asyncapi.v2._0_0.model.Tag import com.asyncapi.v2.schema.Schema import com.asyncapi.bindings.MessageBinding -import com.asyncapi.bindings.amqp.v0._2_0.message.AMQPMessageBindingTest +import com.asyncapi.bindings.amqp.AMQPV0_2_0Test import com.asyncapi.bindings.amqp1.v0._1_0.message.AMQP1MessageBinding import com.asyncapi.bindings.anypointmq.v0._0_1.message.AnypointMQMessageBindingTest import com.asyncapi.bindings.googlepubsub.v0._1_0.message.GooglePubSubMessageBindingTest @@ -114,7 +114,7 @@ class MessageTest: SerDeTest() { companion object { fun bindings(): Map { return mapOf( - Pair("amqp", AMQPMessageBindingTest().build()), + Pair("amqp", AMQPV0_2_0Test.messageBinding()), Pair("amqp1", AMQP1MessageBinding()), Pair("anypointmq", AnypointMQMessageBindingTest().build()), Pair("googlepubsub", GooglePubSubMessageBindingTest().build()), diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/message/MessageTraitTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/message/MessageTraitTest.kt index 5ba3cd3d..a6b382cf 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/message/MessageTraitTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/message/MessageTraitTest.kt @@ -4,7 +4,7 @@ import com.asyncapi.v2.SerDeTest import com.asyncapi.v2._0_0.model.ExternalDocumentation import com.asyncapi.v2._0_0.model.Tag import com.asyncapi.v2.schema.Schema -import com.asyncapi.bindings.amqp.v0._2_0.message.AMQPMessageBindingTest +import com.asyncapi.bindings.amqp.AMQPV0_2_0Test import com.asyncapi.bindings.amqp1.v0._1_0.message.AMQP1MessageBinding import com.asyncapi.bindings.anypointmq.v0._0_1.message.AnypointMQMessageBindingTest import com.asyncapi.bindings.googlepubsub.v0._1_0.message.GooglePubSubMessageBindingTest @@ -73,7 +73,7 @@ class MessageTraitTest: SerDeTest() { )) .externalDocs(ExternalDocumentation("User sign up rules", "messages/sign-up-rules")) .bindings(mapOf( - Pair("amqp", AMQPMessageBindingTest().build()), + Pair("amqp", AMQPV0_2_0Test.messageBinding()), Pair("amqp1", AMQP1MessageBinding()), Pair("anypointmq", AnypointMQMessageBindingTest().build()), Pair("googlepubsub", GooglePubSubMessageBindingTest().build()), diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/operation/OperationTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/operation/OperationTest.kt index a7865936..5ae29c36 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/operation/OperationTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/operation/OperationTest.kt @@ -6,7 +6,7 @@ import com.asyncapi.Reference import com.asyncapi.v2._0_0.model.Tag import com.asyncapi.v2._0_0.model.channel.message.MessageTest import com.asyncapi.bindings.OperationBinding -import com.asyncapi.bindings.amqp.v0._2_0.operation.AMQPOperationBindingTest +import com.asyncapi.bindings.amqp.AMQPV0_2_0Test import com.asyncapi.bindings.amqp1.v0._1_0.operation.AMQP1OperationBinding import com.asyncapi.bindings.anypointmq.v0._0_1.operation.AnypointMQOperationBinding import com.asyncapi.bindings.googlepubsub.v0._1_0.operation.GooglePubSubOperationBinding @@ -101,7 +101,7 @@ class OperationTest { @JvmStatic fun bindings(): Map { return mapOf( - Pair("amqp", AMQPOperationBindingTest().build()), + Pair("amqp", AMQPV0_2_0Test.operationBinding()), Pair("amqp1", AMQP1OperationBinding()), Pair("anypointmq", AnypointMQOperationBinding()), Pair("googlepubsub", GooglePubSubOperationBinding()), diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/operation/OperationTraitTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/operation/OperationTraitTest.kt index edaaf32c..05a06df0 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/operation/OperationTraitTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/operation/OperationTraitTest.kt @@ -3,7 +3,7 @@ package com.asyncapi.v2._0_0.model.channel.operation import com.asyncapi.v2.SerDeTest import com.asyncapi.v2._0_0.model.ExternalDocumentation import com.asyncapi.v2._0_0.model.Tag -import com.asyncapi.bindings.amqp.v0._2_0.operation.AMQPOperationBindingTest +import com.asyncapi.bindings.amqp.AMQPV0_2_0Test import com.asyncapi.bindings.amqp1.v0._1_0.operation.AMQP1OperationBinding import com.asyncapi.bindings.anypointmq.v0._0_1.operation.AnypointMQOperationBinding import com.asyncapi.bindings.googlepubsub.v0._1_0.operation.GooglePubSubOperationBinding @@ -50,7 +50,7 @@ class OperationTraitTest: SerDeTest() { )) .externalDocs(ExternalDocumentation("Messages sending rules", "messages/sending-rules")) .bindings(mapOf( - Pair("amqp", AMQPOperationBindingTest().build()), + Pair("amqp", AMQPV0_2_0Test.operationBinding()), Pair("amqp1", AMQP1OperationBinding()), Pair("anypointmq", AnypointMQOperationBinding()), Pair("googlepubsub", GooglePubSubOperationBinding()), diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/ChannelItemTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/ChannelItemTest.kt index babcdfdb..9ad25aad 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/ChannelItemTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/ChannelItemTest.kt @@ -5,7 +5,7 @@ import com.asyncapi.v2.SerDeTest import com.asyncapi.v2._6_0.model.channel.operation.OperationWithMessageTest import com.asyncapi.v2._6_0.model.channel.operation.OperationWithOneOfMessageTest import com.asyncapi.v2.schema.Schema -import com.asyncapi.bindings.amqp.v0._2_0.channel.AMQPChannelBindingTest +import com.asyncapi.bindings.amqp.AMQPV0_2_0Test import com.asyncapi.bindings.anypointmq.v0._0_1.channel.AnypointMQChannelBindingTest import com.asyncapi.bindings.googlepubsub.v0._1_0.channel.GooglePubSubChannelBindingTest import com.asyncapi.bindings.ibmmq.v0._1_0.channel.IBMMQChannelBindingTest @@ -44,7 +44,7 @@ class ChannelItemTest: SerDeTest() { companion object { fun bindings(): Map { return mapOf( - Pair("amqp", AMQPChannelBindingTest().build()), + Pair("amqp", AMQPV0_2_0Test.channelBinding()), Pair("amqp1", Reference("#/components/channelBindings/amqp1")), Pair("anypointmq", AnypointMQChannelBindingTest().build()), Pair("googlepubsub", GooglePubSubChannelBindingTest().build()), diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/message/MessageTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/message/MessageTest.kt index e5cc196b..b36c738c 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/message/MessageTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/message/MessageTest.kt @@ -5,7 +5,7 @@ import com.asyncapi.v2.SerDeTest import com.asyncapi.v2._6_0.model.ExternalDocumentation import com.asyncapi.v2._6_0.model.Tag import com.asyncapi.v2.schema.Schema -import com.asyncapi.bindings.amqp.v0._2_0.message.AMQPMessageBindingTest +import com.asyncapi.bindings.amqp.AMQPV0_2_0Test import com.asyncapi.bindings.anypointmq.v0._0_1.message.AnypointMQMessageBindingTest import com.asyncapi.bindings.googlepubsub.v0._1_0.message.GooglePubSubMessageBindingTest import com.asyncapi.bindings.http.v0._1_0.message.HTTPMessageBindingTest @@ -88,7 +88,7 @@ class MessageTest: SerDeTest() { companion object { fun bindings(): Map { return mapOf( - Pair("amqp", AMQPMessageBindingTest().build()), + Pair("amqp", AMQPV0_2_0Test.messageBinding()), Pair("amqp1", Reference("#/components/messageBindings/amqp1")), Pair("anypointmq", AnypointMQMessageBindingTest().build()), Pair("googlepubsub", GooglePubSubMessageBindingTest().build()), diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/message/MessageTraitTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/message/MessageTraitTest.kt index 8d818abf..4a570ef7 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/message/MessageTraitTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/message/MessageTraitTest.kt @@ -5,7 +5,7 @@ import com.asyncapi.v2.SerDeTest import com.asyncapi.v2._6_0.model.ExternalDocumentation import com.asyncapi.v2._6_0.model.Tag import com.asyncapi.v2.schema.Schema -import com.asyncapi.bindings.amqp.v0._2_0.message.AMQPMessageBindingTest +import com.asyncapi.bindings.amqp.AMQPV0_2_0Test import com.asyncapi.bindings.anypointmq.v0._0_1.message.AnypointMQMessageBindingTest import com.asyncapi.bindings.googlepubsub.v0._1_0.message.GooglePubSubMessageBindingTest import com.asyncapi.bindings.http.v0._1_0.message.HTTPMessageBindingTest @@ -60,7 +60,7 @@ class MessageTraitTest: SerDeTest() { )) .externalDocs(ExternalDocumentation("User sign up rules", "messages/sign-up-rules")) .bindings(mapOf( - Pair("amqp", AMQPMessageBindingTest().build()), + Pair("amqp", AMQPV0_2_0Test.messageBinding()), Pair("amqp1", Reference("#/components/messageBindings/amqp1")), Pair("anypointmq", AnypointMQMessageBindingTest().build()), Pair("googlepubsub", GooglePubSubMessageBindingTest().build()), diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/operation/OperationTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/operation/OperationTest.kt index 91129647..52240074 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/operation/OperationTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/operation/OperationTest.kt @@ -6,7 +6,7 @@ import com.asyncapi.v2._6_0.model.ExternalDocumentation import com.asyncapi.v2._6_0.model.Tag import com.asyncapi.v2._6_0.model.channel.message.MessageTest import com.asyncapi.v2._6_0.model.channel.message.OneOfMessages -import com.asyncapi.bindings.amqp.v0._2_0.operation.AMQPOperationBindingTest +import com.asyncapi.bindings.amqp.AMQPV0_2_0Test import com.asyncapi.bindings.http.v0._1_0.operation.HTTPOperationBindingTest import com.asyncapi.bindings.kafka.v0._4_0.operation.KafkaOperationBindingTest import com.asyncapi.bindings.mqtt.v0._1_0.operation.MQTTOperationBindingTest @@ -136,7 +136,7 @@ class OperationTest { @JvmStatic fun bindings(): Map { return mapOf( - Pair("amqp", AMQPOperationBindingTest().build()), + Pair("amqp", AMQPV0_2_0Test.operationBinding()), Pair("amqp1", Reference("#/components/operationBindings/amqp1")), Pair("anypointmq", Reference("#/components/operationBindings/anypointmq")), Pair("googlepubsub", Reference("#/components/operationBindings/googlepubsub")), diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/operation/OperationTraitTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/operation/OperationTraitTest.kt index 93ad9962..519c679c 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/operation/OperationTraitTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/operation/OperationTraitTest.kt @@ -4,7 +4,7 @@ import com.asyncapi.Reference import com.asyncapi.v2.SerDeTest import com.asyncapi.v2._6_0.model.ExternalDocumentation import com.asyncapi.v2._6_0.model.Tag -import com.asyncapi.bindings.amqp.v0._2_0.operation.AMQPOperationBindingTest +import com.asyncapi.bindings.amqp.AMQPV0_2_0Test import com.asyncapi.bindings.http.v0._1_0.operation.HTTPOperationBindingTest import com.asyncapi.bindings.kafka.v0._4_0.operation.KafkaOperationBindingTest import com.asyncapi.bindings.mqtt.v0._1_0.operation.MQTTOperationBindingTest @@ -40,7 +40,7 @@ class OperationTraitTest: SerDeTest() { )) .externalDocs(ExternalDocumentation("Messages sending rules", "messages/sending-rules")) .bindings(mapOf( - Pair("amqp", AMQPOperationBindingTest().build()), + Pair("amqp", AMQPV0_2_0Test.operationBinding()), Pair("amqp1", Reference("#/components/operationBindings/amqp1")), Pair("anypointmq", Reference("#/components/operationBindings/anypointmq")), Pair("googlepubsub", Reference("#/components/operationBindings/googlepubsub")), diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/channel/ChannelTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/channel/ChannelTest.kt index cbdda007..69714add 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/channel/ChannelTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/channel/ChannelTest.kt @@ -8,7 +8,7 @@ import com.asyncapi.v3._0_0.model.TagTestWithReferenceToExternalDocs import com.asyncapi.v3._0_0.model.channel.message.MessageTestWithMultiFormatSchema import com.asyncapi.v3._0_0.model.channel.message.MessageTestWithReference import com.asyncapi.v3._0_0.model.channel.message.MessageTestWithSchema -import com.asyncapi.bindings.amqp.v0._2_0.channel.AMQPChannelBindingTest +import com.asyncapi.bindings.amqp.AMQPV0_2_0Test import com.asyncapi.bindings.anypointmq.v0._0_1.channel.AnypointMQChannelBindingTest import com.asyncapi.bindings.googlepubsub.v0._1_0.channel.GooglePubSubChannelBindingTest import com.asyncapi.bindings.ibmmq.v0._1_0.channel.IBMMQChannelBindingTest @@ -64,7 +64,7 @@ class ChannelTest: SerDeTest() { companion object { fun bindings(): Map { return mapOf( - Pair("amqp", AMQPChannelBindingTest().build()), + Pair("amqp", AMQPV0_2_0Test.channelBinding()), Pair("amqp1", Reference("#/components/channelBindings/amqp1")), Pair("anypointmq", AnypointMQChannelBindingTest().build()), Pair("googlepubsub", GooglePubSubChannelBindingTest().build()), @@ -137,7 +137,7 @@ class ChannelTestWithReference: SerDeTest() { companion object { fun bindings(): Map { return mapOf( - Pair("amqp", AMQPChannelBindingTest().build()), + Pair("amqp", AMQPV0_2_0Test.channelBinding()), Pair("amqp1", Reference("#/components/channelBindings/amqp1")), Pair("anypointmq", AnypointMQChannelBindingTest().build()), Pair("googlepubsub", GooglePubSubChannelBindingTest().build()), diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/channel/message/MessageTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/channel/message/MessageTest.kt index 40b353fb..74d57c49 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/channel/message/MessageTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/channel/message/MessageTest.kt @@ -4,7 +4,7 @@ import com.asyncapi.Reference import com.asyncapi.v3.SerDeTest import com.asyncapi.v3._0_0.model.ExternalDocumentation import com.asyncapi.v3._0_0.model.Tag -import com.asyncapi.bindings.amqp.v0._2_0.message.AMQPMessageBindingTest +import com.asyncapi.bindings.amqp.AMQPV0_2_0Test import com.asyncapi.bindings.anypointmq.v0._0_1.message.AnypointMQMessageBindingTest import com.asyncapi.bindings.googlepubsub.v0._1_0.message.GooglePubSubMessageBindingTest import com.asyncapi.bindings.http.v0._1_0.message.HTTPMessageBindingTest @@ -84,7 +84,7 @@ class MessageTestWithSchema: SerDeTest() { companion object { fun bindings(): Map { return mapOf( - Pair("amqp", AMQPMessageBindingTest().build()), + Pair("amqp", AMQPV0_2_0Test.messageBinding()), Pair("amqp1", Reference("#/components/messageBindings/amqp1")), Pair("anypointmq", AnypointMQMessageBindingTest().build()), Pair("googlepubsub", GooglePubSubMessageBindingTest().build()), @@ -137,7 +137,7 @@ class MessageTestWithReference: SerDeTest() { )) .externalDocs(Reference("#/components/externalDocs/external-doc")) .bindings(mapOf( - Pair("amqp", AMQPMessageBindingTest().build()), + Pair("amqp", AMQPV0_2_0Test.messageBinding()), Pair("amqp1", Reference("#/components/messageBindings/amqp1")), Pair("anypointmq", AnypointMQMessageBindingTest().build()), Pair("googlepubsub", GooglePubSubMessageBindingTest().build()), @@ -227,7 +227,7 @@ class MessageTestWithMultiFormatSchema: SerDeTest() { )) .externalDocs(Reference("#/components/externalDocs/external-doc")) .bindings(mapOf( - Pair("amqp", AMQPMessageBindingTest().build()), + Pair("amqp", AMQPV0_2_0Test.messageBinding()), Pair("amqp1", Reference("#/components/messageBindings/amqp1")), Pair("anypointmq", AnypointMQMessageBindingTest().build()), Pair("googlepubsub", GooglePubSubMessageBindingTest().build()), diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/channel/message/MessageTraitTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/channel/message/MessageTraitTest.kt index 4e0a823c..7afb32c1 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/channel/message/MessageTraitTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/channel/message/MessageTraitTest.kt @@ -5,7 +5,7 @@ import com.asyncapi.v3.SerDeTest import com.asyncapi.v3._0_0.model.ExternalDocumentation import com.asyncapi.v3._0_0.model.Tag import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.bindings.amqp.v0._2_0.message.AMQPMessageBindingTest +import com.asyncapi.bindings.amqp.AMQPV0_2_0Test import com.asyncapi.bindings.anypointmq.v0._0_1.message.AnypointMQMessageBindingTest import com.asyncapi.bindings.googlepubsub.v0._1_0.message.GooglePubSubMessageBindingTest import com.asyncapi.bindings.http.v0._1_0.message.HTTPMessageBindingTest @@ -59,7 +59,7 @@ class MessageTraitTestWithSchema: SerDeTest() { )) .externalDocs(ExternalDocumentation("User sign up rules", "messages/sign-up-rules")) .bindings(mapOf( - Pair("amqp", AMQPMessageBindingTest().build()), + Pair("amqp", AMQPV0_2_0Test.messageBinding()), Pair("amqp1", Reference("#/components/messageBindings/amqp1")), Pair("anypointmq", AnypointMQMessageBindingTest().build()), Pair("googlepubsub", GooglePubSubMessageBindingTest().build()), @@ -114,7 +114,7 @@ class MessageTraitTestWithReference: SerDeTest() { )) .externalDocs(Reference("#/components/externalDocs/external-doc")) .bindings(mapOf( - Pair("amqp", AMQPMessageBindingTest().build()), + Pair("amqp", AMQPV0_2_0Test.messageBinding()), Pair("amqp1", Reference("#/components/messageBindings/amqp1")), Pair("anypointmq", AnypointMQMessageBindingTest().build()), Pair("googlepubsub", GooglePubSubMessageBindingTest().build()), @@ -186,7 +186,7 @@ class MessageTraitTestWithMultiFormatSchema: SerDeTest() { )) .externalDocs(Reference("#/components/externalDocs/external-doc")) .bindings(mapOf( - Pair("amqp", AMQPMessageBindingTest().build()), + Pair("amqp", AMQPV0_2_0Test.messageBinding()), Pair("amqp1", Reference("#/components/messageBindings/amqp1")), Pair("anypointmq", AnypointMQMessageBindingTest().build()), Pair("googlepubsub", GooglePubSubMessageBindingTest().build()), diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/operation/OperationTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/operation/OperationTest.kt index 94ff2dbd..5d1ac7c9 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/operation/OperationTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/operation/OperationTest.kt @@ -1,6 +1,6 @@ package com.asyncapi.v3._0_0.model.operation -import com.asyncapi.bindings.amqp.v0._2_0.operation.AMQPOperationBindingTest +import com.asyncapi.bindings.amqp.AMQPV0_2_0Test import com.asyncapi.bindings.http.v0._1_0.operation.HTTPOperationBindingTest import com.asyncapi.bindings.kafka.v0._4_0.operation.KafkaOperationBindingTest import com.asyncapi.bindings.mqtt.v0._1_0.operation.MQTTOperationBindingTest @@ -63,7 +63,7 @@ class OperationTest: SerDeTest() { companion object { fun bindings(): Map { return mapOf( - Pair("amqp", AMQPOperationBindingTest().build()), + Pair("amqp", AMQPV0_2_0Test.operationBinding()), Pair("amqp1", Reference("#/components/operationBindings/amqp1")), Pair("anypointmq", Reference("#/components/operationBindings/anypointmq") @@ -121,7 +121,7 @@ class OperationTestWithReference: SerDeTest() { )) .externalDocs(Reference("#/components/externalDocs/external-doc")) .bindings(mapOf( - Pair("amqp", AMQPOperationBindingTest().build()), + Pair("amqp", AMQPV0_2_0Test.operationBinding()), Pair("amqp1", Reference("#/components/operationBindings/amqp1")), Pair("anypointmq", Reference("#/components/operationBindings/anypointmq") diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/operation/OperationTraitTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/operation/OperationTraitTest.kt index b477904e..4b643d7c 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/operation/OperationTraitTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/operation/OperationTraitTest.kt @@ -1,6 +1,6 @@ package com.asyncapi.v3._0_0.model.operation -import com.asyncapi.bindings.amqp.v0._2_0.operation.AMQPOperationBindingTest +import com.asyncapi.bindings.amqp.AMQPV0_2_0Test import com.asyncapi.bindings.http.v0._1_0.operation.HTTPOperationBindingTest import com.asyncapi.bindings.kafka.v0._4_0.operation.KafkaOperationBindingTest import com.asyncapi.bindings.mqtt.v0._1_0.operation.MQTTOperationBindingTest @@ -43,7 +43,7 @@ class OperationTraitTest: SerDeTest() { )) .externalDocs(ExternalDocumentation("Messages validation rules", "messages/validation-rules")) .bindings(mapOf( - Pair("amqp", AMQPOperationBindingTest().build()), + Pair("amqp", AMQPV0_2_0Test.operationBinding()), Pair("amqp1", Reference("#/components/operationBindings/amqp1")), Pair("anypointmq", Reference("#/components/operationBindings/anypointmq") @@ -103,7 +103,7 @@ class OperationTraitTestWithReference: SerDeTest() { )) .externalDocs(Reference("#/components/externalDocs/external-doc")) .bindings(mapOf( - Pair("amqp", AMQPOperationBindingTest().build()), + Pair("amqp", AMQPV0_2_0Test.operationBinding()), Pair("amqp1", Reference("#/components/operationBindings/amqp1")), Pair("anypointmq", Reference("#/components/operationBindings/anypointmq") diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/channel/binding - extended.json new file mode 100644 index 00000000..1c659ddd --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/channel/binding - extended.json @@ -0,0 +1,21 @@ +{ + "bindingVersion" : "0.1.0", + "is" : "routingKey", + "exchange" : { + "name" : "myExchange", + "type" : "topic", + "durable" : true, + "autoDelete" : false + }, + "queue" : { + "name" : "my-queue-name", + "durable" : true, + "exclusive" : true, + "autoDelete" : false + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/channel/binding - wrongly extended.json new file mode 100644 index 00000000..111cd753 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/channel/binding - wrongly extended.json @@ -0,0 +1,22 @@ +{ + "is": "routingKey", + "queue": { + "name": "my-queue-name", + "durable": true, + "exclusive": true, + "autoDelete": false + }, + "exchange": { + "name": "myExchange", + "type": "topic", + "durable": true, + "autoDelete": false + }, + "bindingVersion": "0.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/channel/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/channel/binding.json new file mode 100644 index 00000000..06ac7dda --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/channel/binding.json @@ -0,0 +1,16 @@ +{ + "is": "routingKey", + "queue": { + "name": "my-queue-name", + "durable": true, + "exclusive": true, + "autoDelete": false + }, + "exchange": { + "name": "myExchange", + "type": "topic", + "durable": true, + "autoDelete": false + }, + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/message/binding - extended.json new file mode 100644 index 00000000..6673d9d8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/message/binding - extended.json @@ -0,0 +1,10 @@ +{ + "bindingVersion" : "0.1.0", + "contentEncoding" : "gzip", + "messageType" : "user.signup", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/message/binding - wrongly extended.json new file mode 100644 index 00000000..61f8b5f8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/message/binding - wrongly extended.json @@ -0,0 +1,11 @@ +{ + "contentEncoding": "gzip", + "messageType": "user.signup", + "bindingVersion": "0.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/message/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/message/binding.json new file mode 100644 index 00000000..5e4323a4 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/message/binding.json @@ -0,0 +1,5 @@ +{ + "contentEncoding": "gzip", + "messageType": "user.signup", + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/operation/binding - extended.json new file mode 100644 index 00000000..0ad32381 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/operation/binding - extended.json @@ -0,0 +1,18 @@ +{ + "bindingVersion" : "0.1.0", + "expiration" : 100000, + "userId" : "guest", + "cc" : [ "user.logs" ], + "priority" : 10, + "deliveryMode" : 2, + "mandatory" : false, + "bcc" : [ "external.audit" ], + "replyTo" : "user.signedup", + "timestamp" : true, + "ack" : false, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/operation/binding - wrongly extended.json new file mode 100644 index 00000000..b965b215 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/operation/binding - wrongly extended.json @@ -0,0 +1,23 @@ +{ + "expiration": 100000, + "userId": "guest", + "cc": [ + "user.logs" + ], + "priority": 10, + "deliveryMode": 2, + "mandatory": false, + "bcc": [ + "external.audit" + ], + "replyTo": "user.signedup", + "timestamp": true, + "ack": false, + "bindingVersion": "0.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/operation/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/operation/binding.json new file mode 100644 index 00000000..cac652d9 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/operation/binding.json @@ -0,0 +1,17 @@ +{ + "expiration": 100000, + "userId": "guest", + "cc": [ + "user.logs" + ], + "priority": 10, + "deliveryMode": 2, + "mandatory": false, + "bcc": [ + "external.audit" + ], + "replyTo": "user.signedup", + "timestamp": true, + "ack": false, + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/server/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/server/binding - wrongly extended.json new file mode 100644 index 00000000..a1ecfd51 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/server/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/server/binding.json new file mode 100644 index 00000000..04dbf945 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/channel/amqpChannelBinding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/channel/binding - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/bindings/amqp/channel/amqpChannelBinding - extended.json rename to asyncapi-core/src/test/resources/bindings/amqp/0.2.0/channel/binding - extended.json diff --git a/asyncapi-core/src/test/resources/bindings/amqp/channel/amqpChannelBinding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/channel/binding - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/bindings/amqp/channel/amqpChannelBinding - wrongly extended.json rename to asyncapi-core/src/test/resources/bindings/amqp/0.2.0/channel/binding - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/bindings/amqp/channel/amqpChannelBinding.json b/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/channel/binding.json similarity index 100% rename from asyncapi-core/src/test/resources/bindings/amqp/channel/amqpChannelBinding.json rename to asyncapi-core/src/test/resources/bindings/amqp/0.2.0/channel/binding.json diff --git a/asyncapi-core/src/test/resources/bindings/amqp/message/amqpMessageBinding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/message/binding - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/bindings/amqp/message/amqpMessageBinding - extended.json rename to asyncapi-core/src/test/resources/bindings/amqp/0.2.0/message/binding - extended.json diff --git a/asyncapi-core/src/test/resources/bindings/amqp/message/amqpMessageBinding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/message/binding - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/bindings/amqp/message/amqpMessageBinding - wrongly extended.json rename to asyncapi-core/src/test/resources/bindings/amqp/0.2.0/message/binding - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/bindings/amqp/message/amqpMessageBinding.json b/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/message/binding.json similarity index 100% rename from asyncapi-core/src/test/resources/bindings/amqp/message/amqpMessageBinding.json rename to asyncapi-core/src/test/resources/bindings/amqp/0.2.0/message/binding.json diff --git a/asyncapi-core/src/test/resources/bindings/amqp/operation/amqpOperationBinding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/operation/binding - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/bindings/amqp/operation/amqpOperationBinding - extended.json rename to asyncapi-core/src/test/resources/bindings/amqp/0.2.0/operation/binding - extended.json diff --git a/asyncapi-core/src/test/resources/bindings/amqp/operation/amqpOperationBinding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/operation/binding - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/bindings/amqp/operation/amqpOperationBinding - wrongly extended.json rename to asyncapi-core/src/test/resources/bindings/amqp/0.2.0/operation/binding - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/bindings/amqp/operation/amqpOperationBinding.json b/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/operation/binding.json similarity index 100% rename from asyncapi-core/src/test/resources/bindings/amqp/operation/amqpOperationBinding.json rename to asyncapi-core/src/test/resources/bindings/amqp/0.2.0/operation/binding.json diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/server/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/server/binding - wrongly extended.json new file mode 100644 index 00000000..1cb38f9c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.2.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/server/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/server/binding.json new file mode 100644 index 00000000..a22565a8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.2.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/channel/binding - extended.json new file mode 100644 index 00000000..0711c55c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/channel/binding - extended.json @@ -0,0 +1,23 @@ +{ + "bindingVersion" : "0.3.0", + "is" : "routingKey", + "exchange" : { + "name" : "myExchange", + "type" : "topic", + "durable" : true, + "autoDelete" : false, + "vhost" : "/" + }, + "queue" : { + "name" : "my-queue-name", + "durable" : true, + "exclusive" : true, + "autoDelete" : false, + "vhost" : "/" + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/channel/binding - wrongly extended.json new file mode 100644 index 00000000..4168c470 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/channel/binding - wrongly extended.json @@ -0,0 +1,24 @@ +{ + "is": "routingKey", + "queue": { + "name": "my-queue-name", + "durable": true, + "exclusive": true, + "autoDelete": false, + "vhost": "/" + }, + "exchange": { + "name": "myExchange", + "type": "topic", + "durable": true, + "autoDelete": false, + "vhost": "/" + }, + "bindingVersion": "0.3.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/channel/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/channel/binding.json new file mode 100644 index 00000000..06cff58b --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/channel/binding.json @@ -0,0 +1,18 @@ +{ + "is": "routingKey", + "queue": { + "name": "my-queue-name", + "durable": true, + "exclusive": true, + "autoDelete": false, + "vhost": "/" + }, + "exchange": { + "name": "myExchange", + "type": "topic", + "durable": true, + "autoDelete": false, + "vhost": "/" + }, + "bindingVersion": "0.3.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/message/binding - extended.json new file mode 100644 index 00000000..730ae10b --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/message/binding - extended.json @@ -0,0 +1,10 @@ +{ + "bindingVersion" : "0.3.0", + "contentEncoding" : "gzip", + "messageType" : "user.signup", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/message/binding - wrongly extended.json new file mode 100644 index 00000000..e58030ff --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/message/binding - wrongly extended.json @@ -0,0 +1,11 @@ +{ + "contentEncoding": "gzip", + "messageType": "user.signup", + "bindingVersion": "0.3.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/message/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/message/binding.json new file mode 100644 index 00000000..5cb3ca90 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/message/binding.json @@ -0,0 +1,5 @@ +{ + "contentEncoding": "gzip", + "messageType": "user.signup", + "bindingVersion": "0.3.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/operation/binding - extended.json new file mode 100644 index 00000000..a055dd28 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/operation/binding - extended.json @@ -0,0 +1,17 @@ +{ + "bindingVersion" : "0.3.0", + "expiration" : 100000, + "userId" : "guest", + "cc" : [ "user.logs" ], + "priority" : 10, + "deliveryMode" : 2, + "mandatory" : false, + "bcc" : [ "external.audit" ], + "timestamp" : true, + "ack" : false, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/operation/binding - wrongly extended.json new file mode 100644 index 00000000..61ff2d82 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/operation/binding - wrongly extended.json @@ -0,0 +1,22 @@ +{ + "expiration": 100000, + "userId": "guest", + "cc": [ + "user.logs" + ], + "priority": 10, + "deliveryMode": 2, + "mandatory": false, + "bcc": [ + "external.audit" + ], + "timestamp": true, + "ack": false, + "bindingVersion": "0.3.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/operation/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/operation/binding.json new file mode 100644 index 00000000..2c8ab4b6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/operation/binding.json @@ -0,0 +1,16 @@ +{ + "expiration": 100000, + "userId": "guest", + "cc": [ + "user.logs" + ], + "priority": 10, + "deliveryMode": 2, + "mandatory": false, + "bcc": [ + "external.audit" + ], + "timestamp": true, + "ack": false, + "bindingVersion": "0.3.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/server/binding - extended.json new file mode 100644 index 00000000..8310c9d6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.3.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/server/binding - wrongly extended.json new file mode 100644 index 00000000..943a1361 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.3.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/server/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/server/binding.json new file mode 100644 index 00000000..4c2843f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.3.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/latest/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/latest/channel/binding - extended.json new file mode 100644 index 00000000..0711c55c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/latest/channel/binding - extended.json @@ -0,0 +1,23 @@ +{ + "bindingVersion" : "0.3.0", + "is" : "routingKey", + "exchange" : { + "name" : "myExchange", + "type" : "topic", + "durable" : true, + "autoDelete" : false, + "vhost" : "/" + }, + "queue" : { + "name" : "my-queue-name", + "durable" : true, + "exclusive" : true, + "autoDelete" : false, + "vhost" : "/" + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/latest/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/latest/channel/binding - wrongly extended.json new file mode 100644 index 00000000..a0131c3f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/latest/channel/binding - wrongly extended.json @@ -0,0 +1,24 @@ +{ + "is": "routingKey", + "queue": { + "name": "my-queue-name", + "durable": true, + "exclusive": true, + "autoDelete": false, + "vhost": "/" + }, + "exchange": { + "name": "myExchange", + "type": "topic", + "durable": true, + "autoDelete": false, + "vhost": "/" + }, + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/latest/channel/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/latest/channel/binding.json new file mode 100644 index 00000000..b0d109fa --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/latest/channel/binding.json @@ -0,0 +1,18 @@ +{ + "is": "routingKey", + "queue": { + "name": "my-queue-name", + "durable": true, + "exclusive": true, + "autoDelete": false, + "vhost": "/" + }, + "exchange": { + "name": "myExchange", + "type": "topic", + "durable": true, + "autoDelete": false, + "vhost": "/" + }, + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/latest/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/latest/message/binding - extended.json new file mode 100644 index 00000000..730ae10b --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/latest/message/binding - extended.json @@ -0,0 +1,10 @@ +{ + "bindingVersion" : "0.3.0", + "contentEncoding" : "gzip", + "messageType" : "user.signup", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/latest/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/latest/message/binding - wrongly extended.json new file mode 100644 index 00000000..95b801a2 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/latest/message/binding - wrongly extended.json @@ -0,0 +1,11 @@ +{ + "contentEncoding": "gzip", + "messageType": "user.signup", + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/latest/message/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/latest/message/binding.json new file mode 100644 index 00000000..e48dc6d6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/latest/message/binding.json @@ -0,0 +1,5 @@ +{ + "contentEncoding": "gzip", + "messageType": "user.signup", + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/latest/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/latest/operation/binding - extended.json new file mode 100644 index 00000000..a055dd28 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/latest/operation/binding - extended.json @@ -0,0 +1,17 @@ +{ + "bindingVersion" : "0.3.0", + "expiration" : 100000, + "userId" : "guest", + "cc" : [ "user.logs" ], + "priority" : 10, + "deliveryMode" : 2, + "mandatory" : false, + "bcc" : [ "external.audit" ], + "timestamp" : true, + "ack" : false, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/latest/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/latest/operation/binding - wrongly extended.json new file mode 100644 index 00000000..3b31654e --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/latest/operation/binding - wrongly extended.json @@ -0,0 +1,22 @@ +{ + "expiration": 100000, + "userId": "guest", + "cc": [ + "user.logs" + ], + "priority": 10, + "deliveryMode": 2, + "mandatory": false, + "bcc": [ + "external.audit" + ], + "timestamp": true, + "ack": false, + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/latest/operation/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/latest/operation/binding.json new file mode 100644 index 00000000..6b6c209f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/latest/operation/binding.json @@ -0,0 +1,16 @@ +{ + "expiration": 100000, + "userId": "guest", + "cc": [ + "user.logs" + ], + "priority": 10, + "deliveryMode": 2, + "mandatory": false, + "bcc": [ + "external.audit" + ], + "timestamp": true, + "ack": false, + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/latest/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/latest/server/binding - extended.json new file mode 100644 index 00000000..8310c9d6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/latest/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.3.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/latest/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/latest/server/binding - wrongly extended.json new file mode 100644 index 00000000..18560ee8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/latest/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/latest/server/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/latest/server/binding.json new file mode 100644 index 00000000..cdf165f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/latest/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/unknown version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/channel/binding - extended.json new file mode 100644 index 00000000..0711c55c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/channel/binding - extended.json @@ -0,0 +1,23 @@ +{ + "bindingVersion" : "0.3.0", + "is" : "routingKey", + "exchange" : { + "name" : "myExchange", + "type" : "topic", + "durable" : true, + "autoDelete" : false, + "vhost" : "/" + }, + "queue" : { + "name" : "my-queue-name", + "durable" : true, + "exclusive" : true, + "autoDelete" : false, + "vhost" : "/" + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/unknown version/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/channel/binding - wrongly extended.json new file mode 100644 index 00000000..b618ccb6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/channel/binding - wrongly extended.json @@ -0,0 +1,24 @@ +{ + "is": "routingKey", + "queue": { + "name": "my-queue-name", + "durable": true, + "exclusive": true, + "autoDelete": false, + "vhost": "/" + }, + "exchange": { + "name": "myExchange", + "type": "topic", + "durable": true, + "autoDelete": false, + "vhost": "/" + }, + "bindingVersion": "0.199.6", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/unknown version/channel/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/channel/binding.json new file mode 100644 index 00000000..7251f3d3 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/channel/binding.json @@ -0,0 +1,18 @@ +{ + "is": "routingKey", + "queue": { + "name": "my-queue-name", + "durable": true, + "exclusive": true, + "autoDelete": false, + "vhost": "/" + }, + "exchange": { + "name": "myExchange", + "type": "topic", + "durable": true, + "autoDelete": false, + "vhost": "/" + }, + "bindingVersion": "0.199.6" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/unknown version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/message/binding - extended.json new file mode 100644 index 00000000..730ae10b --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/message/binding - extended.json @@ -0,0 +1,10 @@ +{ + "bindingVersion" : "0.3.0", + "contentEncoding" : "gzip", + "messageType" : "user.signup", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/unknown version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/message/binding - wrongly extended.json new file mode 100644 index 00000000..af71946d --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/message/binding - wrongly extended.json @@ -0,0 +1,11 @@ +{ + "contentEncoding": "gzip", + "messageType": "user.signup", + "bindingVersion": "0.199.6", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/unknown version/message/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/message/binding.json new file mode 100644 index 00000000..2129134e --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/message/binding.json @@ -0,0 +1,5 @@ +{ + "contentEncoding": "gzip", + "messageType": "user.signup", + "bindingVersion": "0.199.6" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/unknown version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/operation/binding - extended.json new file mode 100644 index 00000000..a055dd28 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/operation/binding - extended.json @@ -0,0 +1,17 @@ +{ + "bindingVersion" : "0.3.0", + "expiration" : 100000, + "userId" : "guest", + "cc" : [ "user.logs" ], + "priority" : 10, + "deliveryMode" : 2, + "mandatory" : false, + "bcc" : [ "external.audit" ], + "timestamp" : true, + "ack" : false, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/unknown version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..d5e720fd --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/operation/binding - wrongly extended.json @@ -0,0 +1,22 @@ +{ + "expiration": 100000, + "userId": "guest", + "cc": [ + "user.logs" + ], + "priority": 10, + "deliveryMode": 2, + "mandatory": false, + "bcc": [ + "external.audit" + ], + "timestamp": true, + "ack": false, + "bindingVersion": "0.199.6", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/unknown version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/operation/binding.json new file mode 100644 index 00000000..d30f2034 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/operation/binding.json @@ -0,0 +1,16 @@ +{ + "expiration": 100000, + "userId": "guest", + "cc": [ + "user.logs" + ], + "priority": 10, + "deliveryMode": 2, + "mandatory": false, + "bcc": [ + "external.audit" + ], + "timestamp": true, + "ack": false, + "bindingVersion": "0.199.6" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/unknown version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/server/binding - extended.json new file mode 100644 index 00000000..8310c9d6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.3.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/unknown version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/server/binding - wrongly extended.json new file mode 100644 index 00000000..ab29a71c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.199.6", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/unknown version/server/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/server/binding.json new file mode 100644 index 00000000..03d6b9e6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.199.6" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/without version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/without version/channel/binding - extended.json new file mode 100644 index 00000000..0711c55c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/without version/channel/binding - extended.json @@ -0,0 +1,23 @@ +{ + "bindingVersion" : "0.3.0", + "is" : "routingKey", + "exchange" : { + "name" : "myExchange", + "type" : "topic", + "durable" : true, + "autoDelete" : false, + "vhost" : "/" + }, + "queue" : { + "name" : "my-queue-name", + "durable" : true, + "exclusive" : true, + "autoDelete" : false, + "vhost" : "/" + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/without version/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/without version/channel/binding - wrongly extended.json new file mode 100644 index 00000000..2bd1dd45 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/without version/channel/binding - wrongly extended.json @@ -0,0 +1,23 @@ +{ + "is": "routingKey", + "queue": { + "name": "my-queue-name", + "durable": true, + "exclusive": true, + "autoDelete": false, + "vhost": "/" + }, + "exchange": { + "name": "myExchange", + "type": "topic", + "durable": true, + "autoDelete": false, + "vhost": "/" + }, + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/without version/channel/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/without version/channel/binding.json new file mode 100644 index 00000000..6a657317 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/without version/channel/binding.json @@ -0,0 +1,17 @@ +{ + "is": "routingKey", + "queue": { + "name": "my-queue-name", + "durable": true, + "exclusive": true, + "autoDelete": false, + "vhost": "/" + }, + "exchange": { + "name": "myExchange", + "type": "topic", + "durable": true, + "autoDelete": false, + "vhost": "/" + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/without version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/without version/message/binding - extended.json new file mode 100644 index 00000000..730ae10b --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/without version/message/binding - extended.json @@ -0,0 +1,10 @@ +{ + "bindingVersion" : "0.3.0", + "contentEncoding" : "gzip", + "messageType" : "user.signup", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/without version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/without version/message/binding - wrongly extended.json new file mode 100644 index 00000000..b2e9e16d --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/without version/message/binding - wrongly extended.json @@ -0,0 +1,10 @@ +{ + "contentEncoding": "gzip", + "messageType": "user.signup", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/without version/message/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/without version/message/binding.json new file mode 100644 index 00000000..5a989f71 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/without version/message/binding.json @@ -0,0 +1,4 @@ +{ + "contentEncoding": "gzip", + "messageType": "user.signup" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/without version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/without version/operation/binding - extended.json new file mode 100644 index 00000000..a055dd28 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/without version/operation/binding - extended.json @@ -0,0 +1,17 @@ +{ + "bindingVersion" : "0.3.0", + "expiration" : 100000, + "userId" : "guest", + "cc" : [ "user.logs" ], + "priority" : 10, + "deliveryMode" : 2, + "mandatory" : false, + "bcc" : [ "external.audit" ], + "timestamp" : true, + "ack" : false, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/without version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/without version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..61ff2d82 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/without version/operation/binding - wrongly extended.json @@ -0,0 +1,22 @@ +{ + "expiration": 100000, + "userId": "guest", + "cc": [ + "user.logs" + ], + "priority": 10, + "deliveryMode": 2, + "mandatory": false, + "bcc": [ + "external.audit" + ], + "timestamp": true, + "ack": false, + "bindingVersion": "0.3.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/without version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/without version/operation/binding.json new file mode 100644 index 00000000..74492aac --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/without version/operation/binding.json @@ -0,0 +1,15 @@ +{ + "expiration": 100000, + "userId": "guest", + "cc": [ + "user.logs" + ], + "priority": 10, + "deliveryMode": 2, + "mandatory": false, + "bcc": [ + "external.audit" + ], + "timestamp": true, + "ack": false +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/without version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/without version/server/binding - extended.json new file mode 100644 index 00000000..8310c9d6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/without version/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.3.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/without version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/without version/server/binding - wrongly extended.json new file mode 100644 index 00000000..a16bbdf8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/without version/server/binding - wrongly extended.json @@ -0,0 +1,8 @@ +{ + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/without version/server/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/without version/server/binding.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/without version/server/binding.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/pom.xml b/pom.xml index ba543c30..8dea0cb0 100644 --- a/pom.xml +++ b/pom.xml @@ -78,6 +78,13 @@ ${junit5.version} test + + org.junit.platform + junit-platform-suite-engine + 1.10.2 + test + +