Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        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);
        }
Exemple #8
0
        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);
        }
Exemple #9
0
 private void SetupOrderServiceAddAsyncMock(AddOrderModel addOrderModel, DefaultResponseModel expected)
 => orderServiceMock
 .Setup(service => service.AddAsync(addOrderModel))
 .ReturnsAsync(expected);
Exemple #10
0
 private void SetupAccountServiceAddCreditCardMock(string token, CreditCardData creditCardData, DefaultResponseModel defaultResponseModel)
 => accountServiceMock
 .Setup(service => service.AddCreditCardAsync(token, creditCardData))
 .ReturnsAsync(defaultResponseModel);