Ejemplo n.º 1
0
        /// <summary>
        /// RecordLogInAttempt()
        /// </summary>
        private void RecordLogInAttempt(string username, bool loginSuccessful, string info = "", GOUserDataObject user = null)
        {
            // if login not successful and no info provided, fill it in
            if (!loginSuccessful && String.IsNullOrEmpty(info))
            {
                bool userIsRegistered = DataFacade.GOUserDataProvider.GetCollection(null, String.Format("(UserName == \"{0}\" || EmailAddress == \"{0}\")", username), skipSecurity: true).Any();

                if (userIsRegistered)
                {
                    info = "Invalid password";
                }
                else
                {
                    info = "Invalid username";
                }
            }

            {
                // Persist via data provider
                GOLoginHistoryDataObject record = new GOLoginHistoryDataObject();
                record.Timestamp = DateTime.UtcNow;
                record.User      = username;
                record.Result    = loginSuccessful;
                record.Info      = info;
                DataFacade.GOLoginHistoryDataProvider.Save(record, skipSecurity: true);
            }
        }
        public void GOLoginHistoryPostTest(IDictionary testData)
        {
            #region Arrange

            var currentEntity = new GOLoginHistoryDataObject();
            var include       = "";
            var token         = "";

            currentEntity.IsNew = Convert.ToBoolean(testData["IsNew"].ToString());

            if (!currentEntity.IsNew)
            {
                currentEntity.Id = Convert.ToInt32(testData["Id"].ToString().Trim());
                include          = testData["Include"].ToString().Trim();
            }
            currentEntity.Info      = testData["Info"]?.ToString().Trim() != null ? testData["Info"]?.ToString().Trim().ToString() : null;
            currentEntity.Result    = Convert.ToBoolean(testData["Result"]?.ToString().Trim());
            currentEntity.Timestamp = Convert.ToDateTime(testData["Timestamp"]?.ToString().Trim());
            currentEntity.User      = testData["User"]?.ToString().Trim() != null ? testData["User"]?.ToString().Trim().ToString() : null;
            var expected_result = ConvertToStatusCode(testData["Result"]);

            #endregion

            #region Act

            var json    = JsonConvert.SerializeObject(currentEntity);
            var postUrl = APITestManager.doPostRequestBody(json, include);

            APIWebRequest request  = new APIWebRequest();
            var           username = testData["Username"].ToString().Trim();
            var           password = testData["Password"].ToString().Trim();
            token = request.getToken(APITestManager.getAuthenticateUrl(), username, password);
            using (var testResponse = request.ProcessAPIWebRequest(appUrl, APIWebRequest.TypeCall.Save, postUrl, token))
            {
                var status_code        = testResponse.StatusCode;
                var status_description = testResponse.Status;
                var response_body      = testResponse.Body;

                #endregion

                #region Assert

                APITestManager.displayResponse(testResponse);
                Assert.AreEqual(expected_result, status_code);

                if (status_code == HttpStatusCode.OK)
                {
                    // to be implemented
                }

                #endregion
            }
        }