public async void DefaultBatchInvokerTest_invokeAsync() { //Arrange var propertyInvoker = new Mock <IPropertyInvoker>(MockBehavior.Strict); //var methodActivator = new Mock<MethodActivator>(MockBehavior.Strict); //methodActivator.Setup((s) => s.CreateInstance<object>(It.IsAny<IServiceProvider>(), It.IsAny<Type>())) var methodActivator = new MethodActivator(); var isharpBatchTrackingActivator = new Mock <ISharpBatchTrackingFactory>(MockBehavior.Strict); isharpBatchTrackingActivator.Setup((s) => s.getTrakingProvider()).Returns(new TrackingMemory()).Verifiable(); var modelSerializer = new Mock <IModelSerializer>(MockBehavior.Strict); modelSerializer.Setup((s) => s.Serialize((object)"method1")).Returns("\"method1\""); DefaultBatchInvoker defaultBatchInvoker = new DefaultBatchInvoker( propertyInvoker.Object, methodActivator, isharpBatchTrackingActivator.Object, modelSerializer.Object); var requestService = new Mock <IServiceProvider>(MockBehavior.Strict); requestService.Setup((s) => s.GetService(It.IsAny <Type>())).Returns((object)"Any").Verifiable(); var httpRequest = new Mock <HttpRequest>(MockBehavior.Strict); httpRequest.Setup((s) => s.Path).Returns(new PathString("/batch/exec/batch/action")); httpRequest.Setup((s) => s.QueryString).Returns(new QueryString()).Verifiable(); Stream bodyStream = new MemoryStream(); var httpResponse = new Mock <HttpResponse>(MockBehavior.Strict); httpResponse.Setup((s) => s.Body).Returns(bodyStream).Verifiable(); var context = new Mock <HttpContext>(MockBehavior.Strict); context.Setup((s) => s.Request).Returns(httpRequest.Object).Verifiable(); context.Setup((s) => s.Response).Returns(httpResponse.Object).Verifiable(); context.Setup((s) => s.RequestServices).Returns(requestService.Object).Verifiable(); ContextInvoker contextInvoker = ContextInvoker.Create(context.Object); List <TypeInfo> types = new List <TypeInfo>(); types.Add(typeof(SimplePOCOBatch).GetTypeInfo()); var descriptions = AssemblyDiscoveryActionDescription.actionDescription(types); contextInvoker.ActionDescriptor = descriptions.First(); //Act var response = await defaultBatchInvoker.InvokeAsync(contextInvoker); //Assert Assert.NotNull(response); Assert.Equal("\"method1\"", response); }
public void BatchActionFactoryTest_getProvider(BatchUrlManagerCommand command) { //Arrange var sharpBatchTrakingFactory = new Mock <ISharpBatchTrackingFactory>(MockBehavior.Strict); sharpBatchTrakingFactory.Setup((s) => s.getTrakingProvider()) .Returns(new TrackingMemory()) .Verifiable(); var modelSerializer = new Mock <IModelSerializer>(MockBehavior.Strict); IPropertyInvoker propertyInvoker = new DefaultPropertyInvoker(); MethodActivator methodActivator = new MethodActivator(); IBatchInvoker batchInvoker = new DefaultBatchInvoker(propertyInvoker, methodActivator, sharpBatchTrakingFactory.Object, modelSerializer.Object); IBatchInvokerProvider batchInvokerProvider = new DefaultBatchInvokerProvider(batchInvoker, sharpBatchTrakingFactory.Object); ApplicationBatchManager applicationBatchManager = new ApplicationBatchManager(); BatchActionProvider batchActionProvider = new BatchActionProvider(applicationBatchManager, batchInvokerProvider); SystemActionProvider systemActionProvider = new SystemActionProvider(sharpBatchTrakingFactory.Object, modelSerializer.Object); IBatchActionFactory batchActionFactory = new BatchActionFactory(batchActionProvider, systemActionProvider); var batchUrlManager = new Mock <IBatchUrlManager>(MockBehavior.Strict); batchUrlManager.Setup((s) => s.RequestCommand) .Returns(command) .Verifiable(); //Act var actionProvider = batchActionFactory.getProvider(batchUrlManager.Object); //Assert if (command == BatchUrlManagerCommand.Exec) { Assert.Same(batchActionProvider, actionProvider); } else { Assert.Same(systemActionProvider, actionProvider); } batchUrlManager.Verify(); sharpBatchTrakingFactory.Verify(); }