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); } }
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); } }