diff --git a/test/DotNetCore.CAP.Test/ConsumerInvokerFactoryTest.cs b/test/DotNetCore.CAP.Test/ConsumerInvokerFactoryTest.cs index 1eea474..0016815 100644 --- a/test/DotNetCore.CAP.Test/ConsumerInvokerFactoryTest.cs +++ b/test/DotNetCore.CAP.Test/ConsumerInvokerFactoryTest.cs @@ -4,44 +4,48 @@ using System.Reflection; using DotNetCore.CAP.Abstractions; using DotNetCore.CAP.Internal; using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Logging; +using Moq; using Xunit; namespace DotNetCore.CAP.Test { public class ConsumerInvokerFactoryTest { - private IConsumerInvokerFactory consumerInvokerFactory; + private IServiceProvider _serviceProvider; + + private Mock _mockSerialiser; + private Mock _mockMessagePacker; + private Mock _mockModelBinderFactory; public ConsumerInvokerFactoryTest() { + _mockSerialiser = new Mock(); + _mockMessagePacker = new Mock(); + _mockModelBinderFactory = new Mock(); + var services = new ServiceCollection(); - services.AddLogging(); - services.AddSingleton(); - services.AddSingleton(); - var provider = services.BuildServiceProvider(); - var logFactory = provider.GetRequiredService(); - var mesagePacker = provider.GetRequiredService(); - var binder = new ModelBinderFactory(); + services.AddSingleton(); - consumerInvokerFactory = new ConsumerInvokerFactory(logFactory, mesagePacker,binder, provider); + services.AddLogging(); + services.AddSingleton(_mockSerialiser.Object); + services.AddSingleton(_mockMessagePacker.Object); + services.AddSingleton(_mockModelBinderFactory.Object); + _serviceProvider = services.BuildServiceProvider(); } + private ConsumerInvokerFactory Create() => + _serviceProvider.GetService(); + [Fact] public void CreateInvokerTest() { - var methodInfo = typeof(Sample).GetRuntimeMethods() - .Single(x => x.Name == nameof(Sample.ThrowException)); - - var description = new ConsumerExecutorDescriptor - { - MethodInfo = methodInfo, - ImplTypeInfo = typeof(Sample).GetTypeInfo() - }; - var messageContext = new MessageContext(); + // Arrange + var fixure = Create(); - var invoker = consumerInvokerFactory.CreateInvoker(); + // Act + var invoker = fixure.CreateInvoker(); + // Assert Assert.NotNull(invoker); } @@ -50,6 +54,9 @@ namespace DotNetCore.CAP.Test [InlineData(nameof(Sample.AsyncMethod))] public void InvokeMethodTest(string methodName) { + // Arrange + var fixure = Create(); + var methodInfo = typeof(Sample).GetRuntimeMethods() .Single(x => x.Name == methodName); @@ -62,7 +69,7 @@ namespace DotNetCore.CAP.Test var context = new ConsumerContext(description, messageContext); - var invoker = consumerInvokerFactory.CreateInvoker(); + var invoker = fixure.CreateInvoker(); Assert.Throws(() => {