public void AddReviewTest()
        {
            // Arrange
            var fakeRepo   = new FakeReviewRepository();
            var controller = new BookController(fakeRepo);
            var review     = new Review()
            {
                BookTitle  = "Grapes of Wrath",
                AuthorName = "Salinger",
                Reviewer   = new User()
                {
                    Name = "Me"
                },
                ReviewText = "Never actually read it"
            };

            // Act
            controller.Review(review);

            // Assert
            // Ensure that the review was added to the repository
            var retrievedReview = fakeRepo.Reviews.ToList()[0];

            Assert.Equal(System.DateTime.Now.Date.CompareTo(retrievedReview.ReviewDate.Date), 0);
        }
Exemple #2
0
        public async Task GetReviewDetailsTest_Success()
        {
            //Arrange
            var httpClient = SetupMock();

            var repo         = new FakeReviewRepository(TestData.Reviews());
            var purchaseRepo = new FakePurchaseService(TestData.Purchases());

            using (var controller = new ReviewsController(repo, purchaseRepo, new NullLogger <ReviewsController>()))
            {
                var id = 1;

                //Act
                var result = await controller.Details(id);

                //Assert
                var objResult = result.Result as OkObjectResult;
                Assert.IsNotNull(objResult);
                var retResult = objResult.Value as ReviewDetailsDto;
                Assert.IsNotNull(retResult);

                Assert.AreEqual(TestData.Reviews()[id - 1].Id, retResult.Id);
                Assert.AreEqual(TestData.Reviews()[id - 1].PurchaseId, retResult.PurchaseId);
                Assert.AreEqual(TestData.Reviews()[id - 1].IsVisible, retResult.IsVisible);
                Assert.AreEqual(TestData.Reviews()[id - 1].Rating, retResult.Rating);
                Assert.AreEqual(TestData.Reviews()[id - 1].Content, retResult.Content);
            }
        }
Exemple #3
0
        public async Task GetReviewProductTest_Success()
        {
            // Arrange
            var repo         = new FakeReviewRepository(TestData.Reviews());
            var purchaseRepo = new FakePurchaseService(TestData.Purchases());

            using (var controller = new ReviewsController(repo, purchaseRepo, new NullLogger <ReviewsController>()))
            {
                var prodId = 1;

                // Act
                var result = await controller.GetReviewProduct(prodId);

                // Assert
                Assert.IsNotNull(result);
                var objResult = result.Result as OkObjectResult;
                Assert.IsNotNull(objResult);
                var retResult = objResult.Value as List <Review>;
                Assert.IsNotNull(retResult);
                //foreach (Review review in retResult)
                //{
                //    Assert.AreEqual(await repo.GetReview(review.Id), review);
                //}
            }
        }
Exemple #4
0
        public async Task ProductAverageTest_OneReview()
        {
            //Arrange
            var repo         = new FakeReviewRepository(TestData.Reviews());
            var purchaseRepo = new FakePurchaseService(TestData.Purchases());

            using (var controller = new ReviewsController(repo, purchaseRepo, new NullLogger <ReviewsController>()))
            {
                var prodId = 3;

                //Act
                var result = await controller.ProductAverage(prodId);

                var expected = await controller.GetReviewProduct(prodId);

                //Assert
                var objResult = result.Result as OkObjectResult;
                Assert.IsNotNull(objResult);
                var retResult = objResult.Value;
                Assert.IsNotNull(retResult);
                double val = TestData.Reviews().FirstOrDefault(r => r.Purchase.Id == prodId).Rating;

                Assert.AreEqual(val, retResult);
            }
        }
 private void SetFakeRepo(CustomerModel customer)
 {
     fakeRepo = new FakeReviewRepository
     {
         Customer = customer
     };
 }
Exemple #6
0
        public async Task DeleteGet_Success()
        {
            // Arrange
            var repo         = new FakeReviewRepository(TestData.Reviews());
            var purchaseRepo = new FakePurchaseService(TestData.Purchases());

            using (var controller = new ReviewsController(repo, purchaseRepo, new NullLogger <ReviewsController>()))
            {
                var id = 1;

                // Act
                var result = await controller.Delete(id) as ViewResult;

                // Assert
                Assert.IsNotNull(result);
                var review = result.Model as Review;
                Assert.IsNotNull(review);
                var expected = TestData.Reviews().FirstOrDefault(r => r.Id == id);

                Assert.AreEqual(expected.Id, review.Id);
                Assert.AreEqual(expected.Content, review.Content);
                Assert.AreEqual(expected.IsVisible, review.IsVisible);
                Assert.AreEqual(expected.PurchaseId, review.PurchaseId);
                Assert.AreEqual(expected.Rating, review.Rating);
            }
        }
