public void TestUserIdValid(ValidUserIdTestCases inputType)
        {
            var parameterRequest = new Dictionary <string, object>(ResetUserPasswordParameters);

            parameterRequest.Remove("forcePasswordChange");
            PrivateApiResponse <ResetUserPasswordResponse> response = null;

            if (inputType == ValidUserIdTestCases.AdminRole)
            {
                var resetUserPassHandler = new ResetUserPasswordManager();
                response = resetUserPassHandler.ResetUserPassword(parameterRequest, HttpMethod.Post);
                PrAssert.That(response, PrIs.SuccessfulResponse().And.HttpCode(System.Net.HttpStatusCode.OK));
                PrAssert.That(response.Result.Password.Count(), PrIs.GreaterThanOrEqualTo(1));
                LastPassword = response.Result.Password;
            }
            else
            {
                Common common = new Common();
                var    info   = AuthenticationInfoProvider.Current.Manager.GetAllAvailableUsers(new UserSpecBuilder().Admin(false));
                response = common.LoginAndSendRequestWithOtherAccount <ResetUserPasswordResponse>(info.First().Company.Name, info.First().Login, info.First().Password, "/privateapi/authentication/reset-user-password", parameterRequest);
                PrAssert.That(response, PrIs.SuccessfulResponse().And.HttpCode(System.Net.HttpStatusCode.OK));
                PrAssert.That(response.Result.Password.Count(), PrIs.GreaterThanOrEqualTo(1));
            }
            LastPassword = response.Result.Password;
        }
예제 #2
0
        public void InvalidEntrySpecial(InvalidSpecialCondition inputType)
        {
            var defaultUserId        = TestContext.CurrentContext.Test.Properties.Get("adminUserId");
            var resetUserPassHandler = new ResetUserPasswordManager();
            var parameterRequest     = new Dictionary <string, object>(Common.ResetUserPasswordParameters);
            PrivateApiResponse <ResetUserPasswordResponse> response = null;

            if (inputType == InvalidSpecialCondition.WrongContentType)
            {
                response = resetUserPassHandler.ResetUserPassword(parameterRequest, System.Net.Http.HttpMethod.Post, Common.InvalidEntrySpecialTestCasesMapper[InvalidSpecialCondition.WrongContentType].ToString());
            }
            else
            {
                string jsonContent = string.Empty;
                if (inputType == InvalidSpecialCondition.BrokenJsonFormat)
                {
                    jsonContent = "{\"userId\": \"" + defaultUserId + "\"";
                }
                else
                {
                    jsonContent = Common.InvalidEntrySpecialTestCasesMapper[inputType].ToString();
                }
                response = resetUserPassHandler.ResetUserPassword(jsonContent, System.Net.Http.HttpMethod.Post);
            }
            LastPassword = Common.GetResetUserPassword(response);
            PrAssert.That(response, PrIs.ErrorResponse().And.HttpCode(inputType == InvalidSpecialCondition.WrongContentType ? System.Net.HttpStatusCode.UnsupportedMediaType : System.Net.HttpStatusCode.BadRequest));
        }
        private void AssertResetUserPassword(Dictionary <string, object> request)
        {
            var resetUserPassHandler = new ResetUserPasswordManager();
            var response             = resetUserPassHandler.ResetUserPassword(request, HttpMethod.Post);

            PrAssert.That(response, PrIs.SuccessfulResponse().And.HttpCode(System.Net.HttpStatusCode.OK));
            PrAssert.That(response.Result.Password.Count(), PrIs.GreaterThanOrEqualTo(1));
        }
예제 #4
0
        public void TestResetUserPasswordInvalid(Fields field, InvalidTestCases inputType)
        {
            var parameterRequest     = GetParameters(inputType, field);
            var resetUserPassHandler = new ResetUserPasswordManager();
            var response             = resetUserPassHandler.ResetUserPassword(parameterRequest, System.Net.Http.HttpMethod.Post);

            LastPassword = Common.GetResetUserPassword(response);
            PrAssert.That(response, PrIs.ErrorResponse().And.HttpCode(System.Net.HttpStatusCode.BadRequest));
        }
