Skip to content

Commit

Permalink
Merge branch 'hotfix-4.1.8' into support-4.1
Browse files Browse the repository at this point in the history
  • Loading branch information
John Simons committed May 1, 2015
2 parents b7ea8c0 + a65bc27 commit 938da0e
Show file tree
Hide file tree
Showing 48 changed files with 917 additions and 301 deletions.
2 changes: 1 addition & 1 deletion src/.nuget/packages.config
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="NuGet.CommandLine" version="2.8.2" />
<package id="GitHubReleaseNotes" version="0.1.0" />
<package id="NuGet.CommandLine" version="2.8.2" />
</packages>
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,9 @@
<Project>{dd48b2d0-e996-412d-9157-821ed8b17a9d}</Project>
<Name>NServiceBus.Core</Name>
</ProjectReference>
<ProjectReference Include="..\..\src\NServiceBus\NServiceBus.csproj">
<ProjectReference Include="..\NServiceBus\NServiceBus.csproj">
<Project>{73867d40-8cbb-48e9-bffa-12bbdd48a341}</Project>
<Name>NServiceBus %28NServiceBus\NServiceBus%29</Name>
<Name>NServiceBus</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
Expand All @@ -82,13 +82,9 @@
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\GitVersionTask.1.3.2\Build\GitVersionTask.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\GitVersionTask.1.3.2\Build\GitVersionTask.targets'))" />
<Error Condition="!Exists('..\packages\NuGetPackager.0.4.5\build\NuGetPackager.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NuGetPackager.0.4.5\build\NuGetPackager.targets'))" />

<Error Condition="!Exists('..\packages\GitVersionTask.2.0.1\Build\GitVersionTask.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\GitVersionTask.2.0.1\Build\GitVersionTask.targets'))" />
<Error Condition="!Exists('..\packages\NuGetPackager.0.5.4\build\NuGetPackager.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NuGetPackager.0.5.4\build\NuGetPackager.targets'))" />
</Target>

