public void CanDeleteEntryMetaTag() { var blog = UnitTestHelper.CreateBlogAndSetupContext(); var repository = new DatabaseObjectProvider(); Entry entry = UnitTestHelper.CreateEntryInstanceForSyndication("Steven Harman", "Sweet arse entry!", "Giddy, giddy, goo!"); UnitTestHelper.Create(entry); MetaTag tag = UnitTestHelper.BuildMetaTag("Foo, bar, zaa?", "author", null, blog.Id, entry.Id, DateTime.UtcNow); repository.Create(tag); Assert.AreEqual(1, repository.GetMetaTagsForBlog(blog, 0, 100).Count, "Should be one (1) MetaTag for this blog."); Assert.AreEqual(1, repository.GetMetaTagsForEntry(entry, 0, 100).Count, "Should be one (1) MetaTag for this entry."); // Now let's remove it from the data store Assert.IsTrue(repository.DeleteMetaTag(tag.Id), "Deleting the MetaTag failed."); Assert.AreEqual(0, repository.GetMetaTagsForBlog(blog, 0, 100).Count, "Should be zero (0) MetaTags for this blog."); Assert.AreEqual(0, repository.GetMetaTagsForEntry(entry, 0, 100).Count, "Should be zero (0) MetaTag for this entry."); }
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 Create_WithInvalidMetaTag_ThrowsArgumentException() { var repository = new DatabaseObjectProvider(); UnitTestHelper.AssertThrows <ArgumentException>(() => repository.Create(new MetaTag { Content = null })); }
public void Create(int index) { var tag = new MetaTag("test" + index) { DateCreatedUtc = DateTime.UtcNow, Name = "foo", BlogId = Config.CurrentBlog.Id }; repository.Create(tag); }
public void GetRecentPostsIncludesEnclosure() { int blogId = Config.CurrentBlog.Id; for (int i = 0; i < 10; i++) { UnitTestHelper.CreateCategory(blogId, "cat" + i); } //Create some entries. Entry entryZero = UnitTestHelper.CreateEntryInstanceForSyndication("me", "title-zero", "body-zero"); Thread.Sleep(100); Entry entryOne = UnitTestHelper.CreateEntryInstanceForSyndication("me", "title-one", "body-one"); Thread.Sleep(100); Entry entryTwo = UnitTestHelper.CreateEntryInstanceForSyndication("me", "title-two", "body-two"); //Associate categories. for (int i = 0; i < 5; i++) { entryZero.Categories.Add("cat" + (i + 1)); entryOne.Categories.Add("cat" + i); } entryTwo.Categories.Add("cat8"); //Persist entries. UnitTestHelper.Create(entryZero); UnitTestHelper.Create(entryOne); UnitTestHelper.Create(entryTwo); 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); //Get Entries ICollection <Entry> entries = repository.GetEntries(3, PostType.BlogPost, PostConfig.IsActive, true); //Test outcome Assert.AreEqual(3, entries.Count, "Expected to find three entries."); Assert.AreEqual(entries.First().Id, entryTwo.Id, "Ordering is off."); Assert.AreEqual(entries.ElementAt(1).Id, entryOne.Id, "Ordering is off."); Assert.AreEqual(entries.ElementAt(2).Id, entryZero.Id, "Ordering is off."); Assert.AreEqual(1, entries.First().Categories.Count); Assert.AreEqual(5, entries.ElementAt(1).Categories.Count); Assert.AreEqual(5, entries.ElementAt(2).Categories.Count); Assert.IsNull(entries.First().Enclosure, "Entry should not have enclosure."); Assert.IsNull(entries.ElementAt(1).Enclosure, "Entry should not have enclosure."); Assert.IsNotNull(entries.ElementAt(2).Enclosure, "Entry should have enclosure."); UnitTestHelper.AssertEnclosures(enc, entries.ElementAt(2).Enclosure); }
public void GetHomePageEntriesReturnsDaysWithEnclosure() { //Create some entries. Entry entryZero = UnitTestHelper.CreateEntryInstanceForSyndication("me", "title-zero", "body-zero"); entryZero.DatePublishedUtc = DateTime.UtcNow.AddDays(-1); entryZero.IsActive = entryZero.IncludeInMainSyndication = true; Thread.Sleep(100); Entry entryOne = UnitTestHelper.CreateEntryInstanceForSyndication("me", "title-one", "body-one"); entryOne.DatePublishedUtc = DateTime.UtcNow.AddDays(-1); entryOne.IsActive = entryOne.IncludeInMainSyndication = true; Thread.Sleep(100); Entry entryTwo = UnitTestHelper.CreateEntryInstanceForSyndication("me", "title-two", "body-two"); entryTwo.DisplayOnHomePage = false; Thread.Sleep(100); Entry entryThree = UnitTestHelper.CreateEntryInstanceForSyndication("me", "title-two", "body-two"); entryThree.IsActive = entryThree.IncludeInMainSyndication = true; //Persist entries. UnitTestHelper.Create(entryZero); UnitTestHelper.Create(entryOne); UnitTestHelper.Create(entryTwo); UnitTestHelper.Create(entryThree); var repository = new DatabaseObjectProvider(); //Add Enclosure Enclosure enc = UnitTestHelper.BuildEnclosure("Nothing to see here.", "httP://blablabla.com", "audio/mp3", entryZero.Id, 12345678, true, true); repository.Create(enc); //Get EntryDay ICollection <EntryDay> entryList = repository.GetBlogPostsForHomePage(10, PostConfig.DisplayOnHomepage | PostConfig.IsActive).ToList(); var days = new EntryDay[2]; entryList.CopyTo(days, 0); //Test outcome Assert.AreEqual(2, entryList.Count, "Expected to find two days."); EntryDay entries = days[1]; 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."); 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 Create_WithInvalidEntry_ThrowsArgumentException() { // arrange var repository = new DatabaseObjectProvider(); var enclosure = new Enclosure { EntryId = 0 }; // act, assert Assert.IsFalse(enclosure.IsValid); UnitTestHelper.AssertThrows <ArgumentException>(() => repository.Create(enclosure)); }
public void GetPostsByMonthReturnsDaysWithEnclosure() { //Create some entries. Entry entryZero = UnitTestHelper.CreateEntryInstanceForSyndication("me", "title-zero", "body-zero"); Thread.Sleep(100); Entry entryOne = UnitTestHelper.CreateEntryInstanceForSyndication("me", "title-one", "body-one"); Thread.Sleep(100); Entry entryTwo = UnitTestHelper.CreateEntryInstanceForSyndication("me", "title-two", "body-two"); Thread.Sleep(100); Entry entryThree = UnitTestHelper.CreateEntryInstanceForSyndication("me", "title-two", "body-two"); entryThree.DateCreatedUtc = DateTime.UtcNow.AddDays(1); //Persist entries. UnitTestHelper.Create(entryZero); UnitTestHelper.Create(entryOne); UnitTestHelper.Create(entryTwo); UnitTestHelper.Create(entryThree); var repository = new DatabaseObjectProvider(); //Add Enclosure Enclosure enc = UnitTestHelper.BuildEnclosure("Nothing to see here.", "httP://blablabla.com", "audio/mp3", entryZero.Id, 12345678, true, true); repository.Create(enc); //Get EntryDay //ICollection<EntryDay> entryList = Entries.GetPostsByMonth(DateTime.UtcNow.Month, DateTime.Now.Year); //EntryDay[] days = new EntryDay[2]; //entryList.CopyTo(days, 0); ////Test outcome //Assert.AreEqual(2, entryList.Count, "Expected to find two days."); //EntryDay entries = days[1]; //Assert.AreEqual(3, entries.Count, "Expected to find three entries."); //Assert.AreEqual(entries.First().Id, entryTwo.Id, "Ordering is off."); //Assert.AreEqual(entries.ElementAt(1).Id, entryOne.Id, "Ordering is off."); //Assert.AreEqual(entries.ElementAt(2).Id, entryZero.Id, "Ordering is off."); //Assert.IsNull(entries.First().Enclosure, "Entry should not have enclosure."); //Assert.IsNull(entries.ElementAt(1).Enclosure, "Entry should not have enclosure."); //Assert.IsNotNull(entries.ElementAt(2).Enclosure, "Entry should have enclosure."); //UnitTestHelper.AssertEnclosures(enc, entries.ElementAt(2).Enclosure); }
private static void InsertNewMetaTag(string content, string nameValue, string httpEquivValue, DateTime created, int blogId, int?entryId) { var repository = new DatabaseObjectProvider(); var metaTag = new MetaTag(); metaTag.Content = content; metaTag.Name = nameValue; metaTag.HttpEquiv = httpEquivValue; metaTag.DateCreatedUtc = created; metaTag.BlogId = blogId; metaTag.EntryId = entryId; repository.Create(metaTag); }
public void CanRemoveHttpEquivAndAddName() { var blog = UnitTestHelper.CreateBlogAndSetupContext(); var repository = new DatabaseObjectProvider(); MetaTag tag = UnitTestHelper.BuildMetaTag("Still nothing to see here.", null, "expires", blog.Id, null, DateTime.UtcNow); repository.Create(tag); tag.HttpEquiv = null; tag.Name = "author"; tag.Content = "Steve-o-rino!"; repository.Update(tag); ValidateMetaTags(tag, repository.GetMetaTagsForBlog(blog, 0, 100)[0]); }
public void GetBlogPostsReturnsDaysWithEnclosure() { //Create some entries. Entry entryZero = UnitTestHelper.CreateEntryInstanceForSyndication("me", "title-zero", "body-zero"); Thread.Sleep(500); Entry entryOne = UnitTestHelper.CreateEntryInstanceForSyndication("me", "title-one", "body-one"); Thread.Sleep(500); Entry entryTwo = UnitTestHelper.CreateEntryInstanceForSyndication("me", "title-two", "body-two"); entryTwo.IsActive = false; Thread.Sleep(500); Entry entryThree = UnitTestHelper.CreateEntryInstanceForSyndication("me", "title-three", "body-three"); //Persist entries. UnitTestHelper.Create(entryZero); UnitTestHelper.Create(entryOne); UnitTestHelper.Create(entryTwo); UnitTestHelper.Create(entryThree); Assert.IsTrue(entryZero.DateCreatedUtc < entryOne.DateCreatedUtc); Assert.IsTrue(entryOne.DateCreatedUtc < entryTwo.DateCreatedUtc); Assert.IsTrue(entryTwo.DateCreatedUtc < entryThree.DateCreatedUtc); var repository = new DatabaseObjectProvider(); //Add Enclosure Enclosure enc = UnitTestHelper.BuildEnclosure("Nothing to see here.", "httP://blablabla.com", "audio/mp3", entryZero.Id, 12345678, true, true); repository.Create(enc); //Get EntryDay ICollection <EntryDay> entryList = repository.GetBlogPostsForHomePage(10, PostConfig.IsActive).ToList(); Collection <Entry> entries = entryList.First(); //Test outcome Assert.AreEqual(1, entryList.Count, "Expected to find one entry day."); Assert.AreEqual(3, entries.Count, "Expected to find three entries."); Assert.IsNull(entries.First().Enclosure, "Entry should not have enclosure."); Assert.IsNull(entries.ElementAt(1).Enclosure, "Entry should not have enclosure."); Assert.IsNotNull(entries.ElementAt(2).Enclosure, "Entry should have enclosure."); UnitTestHelper.AssertEnclosures(enc, entries.ElementAt(2).Enclosure); }
public void CanRemoveNameAndAddHttpEquiv() { var blog = UnitTestHelper.CreateBlogAndSetupContext(); var repository = new DatabaseObjectProvider(); MetaTag tag = UnitTestHelper.BuildMetaTag("Nothing to see here.", "description", null, blog.Id, null, DateTime.UtcNow); repository.Create(tag); tag.HttpEquiv = "cache-control"; tag.Name = null; tag.Content = "no-cache"; repository.Update(tag); ValidateMetaTags(tag, repository.GetMetaTagsForBlog(blog, 0, 100)[0]); }
public void CanInsertEnclosure(string title, string url, string mimetype, long size, bool addToFeed, bool showWithPost, string errMsg) { UnitTestHelper.SetupBlog(); var repository = new DatabaseObjectProvider(); Entry e = UnitTestHelper.CreateEntryInstanceForSyndication("Simone Chiaretta", "Post for testing Enclosures", "Listen to my great podcast"); int entryId = UnitTestHelper.Create(e); Enclosure enc = UnitTestHelper.BuildEnclosure(title, url, mimetype, entryId, size, addToFeed, showWithPost); repository.Create(enc); Entry newEntry = repository.GetEntry(entryId, true, false); Assert.IsNotNull(newEntry.Enclosure, errMsg); UnitTestHelper.AssertEnclosures(enc, newEntry.Enclosure); }
public void CanDeleteBlogMetaTag() { var blog = UnitTestHelper.CreateBlogAndSetupContext(); var repository = new DatabaseObjectProvider(); MetaTag tag = UnitTestHelper.BuildMetaTag("Steve Harman likes to delete stuff!", "description", null, blog.Id, null, DateTime.UtcNow); repository.Create(tag); Assert.AreEqual(1, repository.GetMetaTagsForBlog(blog, 0, 100).Count, "Should be one (1) MetaTag for this blog."); // Now let's remove it from the data store Assert.IsTrue(repository.DeleteMetaTag(tag.Id), "Deleting the MetaTag failed."); Assert.AreEqual(0, repository.GetMetaTagsForBlog(blog, 0, 100).Count, "Should be zero (0) MetaTags for this blog."); }
public void GetPostsByDayRangeIncludesEnclosure() { //Create some entries. Entry entryZero = UnitTestHelper.CreateEntryInstanceForSyndication("me", "title-zero", "body-zero"); Thread.Sleep(100); Entry entryOne = UnitTestHelper.CreateEntryInstanceForSyndication("me", "title-one", "body-one"); Thread.Sleep(100); Entry entryTwo = UnitTestHelper.CreateEntryInstanceForSyndication("me", "title-two", "body-two"); //Persist entries. UnitTestHelper.Create(entryZero); UnitTestHelper.Create(entryOne); UnitTestHelper.Create(entryTwo); var repository = new DatabaseObjectProvider(); //Add Enclosure Enclosure enc = UnitTestHelper.BuildEnclosure("Nothing to see here.", "httP://blablabla.com", "audio/mp3", entryZero.Id, 12345678, true, true); repository.Create(enc); //Get Entries var beginningOfMonth = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, 1); ICollection <Entry> entries = repository.GetPostsByDayRange(beginningOfMonth, beginningOfMonth.AddMonths(1), PostType.BlogPost, true); //Test outcome Assert.AreEqual(3, entries.Count, "Expected to find three entries."); Assert.AreEqual(entries.First().Id, entryTwo.Id, "Ordering is off."); Assert.AreEqual(entries.ElementAt(1).Id, entryOne.Id, "Ordering is off."); Assert.AreEqual(entries.ElementAt(2).Id, entryZero.Id, "Ordering is off."); Assert.IsNull(entries.First().Enclosure, "Entry should not have enclosure."); Assert.IsNull(entries.ElementAt(1).Enclosure, "Entry should not have enclosure."); Assert.IsNotNull(entries.ElementAt(2).Enclosure, "Entry should have enclosure."); UnitTestHelper.AssertEnclosures(enc, entries.ElementAt(2).Enclosure); }
public void Create_WithFeedbackItem_SetsDateCreatedAndModifiedToUtcNow() { // Arrange var now = DateTime.UtcNow; var sps = new Mock <StoredProcedures>("test"); sps.Setup(s => s.InsertFeedback(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int?>(), It.IsAny <string>(), It.IsAny <bool>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <bool>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <DateTime>(), It.IsAny <DateTime?>(), It.IsAny <DateTime>())); var repository = new DatabaseObjectProvider(blogId: 1, procedures: sps.Object); var feedback = new FeedbackItem(FeedbackType.Comment) { Body = "blah" }; // Act repository.Create(feedback); // Assert Assert.GreaterEqualThan(DateTime.UtcNow, feedback.DateCreatedUtc); Assert.GreaterEqualThan(DateTime.UtcNow, feedback.DateModifiedUtc); Assert.GreaterEqualThan(feedback.DateCreatedUtc, now); Assert.GreaterEqualThan(feedback.DateModifiedUtc, now); }
public void GetSingleDayReturnsDayWithEnclosure() { //Create some entries. var repository = new DatabaseObjectProvider(); Entry entryZero = UnitTestHelper.CreateEntryInstanceForSyndication("me", "title-zero", "body-zero"); Thread.Sleep(100); Entry entryOne = UnitTestHelper.CreateEntryInstanceForSyndication("me", "title-one", "body-one"); Thread.Sleep(100); Entry entryTwo = UnitTestHelper.CreateEntryInstanceForSyndication("me", "title-two", "body-two"); //Persist entries. UnitTestHelper.Create(entryZero); UnitTestHelper.Create(entryOne); UnitTestHelper.Create(entryTwo); //Add Enclosure Enclosure enc = UnitTestHelper.BuildEnclosure("Nothing to see here.", "httP://blablabla.com", "audio/mp3", entryZero.Id, 12345678, true, true); repository.Create(enc); //Get EntryDay EntryDay entries = repository.GetEntryDay(DateTime.UtcNow); //Test outcome Assert.AreEqual(3, entries.Count, "Expected to find three entries."); Assert.AreEqual(entries.First().Id, entryTwo.Id, "Ordering is off."); Assert.AreEqual(entries.ElementAt(1).Id, entryOne.Id, "Ordering is off."); Assert.AreEqual(entries.ElementAt(2).Id, entryZero.Id, "Ordering is off."); Assert.IsNull(entries.First().Enclosure, "Entry should not have enclosure."); Assert.IsNull(entries.ElementAt(1).Enclosure, "Entry should not have enclosure."); Assert.IsNotNull(entries.ElementAt(2).Enclosure, "Entry should have enclosure."); UnitTestHelper.AssertEnclosures(enc, entries.ElementAt(2).Enclosure); }
public void CanDeleteEnclosure() { Blog blog = UnitTestHelper.CreateBlogAndSetupContext(); var repository = new DatabaseObjectProvider(); Entry e = UnitTestHelper.CreateEntryInstanceForSyndication("Simone Chiaretta", "Post for testing Enclosures", "Listen to my great podcast"); int entryId = UnitTestHelper.Create(e); Enclosure enc = UnitTestHelper.BuildEnclosure("Nothing to see here.", "httP://blablabla.com", "audio/mp3", entryId, 12345678, true, true); repository.Create(enc); Entry newEntry = repository.GetEntry(entryId, true, false); Assert.IsNotNull(newEntry.Enclosure, "Did not create enclosure."); repository.DeleteEnclosure(enc.Id); Entry newEntry1 = repository.GetEntry(entryId, true, false); Assert.IsNull(newEntry1.Enclosure, "Did not delete enclosure."); }
public void CanInsertNewMetaTag(string content, string name, string httpEquiv, bool withEntry, string errMsg) { blog = UnitTestHelper.CreateBlogAndSetupContext(); var repository = new DatabaseObjectProvider(); int?entryId = null; if (withEntry) { Entry e = UnitTestHelper.CreateEntryInstanceForSyndication("Steven Harman", "My Post", "Foo Bar Zaa!"); entryId = UnitTestHelper.Create(e); } MetaTag mt = UnitTestHelper.BuildMetaTag(content, name, httpEquiv, blog.Id, entryId, DateTime.UtcNow); // make sure there are no meta-tags for this blog in the data store ICollection <MetaTag> tags = repository.GetMetaTagsForBlog(blog, 0, 100); Assert.AreEqual(0, tags.Count, "Should be zero MetaTags."); // add the meta-tag to the data store int tagId = repository.Create(mt); tags = repository.GetMetaTagsForBlog(blog, 0, 100); Assert.AreEqual(1, tags.Count, errMsg); MetaTag newTag = tags.First(); // make sure all attributes of the meta-tag were written to the data store correctly. Assert.AreEqual(tagId, newTag.Id, "Wrong Id"); Assert.AreEqual(mt.Content, newTag.Content, "Wrong content"); Assert.AreEqual(mt.Name, newTag.Name, "wrong name attribute"); Assert.AreEqual(mt.HttpEquiv, newTag.HttpEquiv, "Wrong http-equiv attriubte"); Assert.AreEqual(mt.BlogId, newTag.BlogId, "Wrong blogId"); Assert.AreEqual(mt.EntryId, newTag.EntryId, "Wrong entryId"); Assert.AreEqual(mt.DateCreatedUtc.Date, newTag.DateCreatedUtc.Date, "Wrong created date"); }
public void CanUpdateEnclosure(string title, string url, string mimetype, long size, bool addToFeed, bool showWithPost) { // Arrange UnitTestHelper.SetupBlog(string.Empty); var repository = new DatabaseObjectProvider(); Entry e = UnitTestHelper.CreateEntryInstanceForSyndication("Simone Chiaretta", "Post for testing Enclosures", "Listen to my great podcast"); int entryId = UnitTestHelper.Create(e); Enclosure enc = UnitTestHelper.BuildEnclosure(title, url, mimetype, entryId, size, addToFeed, showWithPost); repository.Create(enc); string randomStr = UnitTestHelper.GenerateUniqueString().Left(20); enc.Url = url + randomStr; if (!string.IsNullOrEmpty(title)) { enc.Title = title + randomStr; } enc.MimeType = mimetype + randomStr; int randomSize = new Random().Next(10, 100); enc.Size = size + randomSize; // Act repository.Update(enc); // Assert Entry newEntry = repository.GetEntry(entryId, true, false); UnitTestHelper.AssertEnclosures(enc, newEntry.Enclosure); }
public void GetPage_ReturnsPostWithhCorrectEntrUrl() { //arrange var repository = new DatabaseObjectProvider(); string hostname = UnitTestHelper.GenerateUniqueString(); repository.CreateBlog("", "username", "password", hostname, ""); UnitTestHelper.SetHttpContextWithBlogRequest(hostname, ""); BlogRequest.Current.Blog = repository.GetBlog(hostname, ""); Config.CurrentBlog.AllowServiceAccess = true; var urlHelper = new Mock <BlogUrlHelper>(); urlHelper.Setup(u => u.EntryUrl(It.IsAny <Entry>())).Returns("/entry/whatever"); var subtextContext = new Mock <ISubtextContext>(); subtextContext.Setup(c => c.Blog).Returns(Config.CurrentBlog); //TODO: FIX!!! subtextContext.Setup(c => c.Repository).Returns(repository); subtextContext.Setup(c => c.ServiceLocator).Returns(new Mock <IDependencyResolver>().Object); subtextContext.Setup(c => c.UrlHelper).Returns(urlHelper.Object); var api = new MetaWeblog(subtextContext.Object); string category1Name = UnitTestHelper.GenerateUniqueString(); string category2Name = UnitTestHelper.GenerateUniqueString(); UnitTestHelper.CreateCategory(Config.CurrentBlog.Id, category1Name); UnitTestHelper.CreateCategory(Config.CurrentBlog.Id, category2Name); var entry = new Entry(PostType.Story); entry.Title = "Title 1"; entry.Body = "Blah"; entry.IsActive = true; entry.IncludeInMainSyndication = true; entry.DateCreatedUtc = entry.DatePublishedUtc = entry.DateModifiedUtc = DateTime.ParseExact("1975/01/23", "yyyy/MM/dd", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal).ToUniversalTime(); entry.Categories.Add(category1Name); int entryId = UnitTestHelper.Create(entry); string enclosureUrl = "http://perseus.franklins.net/hanselminutes_0107.mp3"; string enclosureMimeType = "audio/mp3"; long enclosureSize = 26707573; FrameworkEnclosure enc = UnitTestHelper.BuildEnclosure("<Digital Photography Explained (for Geeks) with Aaron Hockley/>", enclosureUrl, enclosureMimeType, entryId, enclosureSize, true, true); repository.Create(enc); //act Post post = api.getPage(Config.CurrentBlog.Id.ToString(), entryId.ToString(), "username", "password"); //assert Assert.AreEqual(1, post.categories.Length); Assert.AreEqual("http://" + hostname + "/entry/whatever", post.link); Assert.AreEqual("http://" + hostname + "/entry/whatever", post.permalink); Assert.AreEqual(category1Name, post.categories[0]); Assert.AreEqual(enclosureUrl, post.enclosure.Value.url); Assert.AreEqual(enclosureMimeType, post.enclosure.Value.type); Assert.AreEqual(enclosureSize, post.enclosure.Value.length); }
public void GetRecentPosts_ReturnsRecentPosts() { string hostname = UnitTestHelper.GenerateUniqueString(); var repository = new DatabaseObjectProvider(); repository.CreateBlog("", "username", "password", hostname, ""); UnitTestHelper.SetHttpContextWithBlogRequest(hostname, ""); Blog blog = repository.GetBlog(hostname, ""); BlogRequest.Current.Blog = blog; blog.AllowServiceAccess = true; var urlHelper = new Mock <BlogUrlHelper>(); urlHelper.Setup(u => u.EntryUrl(It.IsAny <Entry>())).Returns("/entry/whatever"); var subtextContext = new Mock <ISubtextContext>(); subtextContext.Setup(c => c.Blog).Returns(Config.CurrentBlog); //TODO: FIX!!! subtextContext.Setup(c => c.Repository).Returns(repository); subtextContext.SetupBlog(blog); subtextContext.Setup(c => c.UrlHelper).Returns(urlHelper.Object); subtextContext.Setup(c => c.ServiceLocator).Returns(new Mock <IDependencyResolver>().Object); var api = new MetaWeblog(subtextContext.Object); Post[] posts = api.getRecentPosts(Config.CurrentBlog.Id.ToString(), "username", "password", 10); Assert.AreEqual(0, posts.Length); string category1Name = UnitTestHelper.GenerateUniqueString(); string category2Name = UnitTestHelper.GenerateUniqueString(); UnitTestHelper.CreateCategory(Config.CurrentBlog.Id, category1Name); UnitTestHelper.CreateCategory(Config.CurrentBlog.Id, category2Name); var entry = new Entry(PostType.BlogPost); entry.Title = "Title 1"; entry.Body = "Blah"; entry.IsActive = true; entry.IncludeInMainSyndication = true; entry.DateCreatedUtc = entry.DatePublishedUtc = entry.DateModifiedUtc = DateTime.ParseExact("1975/01/23", "yyyy/MM/dd", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal).ToUniversalTime(); entry.Categories.Add(category1Name); UnitTestHelper.Create(entry); entry = new Entry(PostType.BlogPost); entry.IncludeInMainSyndication = true; entry.Title = "Title 2"; entry.Body = "Blah1"; entry.IsActive = true; entry.DateCreatedUtc = entry.DatePublishedUtc = entry.DateModifiedUtc = DateTime.ParseExact("1976/05/25", "yyyy/MM/dd", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal).ToUniversalTime(); entry.Categories.Add(category1Name); entry.Categories.Add(category2Name); UnitTestHelper.Create(entry); entry = new Entry(PostType.BlogPost); entry.Title = "Title 3"; entry.IncludeInMainSyndication = true; entry.Body = "Blah2"; entry.IsActive = true; entry.DateCreatedUtc = entry.DatePublishedUtc = entry.DateModifiedUtc = DateTime.ParseExact("1979/09/16", "yyyy/MM/dd", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal).ToUniversalTime(); UnitTestHelper.Create(entry); entry = new Entry(PostType.BlogPost); entry.Title = "Title 4"; entry.IncludeInMainSyndication = true; entry.Body = "Blah3"; entry.IsActive = true; entry.DateCreatedUtc = entry.DatePublishedUtc = entry.DateModifiedUtc = DateTime.ParseExact("2006/01/01", "yyyy/MM/dd", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal).ToUniversalTime(); entry.Categories.Add(category2Name); int entryId = UnitTestHelper.Create(entry); string enclosureUrl = "http://perseus.franklins.net/hanselminutes_0107.mp3"; string enclosureMimeType = "audio/mp3"; long enclosureSize = 26707573; FrameworkEnclosure enc = UnitTestHelper.BuildEnclosure("<Digital Photography Explained (for Geeks) with Aaron Hockley/>", enclosureUrl, enclosureMimeType, entryId, enclosureSize, true, true); repository.Create(enc); posts = api.getRecentPosts(Config.CurrentBlog.Id.ToString(), "username", "password", 10); Assert.AreEqual(4, posts.Length, "Expected 4 posts"); Assert.AreEqual(1, posts[3].categories.Length, "Expected our categories to be there."); Assert.AreEqual(2, posts[2].categories.Length, "Expected our categories to be there."); Assert.IsNotNull(posts[1].categories, "Expected our categories to be there."); Assert.AreEqual(1, posts[0].categories.Length, "Expected our categories to be there."); Assert.AreEqual(category1Name, posts[3].categories[0], "The category returned by the MetaBlogApi is wrong."); Assert.AreEqual(category2Name, posts[0].categories[0], "The category returned by the MetaBlogApi is wrong."); Assert.AreEqual(enclosureUrl, posts[0].enclosure.Value.url, "Not what we expected for the enclosure url."); Assert.AreEqual(enclosureMimeType, posts[0].enclosure.Value.type, "Not what we expected for the enclosure mimetype."); Assert.AreEqual(enclosureSize, posts[0].enclosure.Value.length, "Not what we expected for the enclosure size."); }
public void RssWriterProducesValidFeedWithEnclosureFromDatabase() { string hostName = UnitTestHelper.GenerateUniqueString() + ".com"; var repository = new DatabaseObjectProvider(); repository.CreateBlog("Test", "username", "password", hostName, string.Empty); UnitTestHelper.SetHttpContextWithBlogRequest(hostName, ""); BlogRequest.Current.Blog = repository.GetBlog(hostName, string.Empty); Config.CurrentBlog.Email = "*****@*****.**"; Config.CurrentBlog.RFC3229DeltaEncodingEnabled = false; Entry entry = UnitTestHelper.CreateEntryInstanceForSyndication("Author", "testtitle", "testbody", null, NullValue.NullDateTime); entry.DateCreatedUtc = DateTime.ParseExact("2008/01/23", "yyyy/MM/dd", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal).ToUniversalTime(); entry.DatePublishedUtc = entry.DateCreatedUtc; int entryId = UnitTestHelper.Create(entry); //persist to db. string enclosureUrl = "http://perseus.franklins.net/hanselminutes_0107.mp3"; string enclosureMimeType = "audio/mp3"; long enclosureSize = 26707573; Enclosure enc = UnitTestHelper.BuildEnclosure("<Digital Photography Explained (for Geeks) with Aaron Hockley/>", enclosureUrl, enclosureMimeType, entryId, enclosureSize, true, true); repository.Create(enc); var subtextContext = new Mock <ISubtextContext>(); string rssOutput = null; subtextContext.FakeSyndicationContext(Config.CurrentBlog, "/", s => rssOutput = s); subtextContext.Setup(c => c.Repository).Returns(repository); Mock <BlogUrlHelper> urlHelper = Mock.Get(subtextContext.Object.UrlHelper); urlHelper.Setup(u => u.BlogUrl()).Returns("/"); urlHelper.Setup(u => u.EntryUrl(It.IsAny <Entry>())).Returns("/archive/2008/01/23/testtitle.aspx"); XmlNodeList itemNodes = GetRssHandlerItemNodes(subtextContext.Object, ref rssOutput); Assert.AreEqual(1, itemNodes.Count, "expected one item nodes."); string urlFormat = "http://{0}/archive/2008/01/23/{1}.aspx"; string expectedUrl = string.Format(urlFormat, hostName, "testtitle"); Assert.AreEqual("testtitle", itemNodes[0].SelectSingleNode("title").InnerText, "Not what we expected for the title."); Assert.AreEqual(expectedUrl, itemNodes[0].SelectSingleNode("link").InnerText, "Not what we expected for the link."); Assert.AreEqual(expectedUrl, itemNodes[0].SelectSingleNode("guid").InnerText, "Not what we expected for the guid."); Assert.AreEqual(enclosureUrl, itemNodes[0].SelectSingleNode("enclosure/@url").InnerText, "Not what we expected for the enclosure url."); Assert.AreEqual(enclosureMimeType, itemNodes[0].SelectSingleNode("enclosure/@type").InnerText, "Not what we expected for the enclosure mimetype."); Assert.AreEqual(enclosureSize.ToString(), itemNodes[0].SelectSingleNode("enclosure/@length").InnerText, "Not what we expected for the enclosure size."); Assert.AreEqual(expectedUrl + "#feedback", itemNodes[0].SelectSingleNode("comments").InnerText, "Not what we expected for the link."); }
public void GetPostsByCategoryIDReturnsDaysWithEnclosure() { //Create Category int blogId = Config.CurrentBlog.Id; int categoryId = UnitTestHelper.CreateCategory(blogId, "Test Category"); //Create four entries. Entry entryZero = UnitTestHelper.CreateEntryInstanceForSyndication("me", "title-zero", "body-zero"); entryZero.DatePublishedUtc = DateTime.UtcNow.AddDays(-1); Thread.Sleep(100); Entry entryOne = UnitTestHelper.CreateEntryInstanceForSyndication("me", "title-one", "body-one"); entryOne.DatePublishedUtc = DateTime.UtcNow.AddDays(-1); Thread.Sleep(100); Entry entryTwo = UnitTestHelper.CreateEntryInstanceForSyndication("me", "title-two", "body-two"); entryTwo.DatePublishedUtc = DateTime.UtcNow.AddDays(-1); Thread.Sleep(100); Entry entryThree = UnitTestHelper.CreateEntryInstanceForSyndication("me", "title-three", "body-two"); entryThree.DatePublishedUtc = DateTime.UtcNow; //Associate Category entryZero.Categories.Add("Test Category"); entryOne.Categories.Add("Test Category"); entryThree.Categories.Add("Test Category"); //Persist entries. UnitTestHelper.Create(entryZero); UnitTestHelper.Create(entryOne); UnitTestHelper.Create(entryTwo); UnitTestHelper.Create(entryThree); var repository = new DatabaseObjectProvider(); //Add Enclosure Enclosure enc = UnitTestHelper.BuildEnclosure("Nothing to see here.", "httP://blablabla.com", "audio/mp3", entryZero.Id, 12345678, true, true); repository.Create(enc); //Get EntryDay ICollection <EntryDay> entryList = repository.GetBlogPostsByCategoryGroupedByDay(10, categoryId).ToList(); var days = new EntryDay[2]; entryList.CopyTo(days, 0); //Test outcome Assert.AreEqual(2, entryList.Count, "Expected to find two days."); EntryDay entries = days[1]; 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."); 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 CanNotInsertNullMetaTag() { var repository = new DatabaseObjectProvider(); UnitTestHelper.AssertThrowsArgumentNullException(() => repository.Create((MetaTag)null)); }
public void Create_WithNullEnclosure_ThrowsArgumentNullException() { var repository = new DatabaseObjectProvider(); UnitTestHelper.AssertThrowsArgumentNullException(() => repository.Create((Enclosure)null)); }