public void ResolveArrayElement(string phpCode, string varName)
{
XmlNode ast = PHPParseUtils.ParsePHPCode(phpCode, Config.PHPSettings.PHPParserPath).FirstChild.NextSibling;
var xmlNodes = ast.FirstChild.Cast<XmlNode>().ToList();
var varNodes = xmlNodes.Where(node => node.LocalName == AstConstants.Nodes.Expr_ArrayDimFetch);
var varResolver = new VariableResolver(new VariableStorage(), AnalysisScope.File);
foreach (var varNode in varNodes)
{
var result = varResolver.ResolveVariable(varNode);
Assert.AreEqual(varName, result.Variable.Name, "Names should match");
Assert.IsTrue(result.IsNew, "Variable should be new");
result = varResolver.ResolveVariable(varNode);
Assert.AreEqual(varName, result.Variable.Name, "Names should still match");
Assert.IsFalse(result.IsNew, "Variable is no longer new");
}
}