From 4fe93f3a2a16777fba3734bfbbadf7007dd9c691 Mon Sep 17 00:00:00 2001 From: Aptivi CEO Date: Sun, 31 Mar 2024 15:04:42 +0300 Subject: [PATCH] add - Added re-parsing tests --- We've added tests that save the resultant cards to string and re-parse them. --- Type: add Breaking: False Doc Required: False Part: 1/1 --- VisualCard.Tests/ContactParseTests.cs | 54 +++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/VisualCard.Tests/ContactParseTests.cs b/VisualCard.Tests/ContactParseTests.cs index 9fd32f07..752820ea 100644 --- a/VisualCard.Tests/ContactParseTests.cs +++ b/VisualCard.Tests/ContactParseTests.cs @@ -55,6 +55,40 @@ internal void ParseDifferentContactsInternal(string cardText) Should.NotThrow(() => cards = CardTools.GetCardsFromString(cardText)); } + [TestMethod] + [DynamicData(nameof(ContactData.singleVcardContactShorts), typeof(ContactData))] + public void ReparseDifferentContactsShorts(string cardText) => + ReparseDifferentContactsInternal(cardText); + + [TestMethod] + [DynamicData(nameof(ContactData.singleVcardContacts), typeof(ContactData))] + public void ReparseDifferentContacts(string cardText) => + ReparseDifferentContactsInternal(cardText); + + [TestMethod] + [DynamicData(nameof(ContactData.multipleVcardContacts), typeof(ContactData))] + public void ReparseDifferentContactsMultiple(string cardText) => + ReparseDifferentContactsInternal(cardText); + + [TestMethod] + [DynamicData(nameof(ContactData.remainingContacts), typeof(ContactData))] + public void ReparseDifferentContactsRemaining(string cardText) => + ReparseDifferentContactsInternal(cardText); + + internal void ReparseDifferentContactsInternal(string cardText) + { + Card[] cards = []; + Card[] secondCards; + Should.NotThrow(() => cards = CardTools.GetCardsFromString(cardText)); + + // Save all the cards to strings and re-parse + foreach (Card card in cards) + { + string saved = Should.NotThrow(card.SaveToString); + Should.NotThrow(() => secondCards = CardTools.GetCardsFromString(saved)); + } + } + [TestMethod] [DynamicData(nameof(ContactData.singleVcardContactShorts), typeof(ContactData))] public void ParseDifferentContactsAndTestEqualityShorts(string cardText) => @@ -247,5 +281,25 @@ public void BogusButSeemsValidShouldNotThrowWhenParsing(string cardText) foreach (Card card in cards) card.ShouldNotBeNull(); } + + [TestMethod] + [DynamicData(nameof(ContactDataBogus.seemsValidContacts), typeof(ContactDataBogus))] + public void BogusButSeemsValidShouldNotThrowWhenParsingAndReparsing(string cardText) + { + Card[] cards = []; + Card[] secondCards = []; + Should.NotThrow(() => cards = CardTools.GetCardsFromString(cardText)); + foreach (Card card in cards) + card.ShouldNotBeNull(); + + // Save all the cards to strings and re-parse + foreach (Card card in cards) + { + string saved = Should.NotThrow(card.SaveToString); + Should.NotThrow(() => secondCards = CardTools.GetCardsFromString(saved)); + } + foreach (Card card in secondCards) + card.ShouldNotBeNull(); + } } }