public void GetEntriesByTagDoesNotIncludeFuturePosts() { // Arrange var repository = new DatabaseObjectProvider(); DateTime now = DateTime.UtcNow; Entry entryZero = UnitTestHelper.CreateEntryInstanceForSyndication("me", "title-zero", "body-zero", null, now); Entry entryOne = UnitTestHelper.CreateEntryInstanceForSyndication("me", "title-one", "body-one", null, now.AddMinutes(1)); Entry entryTwo = UnitTestHelper.CreateEntryInstanceForSyndication("me", "title-two", "body-two", null, now.AddMinutes(2)); UnitTestHelper.Create(entryZero); UnitTestHelper.Create(entryOne); entryTwo.DatePublishedUtc = DateTime.UtcNow.AddMinutes(20); UnitTestHelper.Create(entryTwo); var tags = new List <string>(new[] { "Tag1", "Tag2" }); new DatabaseObjectProvider().SetEntryTagList(entryZero.Id, tags); new DatabaseObjectProvider().SetEntryTagList(entryOne.Id, tags); new DatabaseObjectProvider().SetEntryTagList(entryTwo.Id, tags); // Act ICollection <Entry> entries = repository.GetEntriesByTag(3, "Tag1"); // Assert Assert.AreEqual(2, entries.Count, "Expected to find two entries."); Assert.AreEqual(entries.First().Id, entryOne.Id, "Ordering is off."); Assert.AreEqual(entries.ElementAt(1).Id, entryZero.Id, "Ordering is off."); }
public void GetEntriesByTagIncludesEnclosure() { Entry entryZero = UnitTestHelper.CreateEntryInstanceForSyndication("me", "title-zero", "body-zero"); Thread.Sleep(100); Entry entryOne = UnitTestHelper.CreateEntryInstanceForSyndication("me", "title-one", "body-one"); UnitTestHelper.Create(entryZero); UnitTestHelper.Create(entryOne); var repository = new DatabaseObjectProvider(); Enclosure enc = UnitTestHelper.BuildEnclosure("Nothing to see here.", "httP://blablabla.com", "audio/mp3", entryZero.Id, 12345678, true, true); repository.Create(enc); var tags = new List <string>(new[] { "Tag1", "Tag2" }); new DatabaseObjectProvider().SetEntryTagList(entryZero.Id, tags); new DatabaseObjectProvider().SetEntryTagList(entryOne.Id, tags); ICollection <Entry> entries = repository.GetEntriesByTag(3, "Tag1"); //Test outcome Assert.AreEqual(2, entries.Count, "Should have retrieved two entries."); Assert.AreEqual(entries.First().Id, entryOne.Id, "Ordering is off."); Assert.AreEqual(entries.ElementAt(1).Id, entryZero.Id, "Ordering is off."); Assert.IsNull(entries.First().Enclosure, "Entry should not have enclosure."); Assert.IsNotNull(entries.ElementAt(1).Enclosure, "Entry should have enclosure."); UnitTestHelper.AssertEnclosures(enc, entries.ElementAt(1).Enclosure); }
public void TagDoesNotRetrieveDraftEntry() { string hostname = UnitTestHelper.GenerateUniqueString(); var repository = new DatabaseObjectProvider(); repository.CreateBlogInternal("", "username", "password", hostname, string.Empty, 1); UnitTestHelper.SetHttpContextWithBlogRequest(hostname, string.Empty); BlogRequest.Current.Blog = repository.GetBlog(hostname, string.Empty); Entry entry = UnitTestHelper.CreateEntryInstanceForSyndication("me", "title-zero", "body-zero"); entry.IsActive = false; UnitTestHelper.Create(entry); var tags = new List <string>(new[] { "Tag1", "Tag2" }); new DatabaseObjectProvider().SetEntryTagList(entry.Id, tags); ICollection <Entry> entries = repository.GetEntriesByTag(1, "Tag1"); Assert.AreEqual(0, entries.Count, "Should not retrieve draft entry."); }