public void editPost_WithEnclosure_AddsNewEnclosure() { //arrange FrameworkEnclosure enclosure = UnitTestHelper.BuildEnclosure("<Digital Photography Explained (for Geeks) with Aaron Hockley/>", "http://example.com/foo.mp3", "audio/mp3", 123, 26707573, true, true); var entry = new Entry(PostType.BlogPost) { Title = "Title 1", Body = "Blah", IsActive = true, Enclosure = enclosure }; entry.DateCreatedUtc = entry.DatePublishedUtc = entry.DateModifiedUtc = DateTime.ParseExact("1975/01/23", "yyyy/MM/dd", CultureInfo.InvariantCulture); entry.Categories.Add("TestCategory"); var blog = new Blog { Id = 123, Host = "localhost", AllowServiceAccess = true, UserName = "******", Password = "******" }; var subtextContext = new Mock<ISubtextContext>(); subtextContext.Setup(c => c.Blog).Returns(blog); subtextContext.Setup(c => c.Repository.GetEntry(It.IsAny<Int32>(), false, true)).Returns(entry); var entryPublisher = new Mock<IEntryPublisher>(); Entry publishedEntry = null; entryPublisher.Setup(p => p.Publish(It.IsAny<Entry>())).Callback<Entry>(e => publishedEntry = e); var post = new Post { title = "Title 2", description = "Blah", dateCreated = DateTime.UtcNow }; var postEnclosure = new Enclosure { url = "http://example.com/bar.mp3", type = "audio/mp3", length = 123456789 }; post.enclosure = postEnclosure; var metaWeblog = new MetaWeblog(subtextContext.Object, entryPublisher.Object); // act bool result = metaWeblog.editPost("123", "username", "password", post, true); // assert Assert.IsNotNull(publishedEntry.Enclosure); Assert.AreEqual("http://example.com/bar.mp3", entry.Enclosure.Url); Assert.AreEqual("audio/mp3", entry.Enclosure.MimeType); Assert.AreEqual(123456789, entry.Enclosure.Size); Assert.IsTrue(result); }
public static Components.Enclosure CopyValuesToEnclosure(this Enclosure source) { var enclosure = new Components.Enclosure(); source.CopyValuesTo(enclosure); return(enclosure); }
public void editPost_WithEntryHavingEnclosure_UpdatesEntryEnclosureWithNewEnclosure() { //arrange var entry = new Entry(PostType.BlogPost) { Title = "Title 1", Body = "Blah", IsActive = true }; entry.DateCreatedUtc = entry.DatePublishedUtc = entry.DateModifiedUtc = DateTime.ParseExact("1975/01/23", "yyyy/MM/dd", CultureInfo.InvariantCulture); entry.Categories.Add("TestCategory"); var blog = new Blog { Id = 123, Host = "localhost", AllowServiceAccess = true, UserName = "******", Password = "******" }; var subtextContext = new Mock <ISubtextContext>(); subtextContext.Setup(c => c.Blog).Returns(blog); subtextContext.Setup(c => c.Repository.GetEntry(It.IsAny <Int32>(), false, true)).Returns(entry); var entryPublisher = new Mock <IEntryPublisher>(); Entry publishedEntry = null; entryPublisher.Setup(p => p.Publish(It.IsAny <Entry>())).Callback <Entry>(e => publishedEntry = e); FrameworkEnclosure enclosure = UnitTestHelper.BuildEnclosure("<Digital Photography Explained (for Geeks) with Aaron Hockley/>", "http://perseus.franklins.net/hanselminutes_0107.mp3", "audio/mp3", 123, 26707573, true, true); entry.Enclosure = enclosure; var post = new Post { title = "Title 2", description = "Blah", dateCreated = DateTime.UtcNow }; var postEnclosure = new Enclosure { url = "http://codeclimber.net.nz/podcast/mypodcastUpdated.mp3", type = "audio/mp3", length = 123456789 }; post.enclosure = postEnclosure; var metaWeblog = new MetaWeblog(subtextContext.Object, entryPublisher.Object); // act bool result = metaWeblog.editPost("123", "username", "password", post, true); // assert Assert.IsTrue(result); Assert.IsNotNull(publishedEntry.Enclosure); Assert.AreEqual("http://codeclimber.net.nz/podcast/mypodcastUpdated.mp3", entry.Enclosure.Url); }
public void NewPostWithEnclosureCreatesEntryWithEnclosure() { //arrange var blog = new Blog { Id = 42, UserName = "******", Password = "******", AllowServiceAccess = true, Host = "localhost" }; var subtextContext = new Mock <ISubtextContext>(); subtextContext.Setup(c => c.Blog).Returns(blog); FrameworkEnclosure publishedEnclosure = null; subtextContext.Setup(c => c.Repository.Create(It.IsAny <FrameworkEnclosure>())).Callback <FrameworkEnclosure>( enclosure => publishedEnclosure = enclosure); var entryPublisher = new Mock <IEntryPublisher>(); entryPublisher.Setup(publisher => publisher.Publish(It.IsAny <Entry>())).Returns(42); DateTime now = DateTime.UtcNow; DateTime utcNow = now.ToUniversalTime(); var api = new MetaWeblog(subtextContext.Object, entryPublisher.Object); var post = new Post(); post.categories = null; post.description = "A unit test"; post.title = "A unit testing title"; post.dateCreated = utcNow.AddDays(1); var postEnclosure = new Enclosure(); postEnclosure.url = "http://codeclimber.net.nz/podcast/mypodcast.mp3"; postEnclosure.type = "audio/mp3"; postEnclosure.length = 123456789; post.enclosure = postEnclosure; // act string result = api.newPost(blog.Id.ToString(CultureInfo.InvariantCulture), "username", "password", post, true); // assert Assert.IsNotNull(publishedEnclosure); Assert.AreEqual("http://codeclimber.net.nz/podcast/mypodcast.mp3", publishedEnclosure.Url); Assert.AreEqual("audio/mp3", publishedEnclosure.MimeType); Assert.AreEqual(123456789, publishedEnclosure.Size); }
public void NewPostWithEnclosureCreatesEntryWithEnclosure() { //arrange var blog = new Blog { Id = 42, UserName = "******", Password = "******", AllowServiceAccess = true, Host = "localhost" }; var subtextContext = new Mock<ISubtextContext>(); subtextContext.Setup(c => c.Blog).Returns(blog); FrameworkEnclosure publishedEnclosure = null; subtextContext.Setup(c => c.Repository.Create(It.IsAny<FrameworkEnclosure>())).Callback<FrameworkEnclosure>( enclosure => publishedEnclosure = enclosure); var entryPublisher = new Mock<IEntryPublisher>(); entryPublisher.Setup(publisher => publisher.Publish(It.IsAny<Entry>())).Returns(42); DateTime now = DateTime.UtcNow; DateTime utcNow = now.ToUniversalTime(); var api = new MetaWeblog(subtextContext.Object, entryPublisher.Object); var post = new Post(); post.categories = null; post.description = "A unit test"; post.title = "A unit testing title"; post.dateCreated = utcNow.AddDays(1); var postEnclosure = new Enclosure(); postEnclosure.url = "http://codeclimber.net.nz/podcast/mypodcast.mp3"; postEnclosure.type = "audio/mp3"; postEnclosure.length = 123456789; post.enclosure = postEnclosure; // act string result = api.newPost(blog.Id.ToString(CultureInfo.InvariantCulture), "username", "password", post, true); // assert Assert.IsNotNull(publishedEnclosure); Assert.AreEqual("http://codeclimber.net.nz/podcast/mypodcast.mp3", publishedEnclosure.Url); Assert.AreEqual("audio/mp3", publishedEnclosure.MimeType); Assert.AreEqual(123456789, publishedEnclosure.Size); }
public static void CopyValuesTo(this Enclosure source, Components.Enclosure enclosure) { enclosure.Url = source.url; enclosure.MimeType = source.type; enclosure.Size = source.length; }
public void CanUpdatePostWithEnclosure() { string hostname = UnitTestHelper.GenerateRandomString(); Assert.IsTrue(Config.CreateBlog("", "username", "password", hostname, "")); UnitTestHelper.SetHttpContextWithBlogRequest(hostname, ""); Config.CurrentBlog.AllowServiceAccess = true; Entry entry = new Entry(PostType.BlogPost); entry.Title = "Title 1"; entry.Body = "Blah"; entry.IsActive = true; entry.DateCreated = entry.DateSyndicated = entry.DateModified = DateTime.ParseExact("1975/01/23", "yyyy/MM/dd", CultureInfo.InvariantCulture); int entryId = Entries.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); Enclosures.Create(enc); entry = Entries.GetEntry(entryId, PostConfig.None, true); Assert.IsNotNull(entry.Enclosure, "There should be a enclosure here."); MetaWeblog api = new MetaWeblog(); Post post = new Post(); post.title = "Title 2"; post.description = "Blah"; post.dateCreated = DateTime.Now; Enclosure postEnclosure = new Enclosure(); postEnclosure.url = "http://codeclimber.net.nz/podcast/mypodcastUpdated.mp3"; postEnclosure.type = "audio/mp3"; postEnclosure.length = 123456789; post.enclosure = postEnclosure; bool result = api.editPost(entryId.ToString(CultureInfo.InvariantCulture), "username", "password", post, true); entry = Entries.GetEntry(entryId, PostConfig.None, true); Assert.IsNotNull(entry.Enclosure, "Should have kept the enclosure."); Assert.AreEqual("http://codeclimber.net.nz/podcast/mypodcastUpdated.mp3", entry.Enclosure.Url, "Not the updated enclosure url."); }
public void UpdatingWithEnclosureAddNewEnclosure() { string hostname = UnitTestHelper.GenerateRandomString(); Assert.IsTrue(Config.CreateBlog("", "username", "password", hostname, "")); UnitTestHelper.SetHttpContextWithBlogRequest(hostname, ""); Config.CurrentBlog.AllowServiceAccess = true; Entry entry = new Entry(PostType.BlogPost); entry.Title = "Title 1"; entry.Body = "Blah"; entry.IsActive = true; entry.DateCreated = entry.DateSyndicated = entry.DateModified = DateTime.ParseExact("1975/01/23", "yyyy/MM/dd", CultureInfo.InvariantCulture); int entryId = Entries.Create(entry); Assert.IsNull(entry.Enclosure, "There should not be any enclosure here."); MetaWeblog api = new MetaWeblog(); Post post = new Post(); post.title = "Title 2"; post.description = "Blah"; post.dateCreated = DateTime.Now; Enclosure postEnclosure = new Enclosure(); postEnclosure.url = "http://codeclimber.net.nz/podcast/mypodcast.mp3"; postEnclosure.type = "audio/mp3"; postEnclosure.length = 123456789; post.enclosure = postEnclosure; bool result = api.editPost(entryId.ToString(CultureInfo.InvariantCulture), "username", "password", post, true); entry = Entries.GetEntry(entryId, PostConfig.None, true); Assert.IsNotNull(entry.Enclosure, "Should have created the enclosure as well."); Assert.AreEqual("http://codeclimber.net.nz/podcast/mypodcast.mp3", entry.Enclosure.Url, "Not the expected enclosure url."); Assert.AreEqual("audio/mp3", entry.Enclosure.MimeType, "Not the expected enclosure mimetype."); Assert.AreEqual(123456789, entry.Enclosure.Size, "Not the expected enclosure size."); }
public void NewPostWithEnclosureCreatesEntryWithEnclosure() { string hostname = UnitTestHelper.GenerateRandomString(); Assert.IsTrue(Config.CreateBlog("", "username", "password", hostname, "")); UnitTestHelper.SetHttpContextWithBlogRequest(hostname, ""); Config.CurrentBlog.AllowServiceAccess = true; MetaWeblog api = new MetaWeblog(); Post post = new Post(); post.categories = null; post.description = "A unit test"; post.title = "A unit testing title"; post.dateCreated = DateTime.Now; Enclosure postEnclosure = new Enclosure(); postEnclosure.url = "http://codeclimber.net.nz/podcast/mypodcast.mp3"; postEnclosure.type = "audio/mp3"; postEnclosure.length = 123456789; post.enclosure = postEnclosure; string result = api.newPost(Config.CurrentBlog.Id.ToString(CultureInfo.InvariantCulture), "username", "password", post, true); int entryId = int.Parse(result); Entry entry = Entries.GetEntry(entryId, PostConfig.None, true); Assert.IsNotNull(entry, "Guess the entry did not get created properly."); Assert.IsNotNull(entry.Enclosure,"Should have created the enclosure as well."); Assert.AreEqual("http://codeclimber.net.nz/podcast/mypodcast.mp3", entry.Enclosure.Url,"Not the expected enclosure url."); Assert.AreEqual("audio/mp3", entry.Enclosure.MimeType, "Not the expected enclosure mimetype."); Assert.AreEqual(123456789, entry.Enclosure.Size,"Not the expected enclosure size."); }