public static void TestExtraction(IEnumerable <string> templates, IEnumerable <ExtractedVariable> expectedVars)
        {
            //Arrange
            var eVars = expectedVars.ToArray();

            foreach (var template in templates)
            {
                //Act
                var result = VariableExtractor.ExtractVariables(XmTemplateDeserializer.Deserialize(template));

                //Assert
                Assert.AreEqual(eVars.Count(), result.Count, template);
                Assert.AreEqual(false, result.Keys.Except(eVars.Select(x => x.Name)).Any(), Environment.NewLine, template);

                foreach (var xVar in eVars)
                {
                    var desc = "VAR: " + xVar.Name + Environment.NewLine + template;
                    var v    = result[xVar.Name];
                    Assert.AreEqual(xVar.Name, v.Name, desc);
                    Assert.AreEqual(xVar.GuessedType, v.GuessedType, desc);
                    Assert.AreEqual(xVar.IsArray, v.IsArray, desc);
                    Assert.AreEqual(xVar.Values.Count(), v.Values.Count(), desc);
                    Assert.AreEqual(false, xVar.Values.Except(v.Values).Any(), desc);
                }
            }
        }
 public VariableExtractorTests()
 {
     _sut = new VariableExtractor(Prefix);
 }