public async Task CreateTodoList_NotSuccessful_StatusCodeInternalServerError()
        {
            var factory = new ControllerFactory();

            var mockHandler = Mock.Of <IHandler>();

            Mock.Get(mockHandler).Setup(
                x => x.HandleCommand <CreateTodoListCommand, CreateTodoListCommandResult>(
                    It.IsAny <CreateTodoListCommand>()))
            .ReturnsAsync(new CreateTodoListCommandResult
            {
                Successfull = false,
            });

            var toCreate = new ViewModel.TodoList.CreateView();

            factory.Services.Replace(ServiceDescriptor.Scoped(factory => mockHandler));

            var controller = factory.Create <TodoController>();

            var result = await controller.CreateTodoList(toCreate);

            result.Should().BeOfType <StatusCodeResult>();
            ((StatusCodeResult)result).StatusCode.Should()
            .Be(StatusCodes.Status500InternalServerError);
        }
        public async Task GetTodoItemById_NotSuccessful_StatusCodeInternalServerError()
        {
            var factory = new ControllerFactory();

            var mockHandler = Mock.Of <IHandler>();

            Mock.Get(mockHandler).Setup(
                x => x.HandleQuery <GetTodoItemByIdQuery, GetTodoItemByIdQueryResult>(
                    It.IsAny <GetTodoItemByIdQuery>()))
            .ReturnsAsync(new GetTodoItemByIdQueryResult
            {
                Successfull = false,
            });

            factory.Services.Replace(
                ServiceDescriptor.Scoped(factory => mockHandler));

            var controller = factory.Create <TodoController>();

            var result = await controller.GetTodoItemById(1, 1);

            result.Should().BeOfType <StatusCodeResult>();
            ((StatusCodeResult)result).StatusCode.Should()
            .Be(StatusCodes.Status500InternalServerError);
        }
        public async Task GetTodoItemById_ValidRequest_OkObjectResult()
        {
            var factory = new ControllerFactory();

            var mockHandler = Mock.Of <IHandler>();

            Mock.Get(mockHandler).Setup(
                x => x.HandleQuery <GetTodoItemByIdQuery, GetTodoItemByIdQueryResult>(
                    It.IsAny <GetTodoItemByIdQuery>()))
            .ReturnsAsync(new GetTodoItemByIdQueryResult
            {
                Successfull = true,
                Data        = new ViewModel.TodoItem.DetailedView()
            });

            factory.Services.Replace(
                ServiceDescriptor.Scoped(factory => mockHandler));

            var controller = factory.Create <TodoController>();

            var result = await controller.GetTodoItemById(1, 1);

            result.Should().BeOfType <OkObjectResult>();
            ((OkObjectResult)result).Value.Should()
            .BeOfType <ViewModel.TodoItem.DetailedView>();
        }
        public async Task GetTodoLists_ValidRequest_OkObjectResult()
        {
            var factory = new ControllerFactory();

            var mockHandler = Mock.Of <IHandler>();

            Mock.Get(mockHandler).Setup(
                x => x.HandleQuery <GetAllTodoListsQuery, TodoListsListViewQueryResult>(
                    It.IsAny <GetAllTodoListsQuery>()))
            .ReturnsAsync(new TodoListsListViewQueryResult
            {
                Successfull = true,
                Data        = Array.Empty <ViewModel.TodoList.ListView>()
            });

            factory.Services.Replace(
                ServiceDescriptor.Scoped(factory => mockHandler));

            var controller = factory.Create <TodoController>();

            var result = await controller.GetTodoLists();

            result.Should().BeOfType <OkObjectResult>();
            ((OkObjectResult)result).Value.Should()
            .BeOfType <ViewModel.TodoList.ListView[]>();
        }
        public async Task CreateTodoList_ValidRequest_OkObjectResult()
        {
            var factory = new ControllerFactory();

            var mockHandler = Mock.Of <IHandler>();

            Mock.Get(mockHandler).Setup(
                x => x.HandleCommand <CreateTodoListCommand, CreateTodoListCommandResult>(
                    It.IsAny <CreateTodoListCommand>()))
            .ReturnsAsync(new CreateTodoListCommandResult
            {
                Successfull = true,
                Data        = new ViewModel.TodoList.CreatedView()
            });

            var toCreate = new ViewModel.TodoList.CreateView();

            factory.Services.Replace(ServiceDescriptor.Scoped(factory => mockHandler));

            var controller = factory.Create <TodoController>();

            var result = await controller.CreateTodoList(toCreate);

            result.Should().BeOfType <OkObjectResult>();
            ((OkObjectResult)result).Value.Should()
            .BeOfType <ViewModel.TodoList.CreatedView>();
        }
        public void ValidateNonEmptyGuidSuccess()
        {
            var controller = ControllerFactory <TestController> .Create();

            var result = controller.IsValid(new TestModel()
            {
                TestGuid = Guid.NewGuid()
            });

            Assert.IsInstanceOfType(result, typeof(OkObjectResult));
        }
        public void ValidateEmptyGuidFailureUnitTest()
        {
            var controller = ControllerFactory <TestController> .Create();

            var mod = new TestModel()
            {
                TestGuid = Guid.Empty
            };

            Assert.IsFalse(controller.TryValidateModel(mod));
        }
