Skip to content

Commit

Permalink
Add test to verify credentials work (#521)
Browse files Browse the repository at this point in the history
* Add test to verify credentials work

* Cleanup

* Cleanup and alignment of tests

---------

Co-authored-by: Daniel Marbach <danielmarbach@users.noreply.github.com>
  • Loading branch information
danielmarbach and danielmarbach committed Jun 4, 2024
1 parent 71ef2a6 commit df2688d
Show file tree
Hide file tree
Showing 15 changed files with 111 additions and 61 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ class FunctionHandler : FunctionEndpointComponent
{
public FunctionHandler(string headerKey) => AddTestMessage(new MessageWithNullHeader(), new Dictionary<string, object> { { headerKey, null } });

public class MessageWithNullHeaderHandler(Context testContext) : IHandleMessages<MessageWithNullHeader>
class MessageWithNullHeaderHandler(Context testContext) : IHandleMessages<MessageWithNullHeader>
{
public Task Handle(MessageWithNullHeader message, IMessageHandlerContext context)
{
Expand All @@ -50,8 +50,6 @@ public Task Handle(MessageWithNullHeader message, IMessageHandlerContext context
}
}

class MessageWithNullHeader : IMessage
{
}
class MessageWithNullHeader : IMessage;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,12 @@ public FailingFunction()
AddTestMessage(new TriggerMessage());
}

public class FailingHandler : IHandleMessages<TriggerMessage>
class FailingHandler : IHandleMessages<TriggerMessage>
{
public Task Handle(TriggerMessage message, IMessageHandlerContext context) => throw new SimulatedException();
}
}

class TriggerMessage : IMessage
{
}
class TriggerMessage : IMessage;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ class FailingFunction : FunctionEndpointComponent
{
public FailingFunction(object triggerMessage) => AddTestMessage(triggerMessage);

public class FailingHandler(Context testContext) : IHandleMessages<TriggerMessage>
class FailingHandler(Context testContext) : IHandleMessages<TriggerMessage>
{
public Task Handle(TriggerMessage message, IMessageHandlerContext context)
{
Expand All @@ -45,8 +45,6 @@ public Task Handle(TriggerMessage message, IMessageHandlerContext context)
}
}

class TriggerMessage : IMessage
{
}
class TriggerMessage : IMessage;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public async Task Should_invoke_the_handler_to_process_it()
Assert.That(context.ReceivedMessageAvailable, Is.True);
}

public class Context : ScenarioContext
class Context : ScenarioContext
{
public int HandlerInvocationCount => count;
public bool ReceivedMessageAvailable { get; set; }
Expand All @@ -35,7 +35,7 @@ class FunctionHandler : FunctionEndpointComponent
{
public FunctionHandler(object triggerMessage) => AddTestMessage(triggerMessage);

public class HappyDayMessageHandler(Context testContext) : IHandleMessages<HappyDayMessage>
class HappyDayMessageHandler(Context testContext) : IHandleMessages<HappyDayMessage>
{
public Task Handle(HappyDayMessage message, IMessageHandlerContext context)
{
Expand All @@ -46,8 +46,6 @@ public Task Handle(HappyDayMessage message, IMessageHandlerContext context)
}
}

class HappyDayMessage : IMessage
{
}
class HappyDayMessage : IMessage;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ public void Should_guide_user_towards_success()
Environment.SetEnvironmentVariable(ServerlessTransport.DefaultServiceBusConnectionName,
originalConnectionString);

string originalConnectionString;

class FunctionWithoutConnectionString : FunctionEndpointComponent;

string originalConnectionString;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public async Task Should_work()
Assert.True(context.GotTheMessage);
}

public class Context : ScenarioContext
class Context : ScenarioContext
{
public bool GotTheMessage { get; set; }
}
Expand All @@ -35,7 +35,7 @@ public OutboxEnabledFunction(object triggerMessage)
AddTestMessage(triggerMessage);
}

public class SomeMessageHandler(Context testContext) : IHandleMessages<SomeMessage>
class SomeMessageHandler(Context testContext) : IHandleMessages<SomeMessage>
{
public Task Handle(SomeMessage message, IMessageHandlerContext context)
{
Expand All @@ -45,8 +45,6 @@ public Task Handle(SomeMessage message, IMessageHandlerContext context)
}
}

class SomeMessage : IMessage
{
}
class SomeMessage : IMessage;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ class InsideSubscriber : EndpointConfigurationBuilder
{
public InsideSubscriber() => EndpointSetup<DefaultEndpoint>();

public class EventHandler(Context testContext) : IHandleMessages<InsideEvent>
class EventHandler(Context testContext) : IHandleMessages<InsideEvent>
{
public Task Handle(InsideEvent message, IMessageHandlerContext context)
{
Expand All @@ -42,18 +42,14 @@ class PublishingFunction : FunctionEndpointComponent
{
public PublishingFunction() => AddTestMessage(new TriggerMessage());

public class PublishingHandler : IHandleMessages<TriggerMessage>
class PublishingHandler : IHandleMessages<TriggerMessage>
{
public Task Handle(TriggerMessage message, IMessageHandlerContext context) => context.Publish(new InsideEvent());
}
}

class TriggerMessage : IMessage
{
}
class TriggerMessage : IMessage;

class InsideEvent : IEvent
{
}
class InsideEvent : IEvent;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ class OutsideSubscriber : EndpointConfigurationBuilder
{
public OutsideSubscriber() => EndpointSetup<DefaultEndpoint>();

public class EventHandler(Context testContext) : IHandleMessages<OutsideEvent>
class EventHandler(Context testContext) : IHandleMessages<OutsideEvent>
{
public Task Handle(OutsideEvent message, IMessageHandlerContext context)
{
Expand All @@ -38,8 +38,6 @@ public Task Handle(OutsideEvent message, IMessageHandlerContext context)
}
}

class OutsideEvent : IEvent
{
}
class OutsideEvent : IEvent;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,12 @@ public FunctionWithSendOnlyConfiguration()
AddTestMessage(new ATestMessage());
}

public class TestMessageHandler : IHandleMessages<ATestMessage>
class TestMessageHandler : IHandleMessages<ATestMessage>
{
public Task Handle(ATestMessage message, IMessageHandlerContext context) => Task.CompletedTask;
}
}

class ATestMessage : IMessage
{
}
class ATestMessage : IMessage;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class Context : ScenarioContext
public bool HandlerReceivedMessage { get; set; }
}

public class ReceivingEndpoint : EndpointConfigurationBuilder
class ReceivingEndpoint : EndpointConfigurationBuilder
{
public ReceivingEndpoint() => EndpointSetup<DefaultEndpoint>();

Expand All @@ -39,18 +39,14 @@ class SendingFunction : FunctionEndpointComponent
{
public SendingFunction(object triggerMessage) => AddTestMessage(triggerMessage);

public class TriggerMessageHandler : IHandleMessages<TriggerMessage>
class TriggerMessageHandler : IHandleMessages<TriggerMessage>
{
public Task Handle(TriggerMessage message, IMessageHandlerContext context) => context.Send(Conventions.EndpointNamingConvention(typeof(ReceivingEndpoint)), new FollowupMessage());
}
}

class TriggerMessage : IMessage
{
}
class TriggerMessage : IMessage;

class FollowupMessage : IMessage
{
}
class FollowupMessage : IMessage;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class Context : ScenarioContext
public bool HandlerReceivedMessage { get; set; }
}

public class ReceivingEndpoint : EndpointConfigurationBuilder
class ReceivingEndpoint : EndpointConfigurationBuilder
{
public ReceivingEndpoint() => EndpointSetup<DefaultEndpoint>();

Expand All @@ -38,8 +38,6 @@ public Task Handle(TriggerMessage message, IMessageHandlerContext context)
}
}

class TriggerMessage : IMessage
{
}
class TriggerMessage : IMessage;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,6 @@ await Scenario.Define<ScenarioContext>()
Assert.IsFalse(await adminClient.QueueExistsAsync(endpointNamingConvention), "Queues should not be created");
}

