public async Task GetAll_Success()
        {
            // Arrange
            var repo = new FakePurchaseRepo(TestData.Purchases());
            var productRepo = new FakeProductService(TestData.Products());
            using (var controller = new PurchasesController(repo, productRepo, null, null))
            {
                // Act
                var result = await controller.GetAll();

                // Assert
                Assert.IsInstanceOfType(result.Result, typeof(OkObjectResult));
                var objResult = result.Result as OkObjectResult;
                Assert.IsNotNull(objResult);
            }
        }
Ejemplo n.º 2
0
        public async Task UserCanViewAllPurchases(int purchasesToAdd)
        {
            var user = Helper.GenerateRandomUser();


            var purchases = new List <Purchase>();

            for (int i = 0; i < purchasesToAdd; i++)
            {
                purchases.Add(new Purchase {
                    UserId = user.UserId
                });
            }

            Mock <IPurchasesRepository> mock    = new();
            PurchasesService            service = new(mock.Object);

            mock.Setup(x => x.AllForUserAsync(user.UserId)).ReturnsAsync(purchases);

            var controller = new PurchasesController(service)
            {
                ControllerContext = new ControllerContext
                {
                    HttpContext = new DefaultHttpContext
                    {
                        User = new ClaimsPrincipal(new ClaimsIdentity(new[]
                        {
                            new Claim("id", user.UserId.ToString())
                        }))
                    }
                }
            };

            var response = await controller.GetAll();

            if (purchasesToAdd > 0)
            {
                Assert.IsType <OkObjectResult>(response.Result);
                var actual = (response.Result as OkObjectResult)?.Value as List <Purchase>;
                Assert.Equal(purchases.Count, actual?.Count);
            }
            else
            {
                Assert.IsType <NoContentResult>(response.Result);
            }
        }