diff --git a/src/Dapr.AspNetCore/TopicMetadataAttribute.cs b/src/Dapr.AspNetCore/TopicMetadataAttribute.cs index eb3e4009e..93d527cc4 100644 --- a/src/Dapr.AspNetCore/TopicMetadataAttribute.cs +++ b/src/Dapr.AspNetCore/TopicMetadataAttribute.cs @@ -29,7 +29,7 @@ public class TopicMetadataAttribute : Attribute, IOriginalTopicMetadata public TopicMetadataAttribute(string name, string value) { ArgumentVerifier.ThrowIfNullOrEmpty(name, nameof(name)); - ArgumentVerifier.ThrowIfNullOrEmpty(value, nameof(value)); + ArgumentVerifier.ThrowIfNull(value, nameof(value)); Name = name; Value = value; } @@ -44,7 +44,7 @@ public TopicMetadataAttribute(string id, string name, string value) { ArgumentVerifier.ThrowIfNullOrEmpty(id, nameof(name)); ArgumentVerifier.ThrowIfNullOrEmpty(name, nameof(name)); - ArgumentVerifier.ThrowIfNullOrEmpty(value, nameof(value)); + ArgumentVerifier.ThrowIfNull(value, nameof(value)); Id = id; Name = name; Value = value; diff --git a/test/Dapr.AspNetCore.IntegrationTest.App/DaprController.cs b/test/Dapr.AspNetCore.IntegrationTest.App/DaprController.cs index 733ee0b73..decacbb7f 100644 --- a/test/Dapr.AspNetCore.IntegrationTest.App/DaprController.cs +++ b/test/Dapr.AspNetCore.IntegrationTest.App/DaprController.cs @@ -92,6 +92,14 @@ public void TopicMetadataSeparator() { } + [Topic("pubsub", "metadataseparatorbyemptytring")] + [HttpPost("/topicmetadataseparatorattrbyemptytring")] + [TopicMetadata("n1", "v1")] + [TopicMetadata("n1", "")] + public void TopicMetadataSeparatorByemptytring () + { + } + [Topic("pubsub", "splitTopicAttr", true)] [HttpPost("/splitTopics")] public void SplitTopic() diff --git a/test/Dapr.AspNetCore.IntegrationTest/SubscribeEndpointTest.cs b/test/Dapr.AspNetCore.IntegrationTest/SubscribeEndpointTest.cs index 62a66898d..e40e04644 100644 --- a/test/Dapr.AspNetCore.IntegrationTest/SubscribeEndpointTest.cs +++ b/test/Dapr.AspNetCore.IntegrationTest/SubscribeEndpointTest.cs @@ -39,7 +39,7 @@ public async Task SubscribeEndpoint_ReportsTopics() var json = await JsonSerializer.DeserializeAsync(stream); json.ValueKind.Should().Be(JsonValueKind.Array); - json.GetArrayLength().Should().Be(17); + json.GetArrayLength().Should().Be(18); var subscriptions = new List<(string PubsubName, string Topic, string Route, string rawPayload, string match, string metadata, string DeadLetterTopic)>(); @@ -116,7 +116,7 @@ public async Task SubscribeEndpoint_ReportsTopics() subscriptions.Should().Contain(("pubsub", "metadata", "multiMetadataTopicAttr", string.Empty, string.Empty, "n1=v1;n2=v2,v3", string.Empty)); subscriptions.Should().Contain(("pubsub", "metadata.1", "multiMetadataTopicAttr", "true", string.Empty, "n1=v1", string.Empty)); subscriptions.Should().Contain(("pubsub", "splitMetadataTopicBuilder", "splitMetadataTopics", string.Empty, string.Empty, "n1=v1;n2=v1", string.Empty)); - + subscriptions.Should().Contain(("pubsub", "metadataseparatorbyemptytring", "topicmetadataseparatorattrbyemptytring", string.Empty, string.Empty, "n1=v1,", string.Empty)); // Test priority route sorting var eTopic = subscriptions.FindAll(e => e.Topic == "E"); eTopic.Count.Should().Be(3);