Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        public UserAccountsControllerTests(FakeWebHostWithDb fakeWebHost)
        {
            this.fakeWebHost = fakeWebHost;

            defaultUserId      = Guid.Parse(fakeWebHost.DefaultNormalUserID.ToString());
            myDefaultUserToken = TokenGeneratorTests.GenerateToken(defaultUserId);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        public UserProfilesControllerTests(FakeWebHostWithDb fakeWebHost)
        {
            this.fakeWebHost = fakeWebHost;

            var tokenUserId = Guid.NewGuid();

            myAdminToken = TokenGeneratorTests.GenerateToken(tokenUserId, "admin");
        }
Ejemplo n.º 7
0
        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);
        }