Exemple #8
0
        public void TestGetNullPingResult()
        {
            var controller = ControllerFactory <TestController> .Create();

            var result = controller.Get(null);

            Assert.IsInstanceOfType(result, typeof(OkObjectResult));
            var pingResult = (result as OkObjectResult).Value as PingResult;

            Assert.AreEqual("NRSRx Test Controller", pingResult.Name);
        }
Exemple #9
0
        public async Task Test()
        {
            var factory = new ControllerFactory();

            mock.Setup(x => x.GetAsync <TodoItemListView>())
            .ReturnsAsync(Array.Empty <TodoItemListView>());

            var controller = factory.Create <TodoController>(this);

            var result = await controller.GetAsync();

            Assert.IsInstanceOfType(result, typeof(OkObjectResult));
        }
        public async Task Test()
        {
            var factory = new ControllerFactory();
            var mock    = new Mock <ITodoService>();

            mock.Setup(x => x.GetAsync <TodoItemListView>())
            .ReturnsAsync(Array.Empty <TodoItemListView>());

            factory.Services.Replace(
                ServiceDescriptor.Scoped(factory => mock.Object));

            var controller = factory.Create <TodoController>(this);

            var result = await controller.GetAsync();

            Assert.IsInstanceOfType(result, typeof(OkObjectResult));
        }
Exemple #11
0
        public void ProcessRequest(HttpContext context)
        {
            string         controller = context.Request["controller"];
            ControllerBase cb         = ControllerFactory.Create(controller);
            string         json       = "";

            if (cb == null)
            {
                json = JsonResultHelper.GetErrorJson("controler【" + controller + "】不存在!");
            }
            else
            {
                json = cb.ajax(context.Request);
            }

            context.Response.ContentType = "application/json";
            context.Response.Write(json);
        }
        public static IMvcBuilder AddControllers(this IMvcBuilder builder, ILoggerFactory logFactory,
                                                 params Assembly[] assemblies)
        {
            // Generate controllers for types registered in the assemblies
            var controllers = ControllerFactory.Create(logFactory, assemblies).ToList();

            var controllerTypes = controllers.SelectMany(x => x.controllerType);
            var serviceTypes    = ControllerFactory.GetServiceTypes(assemblies).ToList();

            // Enable the services to configure themselves by registering requires service dependencies
            controllers.ForEach(x => x.serviceMetadata?.ConfigureServices(builder.Services));

            // Register services to DI container
            serviceTypes.ForEach(x => builder.Services.AddTransient(x));

            builder.ConfigureApplicationPartManager(apm =>
                                                    apm.FeatureProviders.Add(new GenericControllerFeatureProvider(controllerTypes)));
            return(builder);
        }
        public async Task GetTodoItemById_HandlerThrows_Rethrows()
        {
            var factory = new ControllerFactory();

            var mockHandler = Mock.Of <IHandler>();

            Mock.Get(mockHandler).Setup(
                x => x.HandleQuery <GetTodoItemByIdQuery, GetTodoItemByIdQueryResult>(
                    It.IsAny <GetTodoItemByIdQuery>()))
            .ThrowsAsync(new Exception());

            factory.Services.Replace(
                ServiceDescriptor.Scoped(factory => mockHandler));

            var controller = factory.Create <TodoController>();

            Func <Task> act = async() => await controller.GetTodoItemById(1, 1);

            await act.Should().ThrowAsync <Exception>();
        }
        public async Task CreateTodoList_HandlerThrows_Rethrows()
        {
            var factory = new ControllerFactory();

            var mockHandler = Mock.Of <IHandler>();

            Mock.Get(mockHandler).Setup(
                x => x.HandleCommand <CreateTodoListCommand, CreateTodoListCommandResult>(
                    It.IsAny <CreateTodoListCommand>()))
            .ThrowsAsync(new Exception());

            var toCreate = new ViewModel.TodoList.CreateView();

            factory.Services.Replace(ServiceDescriptor.Scoped(factory => mockHandler));

            var controller = factory.Create <TodoController>();

            Func <Task> act = async() => await controller.CreateTodoList(toCreate);

            await act.Should().ThrowAsync <Exception>();
        }