public async Task AddOrderDetails_WithValidModel_ShouldReturnOrderDetailsId()
        {
            //Arrange
            var db = this.SetDb();

            var repo = new Repository <OrderDetails>(db);
            var orderDetailsService = new OrderDetailsService(repo, this.Mapper);

            var model = new OrderDetailsViewModel
            {
                FirstName   = "Test",
                LastName    = "TestTest",
                Email       = "*****@*****.**",
                PhoneNumber = "+359/888777666",
                City        = "Test",
                Country     = "Test",
                Address     = "Test test test 6"
            };

            //Act
            var id = await orderDetailsService.AddOrderDetails(model);

            //Assert
            Assert.Equal(1, id);
        }
        public async Task SetOrderDetailsId_WithValidId_ShouldSetOrderDetailsToOrder()
        {
            //Arrange
            var db = this.SetDb();

            await this.SeedProducts(db);

            await this.SeedUser(db);

            var productRepo = new Repository <Product>(db);
            var repo        = new Repository <Order>(db);
            var userRepo    = new Repository <CakeItUser>(db);
            var wrapper     = new TestCartSessionWrapper();
            var cartManager = new CartManager(wrapper);

            var item1 = new Item()
            {
                Product = await productRepo.GetByIdAsync(1), Quantity = 1
            };

            cartManager.SetCartItem(new List <Item> {
                item1
            });

            var orderService = new OrderService(repo, userRepo, cartManager, this.Mapper);

            var userName = this.user.UserName;

            var result = await orderService.CreateOrder(userName);

            var detailsRepo         = new Repository <OrderDetails>(db);
            var orderDetailsService = new OrderDetailsService(detailsRepo, this.Mapper);

            var model = new OrderDetailsViewModel
            {
                FirstName   = "Test",
                LastName    = "TestTest",
                Email       = "*****@*****.**",
                PhoneNumber = "+359/888777666",
                City        = "Test",
                Country     = "Test",
                Address     = "Test test test 6"
            };

            var id = await orderDetailsService.AddOrderDetails(model);

            //Act
            await orderService.SetOrderDetailsId(id);

            var expectedOrderDetailsId = 1;
            var actualOrerDetailsId    = (await repo.GetByIdAsync(1)).OrderDetailsId;

            //Assert
            Assert.Equal(expectedOrderDetailsId, actualOrerDetailsId);
        }