<Import Project="..\packages\GitVersionTask.2.0.1\Build\GitVersionTask.targets" Condition="Exists('..\packages\GitVersionTask.2.0.1\Build\GitVersionTask.targets')" />
<Import Project="..\packages\NuGetPackager.0.5.4\build\NuGetPackager.targets" Condition="Exists('..\packages\NuGetPackager.0.5.4\build\NuGetPackager.targets')" />
</Project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
namespace NServiceBus.AcceptanceTests.BasicMessaging
{
using System;
using System.Threading;
using EndpointTemplates;
using AcceptanceTesting;
using NUnit.Framework;

public class When_sending_a_message_that_is_registered_multiple_times_to_another_endpoint : NServiceBusAcceptanceTest
{
[Test]
public void First_registration_should_be_the_final_destination()
{
var context = new Context();

Scenario.Define(context)
.WithEndpoint<Sender>(b => b.Given((bus, c) => bus.Send(new MyCommand1())))
.WithEndpoint<Receiver1>()
.WithEndpoint<Receiver2>()
.Done(c => c.WasCalled1 || c.WasCalled2)
.Run();

Assert.IsTrue(context.WasCalled1);
Assert.IsFalse(context.WasCalled2);
}

public class Context : ScenarioContext
{
public bool WasCalled1 { get; set; }
public bool WasCalled2 { get; set; }
}

public class Sender : EndpointConfigurationBuilder
{
public Sender()
{
EndpointSetup<DefaultServer>()
.AddMapping<MyCommand1>(typeof(Receiver1))
.AddMapping<MyCommand2>(typeof(Receiver2));
}
}

public class Receiver1 : EndpointConfigurationBuilder
{
public Receiver1()
{
EndpointSetup<DefaultServer>();
}

public class MyMessageHandler : IHandleMessages<MyBaseCommand>
{
public Context Context { get; set; }

public IBus Bus { get; set; }

public void Handle(MyBaseCommand message)
{
Context.WasCalled1 = true;
Thread.Sleep(2000); // Just to be sure the other receiver is finished
}
}
}

public class Receiver2 : EndpointConfigurationBuilder
{
public Receiver2()
{
EndpointSetup<DefaultServer>();
}

public class MyMessageHandler : IHandleMessages<MyBaseCommand>
{
public Context Context { get; set; }

public IBus Bus { get; set; }

public void Handle(MyBaseCommand message)
{
Context.WasCalled2 = true;
Thread.Sleep(2000); // Just to be sure the other receiver is finished
}
}
}

[Serializable]
public abstract class MyBaseCommand : ICommand
{
}

[Serializable]
public class MyCommand1 : MyBaseCommand
{
}

[Serializable]
public class MyCommand2 : MyBaseCommand
{
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@
<ItemGroup>
<Compile Include="Audit\When_using_auditing_as_a_feature.cs" />
<Compile Include="Audit\When_a_message_is_audited.cs" />
<Compile Include="BasicMessaging\When_sending_a_message_that_is_registered_multiple_times_to_another_endpoint.cs" />
<Compile Include="BasicMessaging\When_starting_a_send_only.cs" />
<Compile Include="BasicMessaging\When_registering_a_callback_for_a_local_message.cs" />
<Compile Include="BasicMessaging\When_using_a_custom_correlation_id.cs" />
Expand All @@ -134,9 +135,11 @@
<Compile Include="Performance\NServiceBusPerformanceTest.cs" />
<Compile Include="Performance\Receive\Receive_performance.cs" />
<Compile Include="Performance\Sagas\Saga_performance.cs" />
<Compile Include="PubSub\When_multi_subscribing_to_a_polymorphic_event.cs" />
<Compile Include="PubSub\When_publishing_an_event_with_only_local_messagehandlers.cs" />
<Compile Include="PubSub\When_publishing_an_event_with_the_subscriber_scaled_out.cs" />
<Compile Include="PubSub\PubSubAcceptanceTest.cs" />
<Compile Include="PubSub\When_subscribing_to_a_base_event_from_different_publishers.cs" />
<Compile Include="PubSub\When_subscribing_to_a_polymorphic_event.cs" />
<Compile Include="PubSub\When_publishing_an_event_using_a_broker_transport_with_centralized_routing.cs" />
<Compile Include="PubSub\When_publishing_an_event.cs" />
Expand Down Expand Up @@ -219,9 +222,9 @@
<Project>{dd48b2d0-e996-412d-9157-821ed8b17a9d}</Project>
<Name>NServiceBus.Core</Name>
</ProjectReference>
<ProjectReference Include="..\..\src\NServiceBus\NServiceBus.csproj">
<ProjectReference Include="..\NServiceBus\NServiceBus.csproj">
<Project>{73867d40-8cbb-48e9-bffa-12bbdd48a341}</Project>
<Name>NServiceBus %28NServiceBus\NServiceBus%29</Name>
<Name>NServiceBus</Name>
</ProjectReference>
<ProjectReference Include="..\NServiceBus.AcceptanceTesting\NServiceBus.AcceptanceTesting.csproj">
<Project>{758357f6-cd31-4337-80c4-ba377fc257af}</Project>
Expand All @@ -233,13 +236,9 @@
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\GitVersionTask.1.3.2\Build\GitVersionTask.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\GitVersionTask.1.3.2\Build\GitVersionTask.targets'))" />
<Error Condition="!Exists('..\packages\NuGetPackager.0.4.5\build\NuGetPackager.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NuGetPackager.0.4.5\build\NuGetPackager.targets'))" />

<Error Condition="!Exists('..\packages\GitVersionTask.2.0.1\Build\GitVersionTask.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\GitVersionTask.2.0.1\Build\GitVersionTask.targets'))" />
<Error Condition="!Exists('..\packages\NuGetPackager.0.5.4\build\NuGetPackager.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NuGetPackager.0.5.4\build\NuGetPackager.targets'))" />
</Target>

<Import Project="..\packages\GitVersionTask.2.0.1\Build\GitVersionTask.targets" Condition="Exists('..\packages\GitVersionTask.2.0.1\Build\GitVersionTask.targets')" />
<Import Project="..\packages\NuGetPackager.0.5.4\build\NuGetPackager.targets" Condition="Exists('..\packages\NuGetPackager.0.5.4\build\NuGetPackager.targets')" />
</Project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
namespace NServiceBus.AcceptanceTests.PubSub
{
using System;
using AcceptanceTesting;
using EndpointTemplates;
using Features;
using NUnit.Framework;

public class When_multi_subscribing_to_a_polymorphic_event : NServiceBusAcceptanceTest
{
[Test]
public void Both_events_should_be_delivered()
{
var rootContext = new Context();

Scenario.Define(rootContext)
.WithEndpoint<Publisher1>(b => b.Given((bus, context) => Subscriptions.OnEndpointSubscribed(args =>
{
if (args.MessageType.Contains(typeof(IMyEvent).Name))
{
context.SubscribedToIMyEvent = true;
}
if (args.MessageType.Contains(typeof(MyEvent2).Name))
{
context.SubscribedToMyEvent2 = true;
}
}))
.When(c => c.SubscribedToIMyEvent && c.SubscribedToMyEvent2, bus => bus.Publish(new MyEvent1())))
.WithEndpoint<Publisher2>(b => b.Given((bus, context) => Subscriptions.OnEndpointSubscribed(args =>
{
if (args.MessageType.Contains(typeof(IMyEvent).Name))
{
context.SubscribedToIMyEvent = true;
}
if (args.MessageType.Contains(typeof(MyEvent2).Name))
{
context.SubscribedToMyEvent2 = true;
}
}))
.When(c => c.SubscribedToIMyEvent && c.SubscribedToMyEvent2, bus => bus.Publish(new MyEvent2())))
.WithEndpoint<Subscriber1>(b => b.Given((bus, context) =>
{
bus.Subscribe<IMyEvent>();
bus.Subscribe<MyEvent2>();
}))
.Done(c => c.SubscriberGotIMyEvent && c.SubscriberGotMyEvent2)
.Run();

Assert.True(rootContext.SubscriberGotIMyEvent);
Assert.True(rootContext.SubscriberGotMyEvent2);
}

public class Context : ScenarioContext
{
public bool SubscriberGotIMyEvent { get; set; }
public bool SubscriberGotMyEvent2 { get; set; }
public bool SubscribedToIMyEvent { get; set; }
public bool SubscribedToMyEvent2 { get; set; }
}

public class Publisher1 : EndpointConfigurationBuilder
{
public Publisher1()
{
EndpointSetup<DefaultServer>();
}
}

public class Publisher2 : EndpointConfigurationBuilder
{
public Publisher2()
{
EndpointSetup<DefaultServer>();
}
}

public class Subscriber1 : EndpointConfigurationBuilder
{
public Subscriber1()
{
EndpointSetup<DefaultServer>(c => Configure.Features.Disable<AutoSubscribe>())
.AddMapping<IMyEvent>(typeof(Publisher1))
.AddMapping<MyEvent2>(typeof(Publisher2));
}

public class MyEventHandler : IHandleMessages<IMyEvent>
{
public Context Context { get; set; }

public void Handle(IMyEvent messageThatIsEnlisted)
{
if (messageThatIsEnlisted is MyEvent2)
{
Context.SubscriberGotMyEvent2 = true;
}
else
{
Context.SubscriberGotIMyEvent = true;
}
}
}
}


[Serializable]
public class MyEvent1 : IMyEvent
{
}

[Serializable]
public class MyEvent2 : IMyEvent
{
}

public interface IMyEvent : IEvent
{
}
}
}
Loading

0 comments on commit 938da0e

Please sign in to comment.