public void UserProfilePostTest(IDictionary testData) { #region Arrange var currentEntity = new UserProfileDataObject(); var include = ""; var token = ""; currentEntity.IsNew = Convert.ToBoolean(testData["IsNew"].ToString()); if (!currentEntity.IsNew) { currentEntity.Uri = testData["Uri"].ToString().Trim() != null ? testData["Uri"].ToString().Trim().ToString() : null; include = testData["Include"].ToString().Trim(); } currentEntity.Name = testData["Name"]?.ToString().Trim() != null ? testData["Name"]?.ToString().Trim().ToString() : null; currentEntity.OrganizationName = testData["Organization Name"]?.ToString().Trim() != null ? testData["Organization Name"]?.ToString().Trim().ToString() : null; currentEntity.Role = testData["Role"]?.ToString().Trim() != null ? testData["Role"]?.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 } }
public async Task <UserProfileDataObject> GetUserProfileDataByUserID(string userID, string defaultCategory, int feedCount) { var connectionString = _config.GetSection(ConfigFileConstants.DatabaseConnectionString).Value; using (var connection = new SqlConnection(connectionString)) { await connection.OpenAsync(); using (var cmd = new SqlCommand(ProcedureNameConstants.GetUserProfileData, connection)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@UserID", userID); var reader = await cmd.ExecuteReaderAsync(); if (reader.HasRows) { await reader.ReadAsync(); using (var sqlStream = reader.GetStream(reader.GetOrdinal(UsersImageTableNAmeConstants.Picture))) using (MemoryStream memoryStream = new MemoryStream()) { sqlStream.CopyTo(memoryStream); var userProfile = new UserProfileDataObject { Category = reader.IsDBNull(reader.GetOrdinal(FeedsSettingsTableColumnConstants.Category)) ? defaultCategory : reader.GetString(reader.GetOrdinal(FeedsSettingsTableColumnConstants.Category)), Email = reader.GetString(reader.GetOrdinal(UserTableColumNameConstants.Email)), FullName = reader.GetString(reader.GetOrdinal(UserTableColumNameConstants.FullName)), FeedsCount = reader.IsDBNull(reader.GetOrdinal(FeedsSettingsTableColumnConstants.FeedCount)) ? feedCount : reader.GetInt32(reader.GetOrdinal(FeedsSettingsTableColumnConstants.FeedCount)), Picture = memoryStream.ToArray() }; await reader.CloseAsync(); return(userProfile); } } else { await reader.CloseAsync(); // For production I would create our own custom exception throw new ArgumentException($"User defined by userID: {userID} is not found"); } } } }