public void TestEquality2() { var articleMetaData1 = new ArticleMetadata() { Title = "Some Title", Slug = "some-slug", PublishDate = new System.DateTime(2019, 6, 1), Description = "some description" }; var articleMetaData2 = new ArticleMetadata() { Title = "Some Title", Slug = "some-slug", PublishDate = new System.DateTime(2019, 6, 1), Description = "some description" }; Assert.AreEqual(articleMetaData1, articleMetaData2); Assert.IsTrue(articleMetaData1.Equals(articleMetaData2)); Assert.IsTrue(articleMetaData1 == articleMetaData2); Assert.IsFalse(articleMetaData1 != articleMetaData2); Assert.IsTrue(articleMetaData1 <= articleMetaData2); Assert.IsTrue(articleMetaData1 >= articleMetaData2); Assert.AreEqual(articleMetaData1.GetHashCode(), articleMetaData2.GetHashCode()); }
public async Task <ActionResult> AddAsync(string name, DateTime date, string content) { var filename = string.Format( CultureInfo.InvariantCulture, "{0}.{1:yyyyMMdd}.md", name, date); using (var client = this.currentUser.GetAuthenticatedClient()) { if (client == null) { return(RedirectToAction("Profile", "Home")); } using (var mem = new MemoryStream(Encoding.UTF8.GetBytes(content))) { var upload = await client.Files.UploadAsync("/" + filename, body : mem); var metadata = ArticleMetadata.Parse(upload.Name, upload.Rev); return(Redirect(string.Format( CultureInfo.InvariantCulture, "/Blogs/{0}/{1}", this.currentUser.BlogName, metadata.DisplayName))); } } }
public void Comparison() { var articleMetaData1 = new ArticleMetadata() { Title = "Some Title", Slug = "some-slug", PublishDate = new System.DateTime(2019, 6, 1) }; var articleMetaData2 = new ArticleMetadata() { Title = "Some Title", Slug = "some-slug", PublishDate = new System.DateTime(2019, 6, 2) }; Assert.IsTrue(articleMetaData1 < articleMetaData2); Assert.IsTrue(articleMetaData2 > articleMetaData1); Assert.IsFalse(articleMetaData1 > articleMetaData2); Assert.IsFalse(articleMetaData2 < articleMetaData1); Assert.IsTrue(articleMetaData1 <= articleMetaData2); Assert.IsTrue(articleMetaData2 >= articleMetaData1); Assert.IsFalse(articleMetaData1 >= articleMetaData2); Assert.IsFalse(articleMetaData2 <= articleMetaData1); }
public void WriteToStreamWithDescription() { var title = "Some Title"; var slug = "Some-Slug"; var publishDate = System.DateTime.UtcNow; var description = "Some kind of description"; var articleMetadata = new ArticleMetadata() { Slug = slug, Title = title, PublishDate = publishDate, Description = description }; var memoryStream = new MemoryStream(); articleMetadata.WriteTo(memoryStream, true); memoryStream.Seek(0, SeekOrigin.Begin); var streamString = new StreamReader(memoryStream).ReadToEnd(); var compareString = $@"--- title: {title} slug: {slug} publish-date: {publishDate:O} description: {description} ... "; Assert.AreEqual(compareString, streamString); }
/// <summary> /// コンストラクタ /// </summary> /// <param name="markdownFileInfo"></param> public ArticleContent(FileInfo markdownFileInfo, bool isDraft, bool isShowMarkdownFilePath) { IsShowMarkdownFilePath = isShowMarkdownFilePath; _markdownText = IOUtil.ReadAllText(markdownFileInfo.FullName, MarkdownFileEncoding, StringUtil.Lf); _metadata = YamlConvert.DeserializeFirst <ArticleMetadata>(_markdownText); #if DEBUG // 記事IDの指定がなかった場合に内部で一時的な値を割り当てる if (string.IsNullOrEmpty(_metadata.Id)) { _metadata.Id = GuidUtil.NewNormalGuidString(); } #endif MarkdownFilePath = markdownFileInfo.FullName; MarkdownFileUpdateTime = markdownFileInfo.LastWriteTime; Permalink = string.Format(PermalinkFormat, _metadata.Id); var titlePre = isDraft ? "(draft) " : string.Empty; var fileName = Path.GetFileNameWithoutExtension(markdownFileInfo.Name); var date = fileName.Substring(0, 10); var title = fileName.Substring(11); Title = titlePre + title; Date = date; if (string.IsNullOrEmpty(Id)) { throw new Exception($"記事IDが指定されていません:{markdownFileInfo.FullName}"); } }
public IViewComponentResult Invoke(ArticleMetadata articleMetadata, bool displayCompact) { if (displayCompact) { return(View("compact", articleMetadata)); } else { return(View(articleMetadata)); } }
public void SettingPropertyToNullForcesEmpty() { var articleMetadata = new ArticleMetadata() { Slug = null, Title = null, Description = null }; Assert.AreEqual(string.Empty, articleMetadata.Title); Assert.AreEqual(string.Empty, articleMetadata.Slug); Assert.AreEqual(string.Empty, articleMetadata.Description); }
public async Task <ActionResult> IndexAsync( string filename, string content, string rev) { using (var client = this.currentUser.GetAuthenticatedClient()) { if (client == null) { return(RedirectToAction("Profile", "Home")); } using (var mem = new MemoryStream(Encoding.UTF8.GetBytes(content))) { try { var updated = await client.Files.UploadAsync( "/" + filename, WriteMode.Overwrite.Instance, body : mem); rev = updated.Rev; } catch (ApiException <UploadError> e) { var uploadError = e.ErrorResponse.AsPath; if (uploadError != null) { var reason = uploadError.Value.Reason; var id = filename.Split('.')[0]; var message = string.Format("Unable to update {0}. Reason: {1}", id, reason); this.Flash(message, FlashLevel.Warning); return(RedirectToAction("Index", new { id = id })); } } } var metadata = ArticleMetadata.Parse(filename, rev); await client.GetArticle(this.currentUser.BlogName, metadata, bypassCache : true); this.Flash(string.Format( "Updated '{0}'.", metadata.Name)); return(Redirect(string.Format( "/Blogs/{0}/{1}", this.currentUser.BlogName, metadata.DisplayName))); } }
public void TestEqualityBothEmpty() { var articleMetaData1 = new ArticleMetadata(); var articleMetaData2 = new ArticleMetadata(); Assert.AreEqual(articleMetaData1, articleMetaData2); Assert.IsTrue(articleMetaData1.Equals(articleMetaData2)); Assert.IsTrue(articleMetaData1 == articleMetaData2); Assert.IsFalse(articleMetaData1 != articleMetaData2); Assert.IsTrue(articleMetaData1 <= articleMetaData2); Assert.IsTrue(articleMetaData1 >= articleMetaData2); Assert.AreEqual(articleMetaData1.GetHashCode(), articleMetaData2.GetHashCode()); }
public void CreateFromString() { var title = "Some Title"; var slug = "Some-Slug"; var publishDate = System.DateTime.UtcNow; var theString = $@"--- title: {title} slug: {slug} publish-date: {publishDate:O} ... "; var articleMetadata = ArticleMetadata.ReadFrom(theString); Assert.AreEqual(title, articleMetadata.Title); Assert.AreEqual(slug, articleMetadata.Slug); Assert.AreEqual(publishDate, articleMetadata.PublishDate); }
private static Document FromArticleMetadata(ArticleMetadata articleMetadata) { var d = new Document { [SLUG] = articleMetadata.Slug, [TIMESTAMP] = articleMetadata.PublishDate.ToString("O"), [TITLE] = articleMetadata.Title }; if (!String.IsNullOrWhiteSpace(articleMetadata.Description)) { d[DESCRIPTION] = articleMetadata.Description; } if (articleMetadata.LockedForComments) { d[STATUS] = STATUS_LOCKED; } return(d); }
public void CanSetProperties() { var title = "Some Title"; var slug = "Some-Slug"; var publishDate = System.DateTime.UtcNow; var description = "Some Description"; var articleMetadata = new ArticleMetadata() { Slug = slug, Title = title, PublishDate = publishDate, Description = description }; Assert.AreEqual(title, articleMetadata.Title); Assert.AreEqual(slug, articleMetadata.Slug); Assert.AreEqual(publishDate, articleMetadata.PublishDate); Assert.AreEqual(description, articleMetadata.Description); }
public void ReadFromStream() { var title = "Some Title"; var slug = "Some-Slug"; var publishDate = System.DateTime.UtcNow; var streamString = $@"--- title: {title} slug: {slug} publish-date: {publishDate:O} ... "; var memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(streamString)); var articleMetadata = ArticleMetadata.ReadFrom(memoryStream); Assert.AreEqual(title, articleMetadata.Title); Assert.AreEqual(slug, articleMetadata.Slug); Assert.AreEqual(publishDate, articleMetadata.PublishDate); Assert.AreEqual(string.Empty, articleMetadata.Description); }
public void TestInequality() { var articleMetaData1 = new ArticleMetadata() { Title = "Some Title", Slug = "some-slug", PublishDate = new System.DateTime(2019, 6, 1) }; var articleMetaData2 = new ArticleMetadata() { Title = "Some Title", Slug = "some-slug2", PublishDate = new System.DateTime(2019, 6, 1) }; Assert.AreNotEqual(articleMetaData1, articleMetaData2); Assert.IsFalse(articleMetaData1.Equals(articleMetaData2)); Assert.IsFalse(articleMetaData1 == articleMetaData2); Assert.IsTrue(articleMetaData1 != articleMetaData2); }
public void TestToString() { var title = "Some Title"; var slug = "Some-Slug"; var publishDate = System.DateTime.UtcNow; var articleMetadata = new ArticleMetadata() { Slug = slug, Title = title, PublishDate = publishDate }; var compareString = $@"--- title: {title} slug: {slug} publish-date: {publishDate:O} ... "; Assert.AreEqual(compareString, articleMetadata.ToString()); }
public void Sort() { ArticleMetadata metadata0 = null; var metadata1 = new ArticleMetadata() { Title = "xyz", Slug = "xyz", PublishDate = new System.DateTime(2000, 1, 1) }; var metadata2 = new ArticleMetadata() { Title = "abc", Slug = "abc", PublishDate = new System.DateTime(2000, 1, 2) }; var metadata3 = new ArticleMetadata() { Title = "abc", Slug = "abc", PublishDate = new System.DateTime(2000, 1, 3) }; var metadata4 = new ArticleMetadata() { Title = "abd", Slug = "abc", PublishDate = new System.DateTime(2000, 1, 3) }; var metadata5 = new ArticleMetadata() { Title = "abc", Slug = "abc", PublishDate = new System.DateTime(2000, 1, 4) }; var metadata6 = new ArticleMetadata() { Title = "abd", Slug = "abc", PublishDate = new System.DateTime(2000, 1, 4) }; var arr = new ArticleMetadata[] { metadata4, metadata3, metadata1, metadata0, metadata6, metadata5, metadata2 }; System.Array.Sort(arr); Assert.AreEqual(metadata0, arr[0]); Assert.AreEqual(metadata1, arr[1]); Assert.AreEqual(metadata2, arr[2]); Assert.AreEqual(metadata3, arr[3]); Assert.AreEqual(metadata4, arr[4]); Assert.AreEqual(metadata5, arr[5]); Assert.AreEqual(metadata6, arr[6]); }