public async void PostChangePassword_UserDoesntExist_NotFound() { // Arrange var notExistingUserId = Guid.NewGuid(); var notExistingUserIdToken = TokenGeneratorTests.GenerateToken(notExistingUserId); var httpClient = fakeWebHost.Host.GetTestServer().CreateClient(); httpClient .DefaultRequestHeaders .Authorization = new AuthenticationHeaderValue("Bearer", notExistingUserIdToken); httpClient .DefaultRequestHeaders .Accept .Add(new MediaTypeWithQualityHeaderValue("application/json")); var jsonObject = new System.Json.JsonObject(); jsonObject.Add("currentPassword", fakeWebHost.DefaultUserPassword.ToString()); jsonObject.Add("newPassword", "Password2!"); var content = new StringContent( jsonObject.ToString(), Encoding.UTF8, "application/json"); // Act var response = await httpClient.PostAsync( string.Format("api/users/{0}/accounts/changepassword", notExistingUserId), content); // Assert response.StatusCode.Should().Be(HttpStatusCode.NotFound); }
public UserAccountsControllerTests(FakeWebHostWithDb fakeWebHost) { this.fakeWebHost = fakeWebHost; defaultUserId = Guid.Parse(fakeWebHost.DefaultNormalUserID.ToString()); myDefaultUserToken = TokenGeneratorTests.GenerateToken(defaultUserId); }
public async void Post_WrongContentTypeHeader_UnsupportedMediaType() { // Arrange var tokenUserId = Guid.NewGuid(); var myToken = TokenGeneratorTests.GenerateToken(tokenUserId); fakeWebHost .httpClient .DefaultRequestHeaders .Authorization = new AuthenticationHeaderValue("Bearer", myToken); fakeWebHost .httpClient .DefaultRequestHeaders .Accept .Add(new MediaTypeWithQualityHeaderValue("application/json")); var jsonObject = new JsonObject(); jsonObject.Add("firstName", "SomeName"); var content = new StringContent( jsonObject.ToString(), Encoding.UTF8, "application/invalidContentType"); // Act var response = await fakeWebHost.httpClient.PostAsync(string.Format("api/users/{0}/profiles", tokenUserId), content); // Assert response.StatusCode.Should().Be(HttpStatusCode.UnsupportedMediaType); }
public async void Get_DifferentUserIdUrlAndToken_Unauthorized() { // Arrange var tokenUserId = Guid.NewGuid(); var resourceUserId = Guid.NewGuid(); var myToken = TokenGeneratorTests.GenerateToken(tokenUserId); fakeWebHost .httpClient .DefaultRequestHeaders .Authorization = new AuthenticationHeaderValue("Bearer", myToken); fakeWebHost .httpClient .DefaultRequestHeaders .Accept .Add(new MediaTypeWithQualityHeaderValue("application/json")); // Act var response = await fakeWebHost.httpClient.GetAsync(string.Format("api/users/{0}/profiles", resourceUserId)); // Assert response.StatusCode.Should().Be(HttpStatusCode.Unauthorized); }
public async void Patch_DifferentUserIdUrlAndToken_Unauthorized() { // Arrange var tokenUserId = Guid.NewGuid(); var resourceUserId = Guid.NewGuid(); var myToken = TokenGeneratorTests.GenerateToken(tokenUserId); fakeWebHost .httpClient .DefaultRequestHeaders .Authorization = new AuthenticationHeaderValue("Bearer", myToken); fakeWebHost .httpClient .DefaultRequestHeaders .Accept .Add(new MediaTypeWithQualityHeaderValue("application/json")); var patchDoc = new JsonPatchDocument <UserProfileForUpdateDto>(); var serializedPatchDoc = JsonConvert.SerializeObject(patchDoc); var content = new StringContent( serializedPatchDoc, Encoding.UTF8, "application/json-patch+json"); // Act var response = await fakeWebHost.httpClient.PatchAsync(string.Format("api/users/{0}/profiles", resourceUserId), content); // Assert response.StatusCode.Should().Be(HttpStatusCode.Unauthorized); }
public UserProfilesControllerTests(FakeWebHostWithDb fakeWebHost) { this.fakeWebHost = fakeWebHost; var tokenUserId = Guid.NewGuid(); myAdminToken = TokenGeneratorTests.GenerateToken(tokenUserId, "admin"); }
public async void PostChangePassword_AdminChangeUsersPassword_Ok() { // Arrange string myAdminUserToken = TokenGeneratorTests.GenerateToken(Guid.NewGuid(), "admin"); // Create new WebHost as user has already changed password var newFakeWebHost = new FakeWebHostWithDb(); newFakeWebHost.IsDatabaseInitialized = false; await newFakeWebHost.InitializeAsync(); var httpClient = newFakeWebHost.Host.GetTestServer().CreateClient(); httpClient .DefaultRequestHeaders .Authorization = new AuthenticationHeaderValue("Bearer", myAdminUserToken); httpClient .DefaultRequestHeaders .Accept .Add(new MediaTypeWithQualityHeaderValue("application/json")); var jsonObject = new System.Json.JsonObject(); jsonObject.Add("currentPassword", newFakeWebHost.DefaultUserPassword.ToString()); jsonObject.Add("newPassword", "Password2!"); var content = new StringContent( jsonObject.ToString(), Encoding.UTF8, "application/json"); // Act var response = await httpClient.PostAsync( string.Format("api/users/{0}/accounts/changepassword", defaultUserId), content); var responseContent = await response.Content.ReadAsStringAsync(); await newFakeWebHost.DisposeAsync(); // Assert response.StatusCode.Should().Be(HttpStatusCode.OK); }