ServiceBusAdministrationClient adminClient;
string endpointNamingConvention;

class FunctionWithoutInstallersEnabled : FunctionEndpointComponent
{
public FunctionWithoutInstallersEnabled() =>
Expand All @@ -52,5 +49,8 @@ class FunctionWithoutInstallersEnabled : FunctionEndpointComponent
c.AdvancedConfiguration.GetSettings().Set("Installers.Enable", false);
};
}

ServiceBusAdministrationClient adminClient;
string endpointNamingConvention;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public SendingFunction()
AddTestMessage(new ReadSagaDataValueMessage { CorrelationProperty = correlationProperty });
}

public class DemoSaga(Context testContext) : Saga<DemoSagaData>,
class DemoSaga(Context testContext) : Saga<DemoSagaData>,
IAmStartedByMessages<StartSagaMessage>,
IHandleMessages<UpdateSagaMessage>,
IHandleMessages<ReadSagaDataValueMessage>
Expand Down Expand Up @@ -68,7 +68,7 @@ public Task Handle(ReadSagaDataValueMessage message, IMessageHandlerContext cont
}
}

public class DemoSagaData : ContainSagaData
class DemoSagaData : ContainSagaData
{
public string CorrelationProperty { get; set; }
public int SomeCounter { get; set; }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class ReceivingEndpoint : EndpointConfigurationBuilder
{
public ReceivingEndpoint() => EndpointSetup<DefaultEndpoint>();

public class TestMessageHandler(Context testContext) : IHandleMessages<TestMessage>
class TestMessageHandler(Context testContext) : IHandleMessages<TestMessage>
{
public Task Handle(TestMessage message, IMessageHandlerContext context)
{
Expand All @@ -50,8 +50,6 @@ protected override Task OnStart(IFunctionEndpoint endpoint, FunctionContext exec
=> endpoint.Send(new TestMessage(), executionContext);
}

class TestMessage : IMessage
{
}
class TestMessage : IMessage;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
namespace NServiceBus.AzureFunctions.Worker.ServiceBus.Tests
{
using System;
using System.Threading;
using System.Threading.Tasks;
using AcceptanceTesting;
using Azure.Messaging.ServiceBus;
using NUnit.Framework;
using static System.Environment;

public class When_using_token_credential_with_fully_qualified_namespace
{
string fullyQualifiedNamespace;
string originalConnectionString;
readonly string fullyQualifiedNamespaceStringKey = $"{defaultConnectionStringKey}__fullyQualifiedNamespace";
static readonly string defaultConnectionStringKey = ServerlessTransport.DefaultServiceBusConnectionName;

[SetUp]
public void SetUp()
{
originalConnectionString = GetEnvironmentVariable(defaultConnectionStringKey);

var connectionStringProperties = ServiceBusConnectionStringProperties.Parse(originalConnectionString);
fullyQualifiedNamespace = connectionStringProperties.FullyQualifiedNamespace;

SetEnvironmentVariable(defaultConnectionStringKey, null, EnvironmentVariableTarget.Process);
SetEnvironmentVariable(fullyQualifiedNamespaceStringKey,
fullyQualifiedNamespace, EnvironmentVariableTarget.Process);
}

[Test]
public async Task Should_work()
{
Context context = await Scenario.Define<Context>()
.WithComponent(new FunctionUsingTokenCredential())
.Done(c => c.HandlerInvocationCount > 0)
.Run();

Assert.That(context.HandlerInvocationCount, Is.EqualTo(1));
}

[TearDown]
public void TearDown()
{
SetEnvironmentVariable(fullyQualifiedNamespaceStringKey,
fullyQualifiedNamespace, EnvironmentVariableTarget.Process);
SetEnvironmentVariable(ServerlessTransport.DefaultServiceBusConnectionName,
originalConnectionString);
}

class Context : ScenarioContext
{
public int HandlerInvocationCount => count;

public void HandlerInvoked() => Interlocked.Increment(ref count);

int count;
}

class FunctionUsingTokenCredential : FunctionEndpointComponent
{
public FunctionUsingTokenCredential() => AddTestMessage(new Message());

class Handler(Context testContext) : IHandleMessages<Message>
{
public Task Handle(Message message, IMessageHandlerContext context)
{
testContext.HandlerInvoked();
return Task.CompletedTask;
}
}
}

class Message : ICommand;
}
}

0 comments on commit df2688d

Please sign in to comment.