public void GetFirstAuthorLastName_TwoAuthors_ReturnsCorrectValue()
        {
            // Arrange
            var input = "Author One and Author Two";

            // Act
            var lastName = BibtexAuthor.GetFirstAuthorLastName(input);

            // Assert
            Assert.AreEqual("One", lastName);
        }
        public void FromString_GivenLastSuffixFirstAuthorString_BuildsAuthorCorrectly()
        {
            // Arrange
            var input = "Author, Jr, Anthony N.";

            // Act
            var author = BibtexAuthor.FromString(input);

            // Assert
            Assert.AreEqual("Anthony", author.FirstName);
            Assert.AreEqual(1, author.MiddleNames.Count());
            Assert.AreEqual("N.", author.MiddleNames.First());
            Assert.AreEqual("Author", author.LastName);
            Assert.AreEqual("Jr", author.Suffix);
        }
        public void FromString_GivenAuthorStringWithTooManyComponents_ThrowsExceptionWithCorrectMessage()
        {
            var ex = Assert.Throws <FormatException>(() => BibtexAuthor.FromString("This, has, too, many, parts"));

            Assert.AreEqual("Unrecognized BibTeX format for author field with value: 'This, has, too, many, parts'", ex.Message);
        }
 public void FromString_GivenWhitespaceString_ThrowsFormatException()
 {
     Assert.Throws <ArgumentException>(() => BibtexAuthor.FromString("  "));
 }
 public void FromString_GivenNullString_ThrowsArgumentNullException()
 {
     Assert.Throws <ArgumentNullException>(() => BibtexAuthor.FromString(null));
 }
Esempio n. 6
0
 private List <Bibitem> GetBibitemsOrderedByFirstAuthorLastName(BibtexDatabase bibtexDatabase) => GetOrderedItems(GetMatchedEntries(bibtexDatabase), x => BibtexAuthor.GetFirstAuthorLastName(x.BibtexEntry?.Author) ?? x.BibtexEntry?.Title).ToList();