public async Task PUT_EditAccount() { /* * HttpPut("users/{id}/accounts/{acc_id}") * Edits one of the users saved accounts in the database */ int accId = 4; // user John Doe always has an account with id of 4 from the db initializer using (HttpRequestMessage requestMessage = new HttpRequestMessage(HttpMethod.Put, _client.BaseAddress + "users/" + _testUser.ID.ToString() + "/accounts/" + accId.ToString())) { // construct body with an encrypted account edit.. // so we send an encrypted account and receive an encrypted account NewAccount accToEdit = new NewAccount { Title = BitConverter.ToString(HelperMethods.EncryptStringToBytes_Aes("changed", _uniqueUserEncryptionKeyAndIv)).Replace("-", ""), Login = BitConverter.ToString(HelperMethods.EncryptStringToBytes_Aes("changed", _uniqueUserEncryptionKeyAndIv)).Replace("-", ""), Password = BitConverter.ToString(HelperMethods.EncryptStringToBytes_Aes("changed", _uniqueUserEncryptionKeyAndIv)).Replace("-", ""), Url = BitConverter.ToString(HelperMethods.EncryptStringToBytes_Aes("https://changed.com", _uniqueUserEncryptionKeyAndIv)).Replace("-", ""), Description = BitConverter.ToString(HelperMethods.EncryptStringToBytes_Aes("changed...", _uniqueUserEncryptionKeyAndIv)).Replace("-", "") }; requestMessage.Content = new StringContent(JsonConvert.SerializeObject(accToEdit), Encoding.UTF8, "application/json"); // Add cookie, make request and validate status code requestMessage.Headers.Add("AccessToken", _accessToken); HttpResponseMessage response = await _client.SendAsync(requestMessage); Assert.Equal(HttpStatusCode.OK, response.StatusCode); // parse account from response, and also request the data from the database directly for comparison ReturnableAccount returnedAcc = JsonConvert.DeserializeObject <ReturnableAccount>(response.Content.ReadAsStringAsync().Result); ReturnableAccount accInDatabase = new ReturnableAccount(_context.Accounts.SingleOrDefault(acc => acc.ID == returnedAcc.ID)); TestingHelpingMethods.IntegrationTest_CompareAccounts(accToEdit, returnedAcc, accInDatabase); // make sure all are equal } }
public async Task POST_AddNewAccount() { /* * HttpPost("users/{id}/accounts") * Add a new saved password account to the users data collection. */ using (HttpRequestMessage requestMessage = new HttpRequestMessage(HttpMethod.Post, _client.BaseAddress + "users/" + _testUser.ID.ToString() + "/accounts")) { // construct body with a new account to add.. using same techniques as client side encryption // so we send an encrypted account and receive an encrypted account NewAccount accToAdd = new NewAccount { Title = BitConverter.ToString(HelperMethods.EncryptStringToBytes_Aes("Discord", _uniqueUserEncryptionKeyAndIv)).Replace("-", ""), Login = BitConverter.ToString(HelperMethods.EncryptStringToBytes_Aes("username", _uniqueUserEncryptionKeyAndIv)).Replace("-", ""), Password = BitConverter.ToString(HelperMethods.EncryptStringToBytes_Aes("useless", _uniqueUserEncryptionKeyAndIv)).Replace("-", ""), Url = BitConverter.ToString(HelperMethods.EncryptStringToBytes_Aes("https://discord.com", _uniqueUserEncryptionKeyAndIv)).Replace("-", ""), Description = BitConverter.ToString(HelperMethods.EncryptStringToBytes_Aes("description...", _uniqueUserEncryptionKeyAndIv)).Replace("-", "") }; requestMessage.Content = new StringContent(JsonConvert.SerializeObject(accToAdd), Encoding.UTF8, "application/json"); // Add cookie, make request and validate status code requestMessage.Headers.Add("AccessToken", _accessToken); HttpResponseMessage response = await _client.SendAsync(requestMessage); Assert.Equal(HttpStatusCode.OK, response.StatusCode); // parse account from response, and also request the data from the database directly for comparison ReturnableAccount returnedAcc = JsonConvert.DeserializeObject <ReturnableAccount>(response.Content.ReadAsStringAsync().Result); ReturnableAccount accInDatabase = new ReturnableAccount(_context.Accounts.SingleOrDefault(acc => acc.ID == returnedAcc.ID)); TestingHelpingMethods.IntegrationTest_CompareAccounts(accToAdd, returnedAcc, accInDatabase); // make sure all are equal Assert.Null(returnedAcc.FolderID); // check for null folderid indicating no parent } }