25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.

48 satır
1.7KB

  1. using System.Net;
  2. using Microsoft.AspNetCore.Mvc.Testing;
  3. namespace CartWise.Web.Tests;
  4. public class HouseholdAccessControlTests : IClassFixture<CartWiseWebApplicationFactory>
  5. {
  6. private readonly CartWiseWebApplicationFactory _factory;
  7. public HouseholdAccessControlTests(CartWiseWebApplicationFactory factory)
  8. {
  9. _factory = factory;
  10. }
  11. [Fact]
  12. public async Task AnonymousUser_IsRedirectedToLoginWhenRequestingHousehold()
  13. {
  14. var client = _factory.CreateClient(new WebApplicationFactoryClientOptions { AllowAutoRedirect = false });
  15. var response = await client.GetAsync("/household");
  16. Assert.Equal(HttpStatusCode.Redirect, response.StatusCode);
  17. Assert.Contains("/Account/Login", response.Headers.Location?.ToString());
  18. }
  19. [Fact]
  20. public async Task EachUser_OnlySeesTheirOwnHousehold()
  21. {
  22. var clientA = _factory.CreateClient();
  23. var clientB = _factory.CreateClient();
  24. await WebTestHelpers.RegisterAsync(clientA, "alice2@example.com", "Alice");
  25. await WebTestHelpers.RegisterAsync(clientB, "bob2@example.com", "Bob");
  26. await WebTestHelpers.CreateHouseholdAsync(clientA, "Alice's Household");
  27. await WebTestHelpers.CreateHouseholdAsync(clientB, "Bob's Household");
  28. var householdPageA = await clientA.GetStringAsync("/household");
  29. var householdPageB = await clientB.GetStringAsync("/household");
  30. HtmlAssert.Contains("Alice's Household", householdPageA);
  31. HtmlAssert.DoesNotContain("Bob's Household", householdPageA);
  32. HtmlAssert.Contains("Bob's Household", householdPageB);
  33. HtmlAssert.DoesNotContain("Alice's Household", householdPageB);
  34. }
  35. }

Powered by TurnKey Linux.