diff --git a/StudentHouseDashboard/Tests/AnnouncementManagerTest.cs b/StudentHouseDashboard/Tests/AnnouncementManagerTest.cs index 86d3b7e..cbed56c 100644 --- a/StudentHouseDashboard/Tests/AnnouncementManagerTest.cs +++ b/StudentHouseDashboard/Tests/AnnouncementManagerTest.cs @@ -1,14 +1,46 @@ -using System; +using Logic; +using Models; +using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Tests.Mocks; namespace Tests { [TestClass] public class AnnouncementManagerTest { + [TestMethod] + public void SearchEmptyRegexQueryTest() + { + // Arrange + AnnouncementManager announcementManager = new AnnouncementManager(new AnnouncementRepositoryFake()); + // Act + List result = announcementManager.SearchAnnouncements(string.Empty); + + // Assert + CollectionAssert.AreEquivalent(new List(), result); + } + + [TestMethod] + public void SearchRegexWithDateQueryTest() + { + // Arrange + AnnouncementManager announcementManager = new AnnouncementManager(new AnnouncementRepositoryFake()); + User user = new User(1, "user", "password", UserRole.TENANT); + announcementManager.CreateAnnouncement("1", "", user, new DateTime(2000, 01, 01), false, false); + announcementManager.CreateAnnouncement("2", "", user, new DateTime(2000, 01, 01), true, false); + announcementManager.CreateAnnouncement("3", "", user, new DateTime(2000, 02, 02), false, false); + + // Act + List expected = announcementManager.GetAllAnnouncements().Where(x => x.PublishDate == new DateTime(2000, 01, 01)).ToList(); + List result = announcementManager.SearchAnnouncements("date:2000-01-01"); + + // Assert + CollectionAssert.AreEquivalent(expected, result); + } } } diff --git a/StudentHouseDashboard/Tests/Mocks/AnnouncementRepositoryFake.cs b/StudentHouseDashboard/Tests/Mocks/AnnouncementRepositoryFake.cs index 6014d45..4908210 100644 --- a/StudentHouseDashboard/Tests/Mocks/AnnouncementRepositoryFake.cs +++ b/StudentHouseDashboard/Tests/Mocks/AnnouncementRepositoryFake.cs @@ -48,6 +48,11 @@ namespace Tests.Mocks return announcements.GetRange(p + c, c); } + public List SearchAnnouncement(string query) + { + return announcements.Where(x => x.Title.Contains(query) || x.Description.Contains(query)).ToList(); + } + public void UpdateAnnouncement(int id, string title, string description, bool isImportant, bool isSticky) { Announcement announcement = announcements.First(x => x.ID == id);