Exemple #7
0
        public async Task CreateGet_Success()
        {
            // Arrange
            var repo         = new FakeReviewRepository(TestData.Reviews());
            var purchaseRepo = new FakePurchaseService(TestData.Purchases());

            using (var controller = new ReviewsController(repo, purchaseRepo, new NullLogger <ReviewsController>()))
            {
                var id = 1;

                // Act
                var result = await controller.Create(id);

                // Assert
                Assert.IsNotNull(result);
                var review = result as ViewResult;
                Assert.IsNotNull(review);
                var purchase = review.ViewData["purchase"];

                var actual = purchase as PurchaseDto;
                var tgt    = TestData.Purchases().FirstOrDefault(p => p.Id == id);
                Assert.AreEqual(tgt.Id, actual.Id);
                Assert.AreEqual(tgt.AccountId, actual.AccountId);
                Assert.AreEqual(tgt.AddressId, actual.AddressId);
                Assert.AreEqual(tgt.OrderStatus, actual.OrderStatus);
                Assert.AreEqual(tgt.ProductId, actual.ProductId);
                Assert.AreEqual(tgt.Qty, actual.Qty);
                Assert.AreEqual(tgt.TimeStamp, actual.TimeStamp);
            }
        }
 private void SetFakeRepo()
 {
     fakeRepo = new FakeReviewRepository
     {
         ReviewModel = reviewModel,
         Customer    = customerRepoModel
     };
 }
Exemple #9
0
        public async Task GetReviewDetailsTestAsync_Hidden()
        {
            //Arrange
            var repo         = new FakeReviewRepository(TestData.Reviews());
            var purchaseRepo = new FakePurchaseService(TestData.Purchases());

            using (var controller = new ReviewsController(repo, purchaseRepo, new NullLogger <ReviewsController>()))
            {
                var id = 2;

                //Act
                var result = await controller.Details(id);

                //Assert
                Assert.IsInstanceOfType(result.Result, typeof(NotFoundResult));
            }
        }
Exemple #10
0
        public async Task DeleteReview_OutOfBounds()
        {
            // Arrange
            var repo         = new FakeReviewRepository(TestData.Reviews());
            var purchaseRepo = new FakePurchaseService(TestData.Purchases());

            using (var controller = new ReviewsController(repo, purchaseRepo, new NullLogger <ReviewsController>()))
            {
                var reviewId = -5;

                // Act
                var result = await controller.DeleteConfirmed(reviewId);

                // Assert
                Assert.IsInstanceOfType(result, typeof(BadRequestResult));
            }
        }
Exemple #11
0
        public async Task GetReviewProductTest_NotExists()
        {
            //Arrange
            var repo         = new FakeReviewRepository(TestData.Reviews());
            var purchaseRepo = new FakePurchaseService(TestData.Purchases());

            using (var controller = new ReviewsController(repo, purchaseRepo, new NullLogger <ReviewsController>()))
            {
                var prodId = 370;

                //Act
                var result = await controller.GetReviewProduct(prodId);

                //Assert
                Assert.IsInstanceOfType(result.Result, typeof(NotFoundResult));
            }
        }
Exemple #12
0
        public async Task IndexAccount_Null()
        {
            // Arrange
            var repo         = new FakeReviewRepository(TestData.Reviews());
            var purchaseRepo = new FakePurchaseService(TestData.Purchases());

            using (var controller = new ReviewsController(repo, purchaseRepo, new NullLogger <ReviewsController>()))
            {
                // Act
                var result = await controller.IndexAccount(null);

                // Assert
                Assert.IsNotNull(result);
                var objResult = result as NotFoundResult;
                Assert.IsNotNull(objResult);
            }
        }
Exemple #13
0
        public async Task GetReviewProductTest_Hidden()
        {
            //Arrange
            var repo         = new FakeReviewRepository(TestData.Reviews());
            var purchaseRepo = new FakePurchaseService(TestData.Purchases());

            using (var controller = new ReviewsController(repo, purchaseRepo, new NullLogger <ReviewsController>()))
            {
                var prodId = 2;

                //Act
                var result = await controller.GetReviewProduct(prodId);

                var expected = TestData.Reviews().Where(r => r.Purchase.ProductId == prodId && r.IsVisible).ToList();

                //Assert
                Assert.IsInstanceOfType(result.Result, typeof(NotFoundResult));
            }
        }
