diff --git a/tests/Tests.Nybus.Legacy.NetExtensions.Adapters.MassTransit/AutoMoqDataAttribute.cs b/tests/Tests.Nybus.Legacy.NetExtensions.Adapters.MassTransit/AutoMoqDataAttribute.cs index 6c0a44e..0224086 100644 --- a/tests/Tests.Nybus.Legacy.NetExtensions.Adapters.MassTransit/AutoMoqDataAttribute.cs +++ b/tests/Tests.Nybus.Legacy.NetExtensions.Adapters.MassTransit/AutoMoqDataAttribute.cs @@ -1,9 +1,12 @@ +using System.Collections.Generic; using AutoFixture; using AutoFixture.AutoMoq; using AutoFixture.NUnit3; +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Moq; using Nybus.Logging; +using Nybus.MassTransit; namespace Tests { @@ -26,6 +29,18 @@ private static IFixture CreateFixture() fixture.Customize(o => o.Without(p => p.MinimumLevel)); + fixture.Customize(o => o.FromFactory((ConfigurationBuilder configurationBuilder, MassTransitConnectionDescriptor connectionDescriptor, string connectionStringName) => + { + configurationBuilder.AddInMemoryCollection(new Dictionary + { + [$"ConnectionStrings:{connectionStringName}"] = connectionDescriptor.ToConnectionString() + }); + + var configuration = configurationBuilder.Build() as IConfiguration; + + return configuration; + })); + return fixture; } } @@ -48,5 +63,10 @@ public static bool For(this ServiceDescriptor descriptor) { return descriptor.ServiceType == typeof(TService); } + + public static string ToConnectionString(this MassTransitConnectionDescriptor connectionDescriptor) + { + return $"host={connectionDescriptor.Host};username={connectionDescriptor.UserName};password={connectionDescriptor.Password}"; + } } } \ No newline at end of file diff --git a/tests/Tests.Nybus.Legacy.NetExtensions.Adapters.MassTransit/NybusLegacyServiceCollectionExtensionsIntegrationTests.cs b/tests/Tests.Nybus.Legacy.NetExtensions.Adapters.MassTransit/NybusLegacyServiceCollectionExtensionsIntegrationTests.cs new file mode 100644 index 0000000..1c2ef57 --- /dev/null +++ b/tests/Tests.Nybus.Legacy.NetExtensions.Adapters.MassTransit/NybusLegacyServiceCollectionExtensionsIntegrationTests.cs @@ -0,0 +1,28 @@ +using AutoFixture.NUnit3; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using NUnit.Framework; +using Nybus; + +namespace Tests +{ + [TestFixture] + public class NybusLegacyServiceCollectionExtensionsIntegrationTests + { + [Test, AutoMoqData] + public void Bus_can_be_built([Frozen] string connectionStringName, IConfiguration configuration, ServiceCollection services, NybusLegacyConfiguration nybusConfiguration) + { + services.AddSingleton(configuration); + + services.AddLogging(); + + services.AddNybusWithMassTransit(nybusConfiguration); + + var serviceProvider = services.BuildServiceProvider(); + + var bus = serviceProvider.GetRequiredService(); + + Assert.That(bus, Is.Not.Null); + } + } +} \ No newline at end of file