Browse Source

Added ExtractText_AllGood

Piotr Czajkowski 2 years ago
parent
commit
7ed650ef91
2 changed files with 32 additions and 0 deletions
  1. 8 0
      analyzeJSON/ExtractText.cs
  2. 24 0
      analyzeJSONTests/ExtractTextUnitTests.cs

+ 8 - 0
analyzeJSON/ExtractText.cs

@@ -7,6 +7,7 @@ namespace analyzeJSON
     public class ExtractText
     {
         private readonly Dictionary<string, bool> keysToExtract;
+        private readonly Dictionary<string, List<string>> extracted = new();
 
         public ExtractText(Dictionary<string, bool> keys)
         {
@@ -24,6 +25,13 @@ namespace analyzeJSON
 
             if (!keysToExtract.ContainsKey(tokenName))
                 return;
+
+            if (!extracted.ContainsKey(tokenName))
+                extracted.Add(tokenName, new List<string>());
+
+            extracted[tokenName].Add(token.Value<string>());
         }
+
+        public Dictionary<string, List<string>> Result => extracted;
     }
 }

+ 24 - 0
analyzeJSONTests/ExtractTextUnitTests.cs

@@ -1,6 +1,8 @@
 using Xunit;
 using analyzeJSON;
 using System;
+using System.Collections.Generic;
+using Newtonsoft.Json.Linq;
 
 namespace analyzeJSONTests
 {
@@ -11,5 +13,27 @@ namespace analyzeJSONTests
         {
             Assert.Throws<ArgumentNullException>(() => new ExtractText(null));
         }
+
+        [Fact]
+        public void ExtractText_AllGood()
+        {
+            dynamic token = new JObject();
+            token.one = "Lorem ipsum dolor";
+            token.two = "Lorem      ipsum dolor";
+            token.three = "Lorem\nipsum dolor";
+
+            var keys = new Dictionary<string, bool>
+            {
+                ["one"] = true,
+                ["two"] = false
+            };
+
+            var test = new ExtractText(keys);
+            test.Extract(token.one);
+            test.Extract(token.two);
+            test.Extract(token.three);
+
+            Assert.Equal(2, test.Result.Count);
+        }
     }
 }