public async Task SearchForItem_Invalid_Null() { // Arrange var search = new SearchAgileItemDto { BoardId = Guid.NewGuid(), ItemType = Models.Types.AgileItemType.SuperStory, SearchQuery = "z" }; // Act var items = await _agileItemRepository.SearchForAgileItem(search); Assert.IsEmpty(items); }
public async Task <List <AgileItemShortVm> > SearchForAgileItem(SearchAgileItemDto search) { try { // search on any key fields... if (search.ItemType == Models.Types.AgileItemType.SuperStory) { return(await _context.AgileItems .Where(a => a.AgileItemType == search.ItemType && a.BoardId == search.BoardId) .Where(a => a.Title.Contains(search.SearchQuery) || a.Description.Contains(search.SearchQuery) || a.AssigneeName.Contains(search.SearchQuery)) .Select(i => new AgileItemShortVm() { Id = i.Id, Title = i.Title }).Take(5).ToListAsync()); } else { var items = await _context.AgileItems .Where(a => a.AgileItemType == search.ItemType && a.BoardId == search.BoardId) .Where(a => a.Title.Contains(search.SearchQuery) || a.Description.Contains(search.SearchQuery) || a.AssigneeName.Contains(search.SearchQuery)) .Select(i => new AgileItemShortVm() { Id = i.Id, Title = i.Title }).Take(5).ToListAsync(); foreach (var item in items) { item.Order = await _context.AgileItems .Where(s => s.ParentId == item.Id) .OrderByDescending(i => i.Order) .Select(i => i.Order) .FirstOrDefaultAsync(); } return(items); } } catch (Exception e) { _logger.LogError("Exception when creating searching for item, Exception:" + e + "Stack trace:" + e.StackTrace + "Search Term: " + search.SearchQuery); } return(null); }
public async Task SearchForItem_Valid_Success() { // Arrange var search = new SearchAgileItemDto { BoardId = Guid.Parse("aada6f2a-8854-4a5e-a907-2244f43408a1"), ItemType = Models.Types.AgileItemType.SuperStory, SearchQuery = "stub" }; // Act var items = await _agileItemRepository.SearchForAgileItem(search); Assert.IsNotNull(items); Assert.AreEqual(1, items.Count); Assert.AreEqual("A stub creation of a story", items[0].Title); }
public async Task SearchAgileItems_Valid_Success() { // Arrange _mockAgileItemsRepository.Setup(m => m.SearchForAgileItem(It.IsAny <SearchAgileItemDto>())) .ReturnsAsync(_stubShortVmList); var stubSearchVm = new SearchAgileItemDto { BoardId = Guid.NewGuid(), ItemType = Models.Types.AgileItemType.Story, SearchQuery = "Stub Search" }; // Act var items = await _agileItemsController.SearchAgileItems(stubSearchVm) as OkObjectResult; // Assert Assert.IsNotNull(items); Assert.AreEqual(items.StatusCode, 200); Assert.AreEqual(items.Value, _stubShortVmList); _mockAgileItemsRepository.Verify(m => m.SearchForAgileItem(It.IsAny <SearchAgileItemDto>()), Times.Once); }
public async Task <IActionResult> SearchAgileItems(SearchAgileItemDto search) { var items = await _agileItemRepository.SearchForAgileItem(search); return(Ok(items)); }