Skip to content

Commit

Permalink
Remove subscription versioning (#4172)
Browse files Browse the repository at this point in the history
* Add failing test for inmemory subscription storage
* Add failing tests for msmq sub storage
* Ignore contract version when publishing
  • Loading branch information
andreasohlund authored and danielmarbach committed Sep 28, 2016
1 parent fc7ef8e commit bf207b3
Show file tree
Hide file tree
Showing 4 changed files with 58 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,32 @@ public void Messages_with_the_same_timestamp_have_repeatedly_same_order()
Assert.AreEqual(queue1.Messages.Single(), queue2.Messages.Single());
}

[Test]
public async Task Should_ignore_message_version_on_subscriptions()
{
var subscriptionMessage = new MsmqSubscriptionMessage
{
ArrivedTime = DateTime.UtcNow,
Id = Guid.NewGuid().ToString(),
Body = "SomeMessage, Version=1.0.0",
Label = "subscriberA@server1|subscriberA"
};

var storageQueue = new FakeStorageQueue();
var subscriptionStorage = new MsmqSubscriptionStorage(storageQueue);

storageQueue.Messages.Add(subscriptionMessage);

subscriptionStorage.Init();

var subscribers = await subscriptionStorage.GetSubscriberAddressesForMessage(new[]
{
new MessageType("SomeMessage", "2.0.0")
}, new ContextBag());

Assert.AreEqual("subscriberA", subscribers.Single().Endpoint);
}

static MsmqSubscriptionStorage CreateAndInit(FakeStorageQueue queue)
{
var storage = new MsmqSubscriptionStorage(queue);
Expand Down
1 change: 1 addition & 0 deletions src/NServiceBus.Core.Tests/NServiceBus.Core.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,7 @@
<Compile Include="Msmq\MsmqHelpers.cs" />
<Compile Include="Msmq\MsmqAddressTests.cs" />
<Compile Include="Msmq\MsmqSubscriptionStorageQueueTests.cs" />
<Compile Include="Persistence\InMemory\InMemorySubscriptionStorageTests.cs" />
<Compile Include="Persistence\InMemory\When_persisting_a_saga_with_InMemory_and_an_escalated_DTC_transaction.cs" />
<Compile Include="Persistence\PersistenceStartupTests.cs" />
<Compile Include="Pipeline\PipelineTests.cs" />
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
namespace NServiceBus.Persistence.InMemory.Tests
{
using System.Linq;
using System.Threading.Tasks;
using Extensibility;
using NUnit.Framework;
using Unicast.Subscriptions;
using Unicast.Subscriptions.MessageDrivenSubscriptions;

[TestFixture]
class InMemorySubscriptionStorageTests
{
[Test]
public async Task Should_ignore_message_version_on_subscriptions()
{
var storage = new InMemorySubscriptionStorage();

await storage.Subscribe(new Subscriber("subscriberA@server1", "subscriberA"), new MessageType("SomeMessage", "1.0.0"), new ContextBag());

var subscribers = await storage.GetSubscriberAddressesForMessage(new[]
{
new MessageType("SomeMessage", "2.0.0")
}, new ContextBag());

Assert.AreEqual("subscriberA", subscribers.Single().Endpoint);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ public bool Equals(MessageType other)
{
return true;
}
return Equals(other.TypeName, TypeName) && other.Version.Major == Version.Major;
return Equals(other.TypeName, TypeName);
}

/// <summary>
Expand All @@ -116,18 +116,15 @@ public override bool Equals(object obj)
{
return false;
}
return Equals((MessageType) obj);
return Equals((MessageType)obj);
}

/// <summary>
/// Gets Hash Code.
/// </summary>
public override int GetHashCode()
{
unchecked
{
return (TypeName.GetHashCode()*397) ^ Version.GetHashCode();
}
return TypeName.GetHashCode();
}

/// <summary>
Expand Down

0 comments on commit bf207b3

Please sign in to comment.