Esempio n. 1
0
        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
            }
        }
Esempio n. 2
0
        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");
                    }
                }
            }
        }