public void Setup() { // Организация - создание имитированного хранилища данных Mock <IDiscountRepository> mock = new Mock <IDiscountRepository>(); mock.Setup(m => m.GetDiscounts).Returns(new List <Discount> { new Discount { ID = 1, Title = "Скидка 1" }, new Discount { ID = 2, Title = "Скидка 2" }, new Discount { ID = 3, Title = "Скидка 3" }, new Discount { ID = 4, Title = "Скидка 4" }, new Discount { ID = 5, Title = "Скидка 5" } }); // Организация - создание контроллера controller = new DiscountsController(mock.Object); controller.pageSize = 3; }
public void BuyTicketTest() { // Arrange var data = unitOfFactory.CreateTransactionalUnitOfWork(); User user = new User() { Login = "******", Password = "******", Tickets = "1,2,3:1-14,15,16;1,1,3,3:1-24,25,26,27" }; data.Users.Add(user); data.SaveChanges(); DiscountsController discountController = new DiscountsController(unitOfFactory); var discountResult = discountController.GetDiscount(1); var discount = (discountResult.Result as OkNegotiatedContentResult <DiscountDTO>).Content; Dictionary <DiscountDTO, int> dict = new Dictionary <DiscountDTO, int>(); dict.Add(discount, 2); ConnectionPathDTO conPath = new ConnectionPathDTO(); Connection con = data.Connections.Find(1); ConnectionDTO conDTO = Mapper.Map <Connection, ConnectionDTO>(con); ConnectionPart conPart = new ConnectionPart { Connection = con, Id = 9999999, Seats = "1;2;3", FreeSeats = 3, Route = data.Routes.Find(1), StartTime = DateTime.Now, EndTime = DateTime.Now.AddMinutes(30) }; data.ConnectionParts.Add(conPart); data.SaveChanges(); conPath.ConnectionsParts = new List <ConnectionPartDTO> { Mapper.Map <ConnectionPart, ConnectionPartDTO>(conPart) }; UserDTO userDTO = Mapper.Map <User, UserDTO>(data.Users.Where(u => u.Login == user.Login).First()); TicketDTO ticketDTO = new TicketDTO() { Discounts = dict, User = userDTO, ConnectionPath = conPath, Seats = new List <int[]> { new int[] { 1, 3 } } }; TicketsModel ticketsModel = new TicketsModel(); data.SaveChanges(); // Act ticketsModel.BuyTicket(ticketDTO, data); // Assert Assert.AreEqual("2", conPart.Seats); Assert.AreEqual(string.Format("1,2,3:1-14,15,16;1,1,3,3:1-24,25,26,27;1,1:{0}-1,3", conPart.Id), user.Tickets); }
public async Task DeleteDiscountAsync__An_unexpected_internal_error_occurred__Should_throw_Exception() { _discountDbServiceMock.Setup(x => x.DeleteAsync(It.IsAny <string>())).ThrowsAsync(new Exception()); var controller = new DiscountsController(_discountDbServiceMock.Object, _logger, _mapperMock.Object); Func <Task> result = async() => await controller.DeleteDiscountAsync("1"); await result.Should().ThrowExactlyAsync <Exception>(); }
public async Task DeleteDiscountAsync__Argument_id_is_null_or_empty__Should_return_400BadRequest_response([Values(null, "")] string id) { _discountDbServiceMock.Setup(x => x.DeleteAsync(id)).ThrowsAsync(new ArgumentException()); var controller = new DiscountsController(_discountDbServiceMock.Object, _logger, _mapperMock.Object); var result = await controller.DeleteDiscountAsync(id); (result as ObjectResult).StatusCode.Should().Be(400); ((result as ObjectResult).Value as ResponseWrapper).Error.Should().NotBeNull(); }
public async Task GetDiscountAsync__Element_not_found__Should_return_404NotFound_response_with_error() { _discountDbServiceMock.Setup(x => x.GetAsync(It.IsNotNull <string>())).ThrowsAsync(new InvalidOperationException()); var controller = new DiscountsController(_discountDbServiceMock.Object, _logger, _mapperMock.Object); var result = await controller.GetDiscountAsync("1"); (result as ObjectResult).StatusCode.Should().Be(404); ((result as ObjectResult).Value as ResponseWrapper).Error.Should().NotBeNull(); }
public async Task DeleteDiscountAsync__Delete_succeeded__Should_return_200OK_response() { _discountDbServiceMock.Setup(x => x.DeleteAsync(It.IsNotNull <string>())); var controller = new DiscountsController(_discountDbServiceMock.Object, _logger, _mapperMock.Object); var result = await controller.DeleteDiscountAsync("1"); (result as ObjectResult).StatusCode.Should().Be(200); ((result as ObjectResult).Value as ResponseWrapper).Error.Should().BeEquivalentTo(new ApiError()); }
public async Task GetAllDiscountAsync__At_least_one_element_found__Should_return_200OK_response_with_not_empty_IEnumerable() { _discountDbServiceMock.Setup(x => x.GetAllAsync()).ReturnsAsync(_discounts); _mapperMock.Setup(x => x.Map <IEnumerable <DiscountDto> >(It.IsNotNull <IEnumerable <Discount> >())).Returns(_discountDtos.AsEnumerable()); var controller = new DiscountsController(_discountDbServiceMock.Object, _logger, _mapperMock.Object); var result = await controller.GetAllDiscountsAsync(); (result as ObjectResult).StatusCode.Should().Be(200); (((result as ObjectResult).Value as ResponseWrapper).Data as IEnumerable <DiscountDto>).Should().NotBeEmpty(); }
public async Task UpdateDiscountAsync__An_unexpected_internal_error_occurred__Should_throw_Exception() { _discountDbServiceMock.Setup(x => x.UpdateAsync(It.IsAny <Discount>())).ThrowsAsync(new Exception()); _discountDbServiceMock.Setup(x => x.RestrictedUpdateAsync(It.IsAny <Discount>())).ThrowsAsync(new Exception()); _mapperMock.Setup(x => x.Map <Discount>(It.IsNotNull <Discount>())).Returns(_validDiscount); var controller = new DiscountsController(_discountDbServiceMock.Object, _logger, _mapperMock.Object); Func <Task> result = async() => await controller.UpdateDiscountAsync(_discountDtos[0].Id, _discountDtos[0]); await result.Should().ThrowExactlyAsync <Exception>(); }
public async Task DeleteDiscountAsync__An_internal_error_reffered_to_the_database_occurred__Should_throw_InternalDbServiceException() { // Example of these errors: database does not exist, table does not exist etc. _discountDbServiceMock.Setup(x => x.DeleteAsync(It.IsAny <string>())).ThrowsAsync(new InternalDbServiceException()); var controller = new DiscountsController(_discountDbServiceMock.Object, _logger, _mapperMock.Object); Func <Task> result = async() => await controller.DeleteDiscountAsync("1"); await result.Should().ThrowExactlyAsync <InternalDbServiceException>(); }
public async Task UpdateDiscountAsync__Argument_id_is_null_or_empty__Should_return_400BadRequest_response([Values(null, "")] string id) { var discountDto = new DiscountDto { Id = id, Description = "Test dto description" }; var controller = new DiscountsController(_discountDbServiceMock.Object, _logger, _mapperMock.Object); var result = await controller.UpdateDiscountAsync(id, discountDto); (result as ObjectResult).StatusCode.Should().Be(400); ((result as ObjectResult).Value as ResponseWrapper).Error.Should().NotBeNull(); }
public void Configure_DateTestParsed() { var controller = new DiscountsController(); controller.Configure(DateTime.ParseExact("01-01-2018", "dd-MM-yyyy", CultureInfo.InvariantCulture)); var date = DiscountsContants.DiscountDateToBeParsed; if (date != "1-1-2018") { Assert.Fail(); } }
public async Task UpdateDiscountAsync__Argument_id_and_id_property_in_element_to_be_updated_mismatches__Should_return_400BadRequest_response() { var discountDto = new DiscountDto { Id = "1", Description = "Test dto description" }; string id = discountDto.Id + "_mismatched_id"; var controller = new DiscountsController(_discountDbServiceMock.Object, _logger, _mapperMock.Object); var result = await controller.UpdateDiscountAsync(id, discountDto); (result as ObjectResult).StatusCode.Should().Be(400); ((result as ObjectResult).Value as ResponseWrapper).Error.Should().NotBeNull(); }
public async Task AddDiscountAsync__An_unexpected_internal_error_occurred__Should_throw_Exception() { _discountDbServiceMock.Setup(x => x.AddAsync(It.IsAny <Discount>())).ThrowsAsync(new Exception()); _discountDbServiceMock.Setup(x => x.RestrictedAddAsync(It.IsAny <Discount>())).ThrowsAsync(new Exception()); var controller = new DiscountsController(_discountDbServiceMock.Object, _logger, _mapperMock.Object); var discount = new DiscountDto { Id = "1", Description = "test" }; Func <Task> result = async() => await controller.AddDiscountAsync(discount); await result.Should().ThrowExactlyAsync <Exception>(); }
public async Task UpdateDiscountAsync__An_internal_error_reffered_to_the_database_occurred__Should_throw_InternalDbServiceException() { // Example of these errors: database does not exist, table does not exist etc. _discountDbServiceMock.Setup(x => x.UpdateAsync(It.IsAny <Discount>())).ThrowsAsync(new InternalDbServiceException()); _discountDbServiceMock.Setup(x => x.RestrictedUpdateAsync(It.IsAny <Discount>())).ThrowsAsync(new InternalDbServiceException()); _mapperMock.Setup(x => x.Map <Discount>(It.IsNotNull <Discount>())).Returns(_validDiscount); var controller = new DiscountsController(_discountDbServiceMock.Object, _logger, _mapperMock.Object); Func <Task> result = async() => await controller.UpdateDiscountAsync(_discountDtos[0].Id, _discountDtos[0]); await result.Should().ThrowExactlyAsync <InternalDbServiceException>(); }
public async Task AddDiscountAsync__Already_there_is_the_same_element_in_database__Should_return_400BadRequest_response() { var discountDto = CreateDiscountDto(_discounts[0]); _mapperMock.Setup(x => x.Map <Discount>(discountDto)).Returns(_discounts[0]); _discountDbServiceMock.Setup(x => x.AddAsync(It.IsNotNull <Discount>())).ThrowsAsync(new InvalidOperationException()); _discountDbServiceMock.Setup(x => x.RestrictedAddAsync(It.IsNotNull <Discount>())).ThrowsAsync(new InvalidOperationException()); var controller = new DiscountsController(_discountDbServiceMock.Object, _logger, _mapperMock.Object); var result = await controller.AddDiscountAsync(discountDto); (result as ObjectResult).StatusCode.Should().Be(400); ((result as ObjectResult).Value as ResponseWrapper).Error.Should().NotBeNull(); }
public async Task GetDiscountAsync__Data_retrieve_succeeded__Should_return_200Ok_response_with_data() { string id = "15891fb0-faec-43c6-9e83-04a4a17c3660"; _discountDbServiceMock.Setup(x => x.GetAsync(It.IsNotNull <string>())).ReturnsAsync(_validDiscount); _mapperMock.Setup(x => x.Map <DiscountDto>(It.IsNotNull <Discount>())).Returns(new DiscountDto { Id = id, Description = "new mapped discount" }); var controller = new DiscountsController(_discountDbServiceMock.Object, _logger, _mapperMock.Object); var result = await controller.GetDiscountAsync(id); (result as ObjectResult).StatusCode.Should().Be(200); ((result as ObjectResult).Value as ResponseWrapper).Data.Should().NotBeNull(); }
public async Task AddDiscountAsync__An_internal_error_reffered_to_the_database_occurred__Should_throw_InternalDbServiceException() { // Example of these errors: database does not exist, table does not exist etc. _discountDbServiceMock.Setup(x => x.AddAsync(It.IsAny <Discount>())).ThrowsAsync(new InternalDbServiceException()); _discountDbServiceMock.Setup(x => x.RestrictedAddAsync(It.IsAny <Discount>())).ThrowsAsync(new InternalDbServiceException()); var discount = new DiscountDto { Id = "1", Description = "test" }; var controller = new DiscountsController(_discountDbServiceMock.Object, _logger, _mapperMock.Object); Func <Task> result = async() => await controller.AddDiscountAsync(discount); await result.Should().ThrowExactlyAsync <InternalDbServiceException>(); }
public void Index_IsInAdminRole() { var controller = new DiscountsController() { ControllerContext = new ControllerContext() { HttpContext = new DefaultHttpContext() { User = new ClaimsPrincipal(new ClaimsIdentity(new[] { new Claim(ClaimTypes.Role, "Admin") })) } } }; Assert.IsTrue(controller.User.IsInRole("Admin")); }
public async Task UpdateDiscountAsync__Update_succeeded__Should_return_200OK_response_with_updated_element() { var validDiscount = new Discount { Id = "12312321321321", Description = "Valid description" }; var validDiscountDto = CreateDiscountDto(validDiscount); _mapperMock.Setup(x => x.Map <Discount>(It.IsNotNull <DiscountDto>())).Returns(validDiscount); _mapperMock.Setup(x => x.Map <DiscountDto>(It.IsNotNull <Discount>())).Returns(validDiscountDto); _discountDbServiceMock.Setup(x => x.UpdateAsync(validDiscount)).ReturnsAsync(validDiscount); _discountDbServiceMock.Setup(x => x.RestrictedUpdateAsync(validDiscount)).ReturnsAsync(validDiscount); var controller = new DiscountsController(_discountDbServiceMock.Object, _logger, _mapperMock.Object); var result = await controller.UpdateDiscountAsync(validDiscountDto.Id, validDiscountDto); (result as ObjectResult).StatusCode.Should().Be(200); ((result as ObjectResult).Value as ResponseWrapper).Data.Should().BeEquivalentTo(validDiscountDto); }
public async Task UpdateDiscountAsync__Element_not_found__Should_return_404NotFound_response_with_error() { var validDiscount = new Discount { Id = "12312321321321", Description = "Valid description" }; var validDiscountDto = CreateDiscountDto(validDiscount); _mapperMock.Setup(x => x.Map <Discount>(It.IsNotNull <DiscountDto>())).Returns(validDiscount); _mapperMock.Setup(x => x.Map <DiscountDto>(It.IsNotNull <Discount>())).Returns(validDiscountDto); _discountDbServiceMock.Setup(x => x.UpdateAsync(It.IsNotNull <Discount>())).ThrowsAsync(new InvalidOperationException()); _discountDbServiceMock.Setup(x => x.RestrictedUpdateAsync(It.IsNotNull <Discount>())).ThrowsAsync(new InvalidOperationException()); var controller = new DiscountsController(_discountDbServiceMock.Object, _logger, _mapperMock.Object); var result = await controller.UpdateDiscountAsync(validDiscountDto.Id, validDiscountDto); (result as ObjectResult).StatusCode.Should().Be(404); ((result as ObjectResult).Value as ResponseWrapper).Error.Should().NotBeNull(); }