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); }