public void AddOrAppendToCustomHeader_AppendsHeader_WhenExists() { var rawBody = TestBodies.MultipleHeadersIncludingDefaultH1; var body = new JournalEntryBody(rawBody); var originalCount = body.Count(); const string customHeader = "## The standard Lorem Ipsum passage, used since the 1500s"; var originalIndex = body.ToList().FindIndex(x => x.header == customHeader); const string appended = "- Today I did the thing\r\n- Then I did another thing."; body.AddOrAppendToCustomHeader(customHeader, new[] { appended }); var currentIndex = body.ToList().FindIndex(x => x.header == customHeader); currentIndex.Should().Be(originalIndex); var currentCount = body.Count(); currentCount.Should().Be(originalCount); var output = body.ToString(); output.Length.Should().Be(rawBody.Trim().Length + appended.Length + 4); // 2 line breaks X 2 chars each }
public void AddOrAppendToDefaultHeader_AppendsHeader_WhenExists() { var rawBody = TestBodies.MultipleHeadersIncludingDefaultH1; var body = new JournalEntryBody(rawBody); var originalCount = body.Count(); body.Count(x => DateTime.TryParse(x.header.Replace("#", "").Trim(), out _)).Should().Be(1); var defaultHeader = body.First().header; var originalIndex = body.ToList().FindIndex(x => x.header == defaultHeader); const string appended = "- Today I did the thing\r\n- Then I did another thing."; body.AddOrAppendToDefaultHeader(Today.Date(), new[] { appended }); var currentIndex = body.ToList().FindIndex(x => x.header == defaultHeader); currentIndex.Should().Be(originalIndex); var currentCount = body.Count(); currentCount.Should().Be(originalCount); var output = body.ToString(); output.Length.Should().Be(rawBody.Trim().Length + appended.Length + 4); // 2 line breaks X 2 chars each }
public void AddOrAppendToDefaultHeader_AddsHeader_WhenNotExists() { var rawBody = TestBodies.AllTextHasExactlyOneHeader; var body = new JournalEntryBody(rawBody); body.Count().Should().Be(5); const string appended = "- Today I did the thing\r\n- Then I did another thing."; var date = new LocalDate(2020, 2, 9); body.AddOrAppendToDefaultHeader(date, new[] { appended }); body.ToList().FindIndex(x => DateTime.TryParse(x.header.Replace("#", "").Trim(), out _)).Should().Be(0); body.Count().Should().Be(6); var output = body.ToString(); output.Length.Should().Be(rawBody.Trim().Length + appended.Length + $"# {date.ToString()}".Length + 8); // 2 line breaks X 2 chars each }
public void AddOrAppendToCustomHeader_AddsHeader_WhenNotExists() { var rawBody = TestBodies.NoHeadersOnlyText; var body = new JournalEntryBody(rawBody); body.Count().Should().Be(1); const string appended = "- Today I did the thing\r\n- Then I did another thing."; const string header = "## My Header"; body.AddOrAppendToCustomHeader(header, new[] { appended }); body.ToList().FindIndex(x => x.header == header).Should().Be(1); body.Count().Should().Be(2); var output = body.ToString(); output.Length.Should().Be(rawBody.Trim().Length + appended.Length + header.Length + 8); // 4 line breaks X 2 chars each }