public async Task <DefaultResponseModel> AddCreditCardAsync(string token, CreditCardData creditCardData) { DefaultResponseModel response = new DefaultResponseModel { IsSuccessful = false, Message = string.Empty }; ClientData client = await sessionHandler.GetClientAsync(token); if (client == null) { response.Message = "Unauthorized user"; return(response); } CreditCardData cardInDatabase = await creditCardRepository.GetByNumberAsync(creditCardData.Number); if (cardInDatabase != null) { response.Message = "This card already registered in the database"; return(response); } creditCardData.ClientId = client.Id; creditCardData = await creditCardRepository.AddAsync(creditCardData); if (creditCardData.Id > 0) { response.IsSuccessful = true; } return(response); }
public async Task AddOrderAsyncNullSessionTest() { AddOrderModel addOrderModel = CreateAddOrderModel(Token); SetupSessionRepositoryMock(addOrderModel.Token, null); DefaultResponseModel expected = CreateDeniedDefaultResponseModel(); DefaultResponseModel actual = await orderService.AddAsync(addOrderModel); Assert.AreEqual(expected.IsSuccessful, actual.IsSuccessful); }
public async Task RemoveCreditCardTest() { CreditCardData creditCardData = CreateCreditCardData(); DefaultResponseModel expected = CreateDefaultResponseModel(); SetupAccountServiceRemoveCreditCardMock(Token, creditCardData, expected); var actual = (JsonResult)await accountApiController.RemoveCreditCard(Token, creditCardData); Assert.AreEqual(expected, actual.Value); }
public async Task AddOrderAsyncRoomIsNotAvailableTest() { AddOrderModel addOrderModel = CreateAddOrderModel(Token); SessionData sessionData = CreateSessionData(); SetupSessionRepositoryMock(addOrderModel.Token, sessionData); SetupRoomAvailabilityHandlerMock(addOrderModel, DatesAreValid, RoomIsNotAvailable); DefaultResponseModel expected = CreateDeniedDefaultResponseModel(); DefaultResponseModel actual = await orderService.AddAsync(addOrderModel); Assert.AreEqual(expected.IsSuccessful, actual.IsSuccessful); }
public async Task AddOrderAsyncTest() { AddOrderModel addOrderModel = CreateAddOrderModel(); DefaultResponseModel expected = CreateDefaultResponseModel(); SetupOrderServiceAddAsyncMock(addOrderModel, expected); IActionResult actual = await orderApiController.Add(addOrderModel); DefaultResponseModel actualValue = (DefaultResponseModel)(actual as JsonResult).Value; Assert.AreEqual(actualValue.Message, expected.Message); }
public async Task AddOrderAsyncValidDataTest() { AddOrderModel addOrderModel = CreateAddOrderModel(Token); SessionData sessionData = CreateSessionData(); UserData userData = CreateUserData(); ClientData clientData = CreateClientData(); SetupSessionRepositoryMock(addOrderModel.Token, sessionData); SetupApplicationUserRepositoryMock(sessionData.UserId, userData); SetupClientRepositoryMock(clientData, userData.Id); SetupOrderRepositoryAddAsyncMock(addOrderModel, clientData.Id); SetupRoomAvailabilityHandlerMock(addOrderModel, DatesAreValid, RoomIsAvailable); DefaultResponseModel expected = CreateSuccessfulDefaultResponseModel(); var actual = await orderService.AddAsync(addOrderModel); Assert.AreEqual(expected.IsSuccessful, actual.IsSuccessful); }
public async Task <DefaultResponseModel> AddAsync(AddOrderModel addOrderModel) { DefaultResponseModel response = new DefaultResponseModel { IsSuccessful = false, Message = string.Empty }; SessionData session = await sessionRepository.GetByTokenAsync(addOrderModel.Token); if (session == null) { response.Message = "Unathorized user"; return(response); } if (!await roomAvailabilityHandler.AreBookingDatesValid(addOrderModel)) { response.Message = "Dates are not valid"; return(response); } if (!await roomAvailabilityHandler.IsRoomAvailableAsync(addOrderModel)) { response.Message = "Room already booked for this dates"; return(response); } UserData user = await applicationUserRepository.FindByIdAsync(session.UserId); ClientData client = await clientRepository.FindByIdAsync(user.Id); var orderData = new OrderData { Name = addOrderModel.Name, Surname = addOrderModel.Surname, RoomId = addOrderModel.RoomId, CheckIn = addOrderModel.CheckIn, CheckOut = addOrderModel.CheckOut, ClientId = client.Id, }; OrderData addedOrder = await orderRepository.AddAsync(orderData); response.IsSuccessful = true; return(response); }
public async Task <DefaultResponseModel> RemoveCreditCardAsync(string token, CreditCardData creditCardData) { DefaultResponseModel response = new DefaultResponseModel { IsSuccessful = false, Message = string.Empty }; ClientData client = await sessionHandler.GetClientAsync(token); if (client == null) { response.Message = "Unauthorized user"; return(response); } IReadOnlyCollection <CreditCardData> storedCards = await creditCardRepository.GetByClientAsync(client.Id); if (!storedCards.Any((card) => card.Number == creditCardData.Number)) { response.Message = "Client doesn`t have this card"; return(response); } creditCardRepository.Remove(creditCardData); response.IsSuccessful = true; return(response); }
private void SetupOrderServiceAddAsyncMock(AddOrderModel addOrderModel, DefaultResponseModel expected) => orderServiceMock .Setup(service => service.AddAsync(addOrderModel)) .ReturnsAsync(expected);
private void SetupAccountServiceAddCreditCardMock(string token, CreditCardData creditCardData, DefaultResponseModel defaultResponseModel) => accountServiceMock .Setup(service => service.AddCreditCardAsync(token, creditCardData)) .ReturnsAsync(defaultResponseModel);