Example #1
0
        public async Task Create_ReturnsCreatedAtRoute()
        {
            var createCommand = new CreateModule {
                Order = 0, Title = "Create title", Description = "Create Description"
            };
            var controller = new ModulesController(moqMediator.Object);

            var result = await controller.Create(createCommand);

            var content = GetObjectResultContent <Module>(result.Result);

            Assert.IsInstanceOf(typeof(CreatedAtRouteResult), result.Result);
            Assert.AreEqual("GetModule", ((CreatedAtRouteResult)result.Result).RouteName);
            Assert.IsNotNull(content);
            Assert.AreEqual(1, content.Id);
        }
        public async Task Return_Bad_Request_On_Create_With_Invalid_Model()
        {
            // Arrange
            var context = GetFakeContext();

            var controller = new ModulesController(context);

            controller.ModelState.AddModelError("Title", "Required");

            // Act
            var result = await controller.Create(new Fixture().Create <ModuleCreationViewModel>());

            // Assert
            var badRequestResult = Assert.IsAssignableFrom <BadRequestObjectResult>(result);

            Assert.IsType <SerializableError>(badRequestResult.Value);
        }
        public async Task Create_New_Module()
        {
            // Arrange
            var fixture = new Fixture();

            fixture.Customize(new AutoMoqCustomization {
                ConfigureMembers = true
            });
            var context = GetFakeContext();

            var moduleDbSetMock = new Mock <DbSet <Module> >();

            context.Modules = moduleDbSetMock.Object;

            var controller = new ModulesController(context);

            // Act
            var result = await controller.Create(fixture.Create <ModuleCreationViewModel>());

            // Assert
            Assert.IsAssignableFrom <RedirectToRouteResult>(result);
            moduleDbSetMock.Verify(x => x.AddAsync(It.IsNotNull <Module>(), default), Times.Once);
        }