public void InvokesGetBookOnce_When_RemoveBookFromShoppingCartIsCalledWithCorrectParams()
        {
            var unitOfWorkMock = new Mock <IUnitOfWork>();
            var mapperStub     = new Mock <IMapper>();
            var fakeUser       = new BookstoreUser()
            {
                Id = 1
            };
            var fakeBook         = new Book();
            var fakeShoppingCart = new ShoppingCart()
            {
                UserId = 1
            };
            var fakeShoppingCarts = new List <ShoppingCart>()
            {
                fakeShoppingCart
            }.AsQueryable();
            var shoppingCartService = new ShoppingCartService(unitOfWorkMock.Object, mapperStub.Object);


            unitOfWorkMock.Setup(x => x.Users.GetById(1)).Returns(fakeUser);
            unitOfWorkMock.Setup(x => x.Books.GetById(1)).Returns(fakeBook).Verifiable();
            unitOfWorkMock.Setup(x => x.ShoppingCarts.All()).Returns(fakeShoppingCarts);

            shoppingCartService.RemoveBookFromShoppingCart(1, 1);

            unitOfWorkMock.Verify(x => x.Books.GetById(It.IsAny <int>()), Times.Once);
        }
Ejemplo n.º 2
0
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new BookstoreUser
                {
                    UserName    = model.UserName,
                    Email       = model.Email,
                    PhoneNumber = model.PhoneNumber,
                    UserAddress = model.Address
                };

                var result = await this.userManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    await this.signInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                    return(RedirectToAction("Index", "Home"));
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
        private void SeedUsers(BookstoreContext context)
        {
            var userStore   = new UserStore <BookstoreUser, BookstoreRole, int, BookstoreUserLogin, BookstoreUserRole, BookstoreUserClaim>(context);
            var userManager = new UserManager <BookstoreUser, int>(userStore);

            #region Users

            var userSofi = new BookstoreUser()
            {
                FirstName    = "Sofia",
                LastName     = "Kiryakova",
                Email        = "*****@*****.**",
                PhoneNumber  = "123456",
                PasswordHash = new PasswordHasher().HashPassword("admin"),
                UserAddress  = "asd",
                UserName     = "******"
            };

            var userMe = new BookstoreUser()
            {
                FirstName    = "admin",
                LastName     = "admin",
                Email        = "*****@*****.**",
                PhoneNumber  = "123456",
                PasswordHash = new PasswordHasher().HashPassword("admin"),
                UserAddress  = "asd",
                UserName     = "******"
            };

            var userNick = new BookstoreUser()
            {
                FirstName    = "Nikolay",
                LastName     = "Nikolov",
                Email        = "you@you",
                PhoneNumber  = "123456",
                PasswordHash = new PasswordHasher().HashPassword("admin"),
                UserAddress  = "asd",
                UserName     = "******"
            };
            #endregion

            userManager.Create(userSofi);
            userManager.Create(userNick);
            userManager.Create(userMe);

            context.SaveChanges();
        }
        public void ReturnAllOrders_WhenInvokedWithCorrectUserId()
        {
            var mapperMock     = new Mock <IMapper>();
            var unitOfWorkMock = new Mock <IUnitOfWork>();
            var repoMock       = new Mock <IRepository <Order> >();

            var user1 = new BookstoreUser()
            {
                Id = 2,
            };

            var orders = new List <Order>()
            {
                new Order
                {
                    UserId = 2,
                    User   = user1
                },
                new Order
                {
                    UserId = 2,
                    User   = user1
                }
            };

            mapperMock.Setup(x => x.Map <List <OrderViewModel> >(It.IsAny <List <Order> >()))
            .Returns(new List <OrderViewModel>());

            repoMock.Setup(r => r.All()).Returns(orders.AsQueryable());
            unitOfWorkMock.Setup(u => u.Orders).Returns(repoMock.Object);

            var orderService = new OrderService(unitOfWorkMock.Object, mapperMock.Object);

            var sut = orderService.GetUserOrders(2);

            Assert.AreEqual(2, sut.Count);
        }
        public void DeleteBookFromWishlist_WhenInvokedWithCorrectParams()
        {
            var mapperMock     = new Mock <IMapper>();
            var unitOfWorkMock = new Mock <IUnitOfWork>();

            var repoMock = new Mock <IRepository <Wishlist> >();

            var author1 = new Author {
                Id = 1, AuthorName = "Author1"
            };
            var book1 = new Book()
            {
                Id         = 1,
                Isbn       = "123",
                Title      = "C# Unleashed",
                Author     = author1,
                CategoryId = 1,
            };
            var book2 = new Book()
            {
                Id         = 1,
                Isbn       = "12233",
                Title      = "Java Unleashed",
                Author     = author1,
                CategoryId = 2,
            };
            var books = new Collection <Book>()
            {
                book1, book2
            };
            var user1 = new BookstoreUser()
            {
                FirstName    = "Pesho",
                LastName     = "Petrov",
                Id           = 2,
                PasswordHash = "secret",
                Email        = "email",
                PhoneNumber  = "0888888",
                UserAddress  = "asd",
                UserName     = "******"
            };
            var wishlist = new Wishlist()
            {
                Books  = books,
                Id     = 1,
                User   = user1,
                UserId = 2
            };
            var wishlists = new List <Wishlist>()
            {
                wishlist
            };

            mapperMock.Setup(x =>
                             x.Map <List <WishlistViewModel> >(It.IsAny <List <Wishlist> >()))
            .Returns(new List <WishlistViewModel>());

            mapperMock.Setup(x =>
                             x.Map <List <BookViewModel> >(It.IsAny <List <Book> >()))
            .Returns(new List <BookViewModel>());

            repoMock.Setup(x => x.All()).Returns(wishlists.AsQueryable);

            unitOfWorkMock.Setup(x => x.Wishlists).Returns(repoMock.Object);
            unitOfWorkMock.Setup(x => x.Books.GetById(1)).Returns(book1);
            unitOfWorkMock.Setup(x => x.Users.GetById(2)).Returns(user1);

            var wishlistService = new WishlistService(unitOfWorkMock.Object, mapperMock.Object);

            wishlistService.DeleteBookFromWishlist(book1.Id, user1.Id);

            var actualBookCountInWishlist = wishlist.Books.Count;

            Assert.AreEqual(1, actualBookCountInWishlist);
        }
        public void ReturnTotalOrderPrice_WhenInvokedWithCorrectOrderId()
        {
            var mapperMock     = new Mock <IMapper>();
            var unitOfWorkMock = new Mock <IUnitOfWork>();


            var author1 = new Author {
                Id = 1, AuthorName = "Author1"
            };
            var book1 = new Book()
            {
                Id         = 1,
                Isbn       = "123",
                Title      = "C# Unleashed",
                Author     = author1,
                Price      = 10,
                CategoryId = 1
            };

            var book2 = new Book()
            {
                Id         = 2,
                Isbn       = "457123",
                Title      = "Java Unleashed",
                Author     = author1,
                Price      = 30,
                CategoryId = 1
            };

            var orderStatus = new OrderStatus()
            {
                Id = 1, OrderStatusDescription = "Status"
            };
            var books = new Collection <Book>()
            {
                book1, book2
            };

            var user1 = new BookstoreUser()
            {
                FirstName    = "Pesho",
                LastName     = "Petrov",
                Id           = 2,
                PasswordHash = "secret",
                Email        = "email",
                PhoneNumber  = "0888888",
                UserAddress  = "asd",
                UserName     = "******"
            };

            var order1 = new Order()
            {
                Books           = books,
                DeliveryAddress = "address",
                Id                 = 100,
                OrderStatusId      = 1,
                OrderStatus        = orderStatus,
                PhoneNumber        = user1.PhoneNumber,
                UserId             = 1,
                User               = user1,
                OrderCompletedTime = null,
                ReceivedOrderTime  = null
            };



            mapperMock.Setup(x => x.Map <List <OrderViewModel> >(It.IsAny <List <Order> >()))
            .Returns(new List <OrderViewModel>());



            unitOfWorkMock.Setup(x => x.Orders.GetById(100)).Returns(order1);

            var orderService = new OrderService(unitOfWorkMock.Object, mapperMock.Object);


            var orderId = 100;

            var sut = orderService.GetTotalOrderPrice(orderId);

            Assert.AreEqual(40, sut);
        }
        public void ReturnCorrectValue_WhenInvokedWithCorrectParams()
        {
            var unitOfWorkMock = new Mock <IUnitOfWork>();
            var mapperStub     = new Mock <IMapper>();

            var shoppingCartService = new ShoppingCartService(unitOfWorkMock.Object, mapperStub.Object);

            var author1 = new Author {
                Id = 1, AuthorName = "Author1"
            };


            var books = new List <Book>
            {
                new Book {
                    Id    = 1, Isbn = "123",
                    Title = "C# Unleashed", Author = author1, CategoryId = 1, Price = 10
                },
                new Book {
                    Id    = 2, Isbn = "213",
                    Title = "ASP.Net Unleashed", Author = author1, CategoryId = 1, Price = 10
                },
                new Book {
                    Id    = 3, Isbn = "312",
                    Title = "Java Unleashed", Author = author1, CategoryId = 1, Price = 10
                }
            };



            var user1 = new BookstoreUser()
            {
                FirstName = "Pesho",
                LastName  = "Petrov",
                Id        = 2,

                Email       = "email",
                PhoneNumber = "0888888",
            };
            var shoppingCartStatus = new ShoppingCartStatus()
            {
                Id = 1,
                ShoppingCartStatusDescription = "test"
            };

            var shoppingCart = new ShoppingCart()
            {
                Books = books,
                Id    = 1,

                UserId               = 2,
                ShoppingCartStatus   = shoppingCartStatus,
                ShoppingCartStatusId = shoppingCartStatus.Id
            };

            var shoppingCarts = new List <ShoppingCart>()
            {
                shoppingCart
            }.AsQueryable();

            unitOfWorkMock.Setup(x => x.Users.GetById(2)).Returns(user1);
            unitOfWorkMock.Setup(x => x.ShoppingCarts.All()).Returns(shoppingCarts);

            var expectedTotalPrice = 30;

            var actualTotalPrice = shoppingCartService.GetCartTotalPrice(user1.Id);

            Assert.AreEqual(expectedTotalPrice, actualTotalPrice);
        }