public async Task Register_ShouldReturnCreatedAtAction() { // Arrange var url = "/api/users/register"; using var scope = this._factory.Services.CreateScope(); var dbContext = scope.ServiceProvider.GetRequiredService <IntegratedCourseSystemContext>(); var baseAddress = _factory.Server.BaseAddress; var newUser = new DataBase.Models.User() { Email = "*****@*****.**", Password = "******", Role = DataBase.Models.UserRole.Student, }; var jsonStudent = JsonConvert.SerializeObject(newUser); var request = new HttpRequestMessage() { Method = HttpMethod.Post, RequestUri = new Uri(baseAddress, url), Content = new StringContent(jsonStudent, Encoding.UTF8, "application/json"), }; // Act var response = httpClient.SendAsync(request).Result; var content = await response.Content.ReadAsStringAsync(); // Assert response.EnsureSuccessStatusCode(); }
public void Logout_LoggedInUser_ShouldReturnCreatedWithEmpty() { // Arrange: register and login using var scope = this._factory.Services.CreateScope(); var dbContext = scope.ServiceProvider.GetRequiredService <IntegratedCourseSystemContext>(); var baseAddress = _factory.Server.BaseAddress; // Register a user var newUser = new DataBase.Models.User() { Email = "*****@*****.**", Password = Convert.ToBase64String(Encoding.UTF8.GetBytes("5")), Role = DataBase.Models.UserRole.Student }; var jsonStudent = JsonConvert.SerializeObject(newUser); var studentString = new StringContent(jsonStudent, Encoding.UTF8, "application/json"); var registerRequest = new HttpRequestMessage() { Method = HttpMethod.Post, RequestUri = new Uri(baseAddress, "/api/users/register"), Content = studentString, }; var registerResponse = httpClient.SendAsync(registerRequest).Result; registerResponse.EnsureSuccessStatusCode(); // Log in var url = "/api/users/login"; var logInRequest = new HttpRequestMessage() { Method = HttpMethod.Post, RequestUri = new Uri(baseAddress, url), Content = studentString, }; var logInResponse = httpClient.SendAsync(logInRequest).Result; logInResponse.EnsureSuccessStatusCode(); url = "/api/users/logout"; var logOutRequest = new HttpRequestMessage() { Method = HttpMethod.Post, RequestUri = new Uri(baseAddress, url), }; // Act: Log out var logOutResponse = httpClient.SendAsync(logOutRequest).Result; logOutResponse.EnsureSuccessStatusCode(); // Try to get user info (accessible only to users that are logged in) var userInfoRequest = new HttpRequestMessage() { Method = HttpMethod.Post, RequestUri = new Uri(baseAddress, "/api/users/logged_in"), }; // Assert var userInfoResponseAfterLoggedOut = httpClient.SendAsync(userInfoRequest).Result; Assert.Equal("", userInfoResponseAfterLoggedOut.Content.ReadAsStringAsync().Result); }