Message reporting if indexable value does not exist
This commit is contained in:
@@ -54,8 +54,7 @@ return table[""test""]
|
||||
var script = new Script(input);
|
||||
Assert.Empty(script.Diagnostics.Messages);
|
||||
var evaluated = script.Evaluate();
|
||||
Assert.Empty(script.Diagnostics.Messages);
|
||||
Assert.Null(evaluated);
|
||||
Assert.Single(script.Diagnostics.Messages);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
||||
@@ -25,6 +25,7 @@ namespace UpsilonTests
|
||||
{
|
||||
public string FieldString = "TestField";
|
||||
public string FieldStringSet;
|
||||
private string _privateTestField = "hidden";
|
||||
|
||||
public bool TestMethodHasRun { get; private set; }
|
||||
public void TestMethod()
|
||||
@@ -104,5 +105,21 @@ end
|
||||
Assert.Empty(script.Diagnostics.Messages);
|
||||
Assert.Equal(result, 120);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CantAccessHiddenFields()
|
||||
{
|
||||
var obj = new UserDataHelper();
|
||||
const string input = @"
|
||||
function test(o)
|
||||
return o._privateTestField
|
||||
end
|
||||
";
|
||||
var script = new Script(input);
|
||||
Assert.Empty(script.Diagnostics.Messages);
|
||||
script.EvaluateFunction("test", new[] {obj});
|
||||
Assert.Single(script.Diagnostics.Messages);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user