public async Task DeleteFriendshipByUserId_ShouldDeleteFriendship_OnExistingUserId() { var client = CreateClient(); var alice = new User("1", "alice", "*****@*****.**"); var bob = new User("2", "bob", "*****@*****.**"); await CreateTestUserAsync(alice); await CreateTestUserAsync(bob); await CreateTestFriendshipAsync(alice.Id, bob.Id); var query = new { friendId = bob.Id }; var uri = UriHelpers.BuildUri(Delete.DeleteByUserId(alice.Id), new { query = JsonConvert.SerializeObject(query) }); await client.DeleteAsync(uri); var response = await client.GetAsync(uri); var responseStr = await response.Content.ReadAsStringAsync(); var responseArr = JsonConvert.DeserializeObject <ArrayResponse <FriendshipDto> >(responseStr); Assert.True(!responseArr.Items.Any()); }
public async Task DeleteFriendshipByUserId_ShouldDispatchNotificationEvent_OnExistingUserId() { var client = CreateClient(); var alice = new User("1", "alice", "*****@*****.**"); var bob = new User("2", "bob", "*****@*****.**"); await CreateTestUserAsync(alice); await CreateTestUserAsync(bob); await CreateTestFriendshipAsync(alice.Id, bob.Id); string eventName = null; string eventMessage = null; TestEventBusFixture.EventBus.Subscribe(nameof(NotifyUsersIntegrationEvent), (e, m) => { eventName = e; eventMessage = m; }); await Task.Delay(1000); var uri = UriHelpers.BuildUri(Delete.DeleteByUserId(alice.Id), new { friendId = bob.Id }); await client.DeleteAsync(uri); await Task.Delay(1000); var message = JsonConvert.DeserializeObject <NotifyUsersIntegrationEvent>(eventMessage); Assert.Equal(nameof(NotifyUsersIntegrationEvent), eventName); Assert.Equal("FriendshipDeleted", message.ClientMethod); Assert.True(message.UserIds.Contains(alice.Id) && message.UserIds.Contains(bob.Id)); await Task.Delay(1000); }
public async Task GetFriendshipsByUserId_ShouldReturnFriendships_OnExistingUserId() { var client = CreateClient(); var alice = new User("1", "alice", "*****@*****.**"); var bob = new User("2", "bob", "*****@*****.**"); var sam = new User("3", "sam", "*****@*****.**"); await CreateTestUserAsync(alice); await CreateTestUserAsync(bob); await CreateTestUserAsync(sam); await CreateTestFriendshipAsync(alice.Id, bob.Id); await CreateTestFriendshipAsync(bob.Id, sam.Id); await CreateTestFriendshipAsync(sam.Id, alice.Id); var query = new { pagination = new { limit = 10, offset = 0 } }; var uri = UriHelpers.BuildUri(Get.FriendshipsByUserId(alice.Id), new { query = JsonConvert.SerializeObject(query) }); var response = await client.GetAsync(uri); var responseStr = await response.Content.ReadAsStringAsync(); var responseArr = JsonConvert.DeserializeObject <ArrayResponse <FriendshipDto> >(responseStr); Assert.True(response.StatusCode == HttpStatusCode.OK); Assert.True(responseArr.Items.Count() == 2); Assert.True(responseArr.Total == 2); }
public async Task GetFriendshipRequestsByRequesteeAndRequesterIds_ShouldReturnEmptyList_OnNonexistingRequester() { var client = CreateClient(); var alice = new User("1", "alice", "*****@*****.**"); var bob = new User("2", "bob", "*****@*****.**"); await CreateTestUserAsync(alice); await CreateTestUserAsync(bob); var friendshipRequestId = await CreateTestFriendshipRequestAsync(alice.Id, bob.Id); var query = new { criteria = new { requester = "gibberish" }, pagination = new { limit = 10, offset = 0 } }; var uri = UriHelpers.BuildUri(Get.FriendshipRequestsByRequesteeId(alice.Id), new { query = JsonConvert.SerializeObject(query) }); var response = await client.GetAsync(uri); var responseStr = await response.Content.ReadAsStringAsync(); var responseArr = JsonConvert.DeserializeObject <ArrayResponse <FriendshipRequestDto> >(responseStr); Assert.True(response.StatusCode == HttpStatusCode.OK); Assert.True(!responseArr.Items.Any()); Assert.True(responseArr.Total == 0); }
public async Task GetFriendshipRequests_ShouldReturnEmptyList_OnNoMatchingCriteria() { var client = CreateClient(); var query = new { criteria = new { id = "gibberish" }, pagination = new { limit = 10, offset = 0 } }; var uri = UriHelpers.BuildUri(Get.FriendshipRequests(), new { query = JsonConvert.SerializeObject(query) }); var response = await client.GetAsync(uri); var responseStr = await response.Content.ReadAsStringAsync(); var responseArr = JsonConvert.DeserializeObject <ArrayResponse <FriendshipRequestDto> >(responseStr); Assert.True(response.StatusCode == HttpStatusCode.OK); Assert.True(!responseArr.Items.Any()); Assert.True(responseArr.Total == 0); }
public (string, string) GeneratePasswordResetEmail(string userName, string token, string completionUrl) { var url = UriHelpers.BuildUri(completionUrl, new NameValueCollection() { { "UserName", userName }, { "Token", token } }).ToString(); return("Your password reset request", $@"Click <a href=""{url}"">here</a> to reset your password."); }
public (string, string) GenerateEmailConfirmationEmail(string userName, string token) { var emailConfirmationUrl = _configuration["EmailConfirmationUrl"]; var url = UriHelpers.BuildUri(emailConfirmationUrl, new NameValueCollection() { { "UserName", userName }, { "Token", token } }).ToString(); return("Please confirm your email", $@"Thank you for registering with SecureChat. Please click <a href=""{url}"">here</a> to confirm your email address."); }
public string GenerateUrl(string baseUrl) { var urlHelper = _urlHelperFactory.GetUrlHelper(_actionContextAccessor.ActionContext); var httpContext = _httpContextAccessor.HttpContext; var returnUrl = httpContext.Request.Query["returnUrl"]; var loginUrl = urlHelper.Link(nameof(AccountController.Login), new { returnUrl = returnUrl }); return(UriHelpers.BuildUri(baseUrl, new NameValueCollection() { { "loginUrl", loginUrl } }) .ToString()); }
public async Task DeleteFriendshipByUserId_ShouldReturnNotFound_OnNonexistingUserId() { var client = CreateClient(); var alice = new User("1", "alice", "*****@*****.**"); var bob = new User("2", "bob", "*****@*****.**"); await CreateTestUserAsync(alice); await CreateTestUserAsync(bob); await CreateTestFriendshipAsync(alice.Id, bob.Id); var uri = UriHelpers.BuildUri(Delete.DeleteByUserId(alice.Id), new { friendId = "gibberish" }); var response = await client.DeleteAsync(uri); Assert.True(response.StatusCode == HttpStatusCode.NotFound); }
public async Task DeleteFriendshipByUserId_ShouldReturnNoContent_OnExistingUserId() { var client = CreateClient(); var alice = new User("1", "alice", "*****@*****.**"); var bob = new User("2", "bob", "*****@*****.**"); await CreateTestUserAsync(alice); await CreateTestUserAsync(bob); await CreateTestFriendshipAsync(alice.Id, bob.Id); var query = new { friendId = bob.Id }; var uri = UriHelpers.BuildUri(Delete.DeleteByUserId(alice.Id), new { query = JsonConvert.SerializeObject(query) }); var response = await client.DeleteAsync(uri); Assert.True(response.StatusCode == HttpStatusCode.NoContent); }
public async Task GetFriendshipRequests_ShouldReturnListOfFriendshipRequests_OnMatchingCriteria() { var client = CreateClient(); var alice = new User("1", "alice", "*****@*****.**"); var bob = new User("2", "bob", "*****@*****.**"); await CreateTestUserAsync(alice); await CreateTestUserAsync(bob); var friendshipRequestId = await CreateTestFriendshipRequestAsync(alice.Id, bob.Id); var query = new { criteria = new { id = friendshipRequestId }, pagination = new { limit = 10, offset = 0 } }; var uri = UriHelpers.BuildUri(Get.FriendshipRequests(), new { query = JsonConvert.SerializeObject(query) }); var response = await client.GetAsync(uri); var responseStr = await response.Content.ReadAsStringAsync(); var responseArr = JsonConvert.DeserializeObject <ArrayResponse <FriendshipRequestDto> >(responseStr); Assert.True(response.StatusCode == HttpStatusCode.OK); Assert.True(responseArr.Items.Count() == 1); var friendshipRequest = responseArr.Items.First(); Assert.True(friendshipRequest.Id == friendshipRequestId); Assert.True(friendshipRequest.Requester.Id == alice.Id); Assert.True(friendshipRequest.Requestee.Id == bob.Id); Assert.True(responseArr.Total == 1); }
public async Task GetUsers_ShouldReturnListOfUsers_OnMatchingCriteria() { var client = CreateClient(); var users = new[] { new User("1", "Foo", "*****@*****.**"), new User("2", "Bar", "*****@*****.**"), new User("3", "Baz", "*****@*****.**") }; foreach (var user in users) { await CreateTestUserAsync(user); } var query = new { criteria = new { id = 1 }, pagination = new { limit = 10, offset = 0 } }; var uri = UriHelpers.BuildUri(Get.Users(), new { query = JsonConvert.SerializeObject(query) }); var response = await client.GetAsync(uri); var responseStr = await response.Content.ReadAsStringAsync(); var responseObj = JsonConvert.DeserializeObject <ArrayResponse <UserDto> >(responseStr); Assert.True(response.StatusCode == HttpStatusCode.OK); Assert.True(responseObj.Items.Count() == 1); Assert.Contains(users.First().Id, responseObj.Items.Select(u => u.Id)); Assert.True(responseObj.Total == 3); }
public string GetUrl(string actionName, object queryParams) { var baseUrl = GetUrl(actionName); return(UriHelpers.BuildUri(baseUrl, queryParams).ToString()); }