public async Task GetUsers_GivenEmptyList_ReturnEmpty() { // arrange var client = factory.CreateClient(); var users = new List <string> { }; var dto = new RetrieveUsersRequestDto { Usernames = users }; // act var url = "/api/user/retrieveUsers"; var content = new StringContent(JsonConvert.SerializeObject(dto), Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, content); // assert response.EnsureSuccessStatusCode(); response.IsSuccessStatusCode.Should().BeTrue(); string rsp = await response.Content.ReadAsStringAsync(); var rspUsers = JsonConvert.DeserializeObject <IEnumerable <RetrieveUsersResponseDto> >(rsp); rspUsers.Should().HaveCount(0); }
public async Task GetUsers_GivenUserList_ReturnAlphabetically() { // arrange var client = factory.CreateClient(); var users = new List <string> { "CrawlingMango", "mislav", "Tinkerer" }; var dto = new RetrieveUsersRequestDto { Usernames = users }; // act var url = "/api/user/retrieveUsers"; var content = new StringContent(JsonConvert.SerializeObject(dto), Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, content); // assert response.EnsureSuccessStatusCode(); response.IsSuccessStatusCode.Should().BeTrue(); string rsp = await response.Content.ReadAsStringAsync(); var rspUsers = JsonConvert.DeserializeObject <IEnumerable <RetrieveUsersResponseDto> >(rsp); var rspUsersList = rspUsers.ToList(); rspUsersList.Should().HaveCount(3); rspUsersList[0].Name.Should().Be("Amir Hirsch"); rspUsersList[1].Name.Should().Be("Jerome Avelino"); rspUsersList[2].Name.Should().Contain("Mislav Marohni"); }
public async Task GetUsers_GivenUserList_EnsureDataIsStoreInCache() { // arrange var cache = RedisConnectionHelper.Connection.GetDatabase(); // ensure user does not exist in cache cache.KeyDelete("moul"); cache.KeyDelete("tannerlinsley"); // act var client = factory.CreateClient(); var users = new List <string> { "moul", "tannerlinsley" }; var dto = new RetrieveUsersRequestDto { Usernames = users }; // act var url = "/api/user/retrieveUsers"; var content = new StringContent(JsonConvert.SerializeObject(dto), Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, content); // assert response.EnsureSuccessStatusCode(); response.IsSuccessStatusCode.Should().BeTrue(); (await cache.KeyExistsAsync("moul")).Should().BeTrue(); (await cache.KeyExistsAsync("tannerlinsley")).Should().BeTrue(); }
public async Task <IActionResult> RetrieveUsers(RetrieveUsersRequestDto dto) { var result = await service.GetUsers(dto.Usernames); return(Ok(result)); }