Exemple #14
0
        public async Task DeleteGet_NoReview()
        {
            // Arrange
            var repo         = new FakeReviewRepository(TestData.Reviews());
            var purchaseRepo = new FakePurchaseService(TestData.Purchases());

            using (var controller = new ReviewsController(repo, purchaseRepo, new NullLogger <ReviewsController>()))
            {
                var id = 360;

                // Act
                var result = await controller.Delete(id);

                // Assert
                Assert.IsNotNull(result);
                var objResult = result as NotFoundResult;
                Assert.IsNotNull(objResult);
            }
        }
Exemple #15
0
        public async Task CreateGet_OutOfRange()
        {
            // Arrange
            var repo         = new FakeReviewRepository(TestData.Reviews());
            var purchaseRepo = new FakePurchaseService(TestData.Purchases());

            using (var controller = new ReviewsController(repo, purchaseRepo, new NullLogger <ReviewsController>()))
            {
                var id = -9;

                // Act
                var result = await controller.Create(id);

                // Assert
                Assert.IsNotNull(result);
                var objResult = result as BadRequestObjectResult;
                Assert.IsNotNull(objResult);
            }
        }
Exemple #16
0
        public async Task Create_Success()
        {
            // Arrange
            var repo         = new FakeReviewRepository(TestData.Reviews());
            var purchaseRepo = new FakePurchaseService(TestData.Purchases());

            using (var controller = new ReviewsController(repo, purchaseRepo, new NullLogger <ReviewsController>()))
            {
                var review = new Review {
                    Content = "This is a test review", PurchaseId = 63, Rating = 3
                };

                // Act
                var result = await controller.Create(review);

                // Assert
                Assert.IsNotNull(result);
                Assert.IsInstanceOfType(result, typeof(OkObjectResult));
            }
        }
Exemple #17
0
        public async Task IndexAccount_Success()
        {
            // Arrange
            var repo         = new FakeReviewRepository(TestData.Reviews());
            var purchaseRepo = new FakePurchaseService(TestData.Purchases());

            using (var controller = new ReviewsController(repo, purchaseRepo, new NullLogger <ReviewsController>()))
            {
                var id = 1;

                // Act
                var result = await controller.IndexAccount(id) as ViewResult;

                // Assert
                Assert.IsNotNull(result);
                var index = result.Model as List <ReviewAccountViewModel>;
                Assert.IsNotNull(index);
                foreach (var review in index)
                {
                    var comp = TestData.Reviews().Select(r => new ReviewAccountViewModel
                    {
                        AccountId  = r.Purchase.AccountId,
                        Content    = r.Content,
                        Id         = r.Id,
                        IsVisible  = r.IsVisible,
                        ProductId  = r.Purchase.ProductId,
                        Purchase   = r.Purchase,
                        PurchaseId = r.PurchaseId,
                        Rating     = r.Rating
                    }).FirstOrDefault(r => r.Id == review.Id);
                    Assert.AreEqual(comp.AccountId, review.AccountId);
                    Assert.AreEqual(comp.Content, review.Content);
                    Assert.AreEqual(comp.Id, review.Id);
                    Assert.AreEqual(comp.IsVisible, review.IsVisible);
                    Assert.AreEqual(comp.ProductId, review.ProductId);
                    Assert.AreEqual(comp.PurchaseId, review.PurchaseId);
                    Assert.AreEqual(comp.Rating, review.Rating);
                }
            }
        }
Exemple #18
0
        public async Task ProductAverageTest_Hidden()
        {
            //Arrange
            var repo         = new FakeReviewRepository(TestData.Reviews());
            var purchaseRepo = new FakePurchaseService(TestData.Purchases());

            using (var controller = new ReviewsController(repo, purchaseRepo, new NullLogger <ReviewsController>()))
            {
                var prodId = 1;

                //Act
                var result = await controller.ProductAverage(prodId);

                //Assert
                Assert.IsNotNull(result);
                var objResult = result.Result as OkObjectResult;
                Assert.IsNotNull(objResult);
                var res = objResult.Value;

                Assert.AreEqual(2.5, res);
            }
        }
 private void SetFakeRepo()
 {
     fakeRepo = new FakeReviewRepository();
 }