예제 #5
0
        public void ResetUserPasswordInjection(Fields field, InjectionInput inputType)
        {
            var parameterRequest = new Dictionary <string, object>(Common.ResetUserPasswordParameters);

            parameterRequest[Char.ToLowerInvariant(field.ToString()[0]) + field.ToString().Substring(1)] = InjectionInputData.InjectionInputMapper[inputType];
            var resetUserPassHandler = new ResetUserPasswordManager();
            var response             = resetUserPassHandler.ResetUserPassword(parameterRequest, System.Net.Http.HttpMethod.Post);

            LastPassword = Common.GetResetUserPassword(response);
            PrAssert.That(response, PrIs.ErrorResponse().And.HttpCode(System.Net.HttpStatusCode.BadRequest));
        }
예제 #6
0
        public void ResetPasswordByOtherHttpMethod(HttpMethod inputType)
        {
            var parameterRequest = new Dictionary <string, object>(Common.ResetUserPasswordParameters);
            var httpMethod       = new Dictionary <HttpMethod, System.Net.Http.HttpMethod>()
            {
                [HttpMethod.GET]    = System.Net.Http.HttpMethod.Get,
                [HttpMethod.DELETE] = System.Net.Http.HttpMethod.Delete,
                [HttpMethod.PUT]    = System.Net.Http.HttpMethod.Put,
            };
            var resetUserPassHandler = new ResetUserPasswordManager();
            var response             = resetUserPassHandler.ResetUserPassword(parameterRequest, httpMethod[inputType]);

            LastPassword = Common.GetResetUserPassword(response);
            PrAssert.That(response, PrIs.ErrorResponse().And.HttpCode(System.Net.HttpStatusCode.BadRequest));
        }
예제 #7
0
        public void TestVerifyResetUserPasswordAfterExpiredTime()
        {
            var parameterRequest     = new Dictionary <string, object>(Common.ResetUserPasswordParameters);
            var resetUserPassHandler = new ResetUserPasswordManager();
            var response             = resetUserPassHandler.ResetUserPassword(parameterRequest, System.Net.Http.HttpMethod.Post);

            LastPassword = Common.GetResetUserPassword(response);

            //Verify
            Thread.Sleep(60000 * 2); //sleep in 2 mins

            var connection = new PrivateApiConnection();

            connection.Authenticate(
                TestContext.CurrentContext.Test.Properties.Get("companyName").ToString(),
                TestContext.CurrentContext.Test.Properties.Get("adminUserLogin").ToString(),
                TestContext.CurrentContext.Test.Properties.Get("adminUserPassword").ToString());

            PrAssert.That(connection.IsAuthenticated, PrIs.True);
        }
예제 #8
0
        public void DuplicateParameters(Fields field, Values value)
        {
            var defaultUserId       = TestContext.CurrentContext.Test.Properties.Get("adminUserId");
            var ParametersSameValue = new Dictionary <Fields, object>
            {
                [Fields.UserId] = "{\"userId\": \"" + defaultUserId + "\", \"userId\": \"" + defaultUserId + "\"}",
                [Fields.ForcePasswordChange] = "{\"userId\": \"" + defaultUserId + "\", \"forcePasswordChange\": true, \"forcePasswordChange\": true}"
            };

            var ParametersNotSameValue = new Dictionary <Fields, object>
            {
                [Fields.UserId] = "{\"userId\": \"" + defaultUserId + "\", \"userId\": \"11115887\"}",
                [Fields.ForcePasswordChange] = "{\"userId\": \"" + defaultUserId + "\", \"forcePasswordChange\": true, \"forcePasswordChange\": false}"
            };

            var resetUserPassHandler = new ResetUserPasswordManager();
            var response             = resetUserPassHandler.ResetUserPassword(value == Values.Same ? ParametersSameValue[field] : ParametersNotSameValue[field], System.Net.Http.HttpMethod.Post);

            LastPassword = Common.GetResetUserPassword(response);
            PrAssert.That(response, PrIs.ErrorResponse().And.HttpCode(System.Net.HttpStatusCode.BadRequest));
        }