Added UserData support
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using Upsilon.Evaluator;
|
||||
using Xunit;
|
||||
|
||||
|
||||
64
UpsilonTests/UserDataTests.cs
Normal file
64
UpsilonTests/UserDataTests.cs
Normal file
@@ -0,0 +1,64 @@
|
||||
using System;
|
||||
using Upsilon.BaseTypes.UserData;
|
||||
using Upsilon.Evaluator;
|
||||
using Xunit;
|
||||
|
||||
namespace UpsilonTests
|
||||
{
|
||||
public class UserDataTests : IClassFixture<UserDataTests.UserDataTestsFixture>
|
||||
{
|
||||
public class UserDataTestsFixture : IDisposable
|
||||
{
|
||||
public UserDataTestsFixture()
|
||||
{
|
||||
UserDataTypeHandler.LoadType<UserDataHelper>();
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
#pragma warning disable 414, 649
|
||||
private class UserDataHelper
|
||||
{
|
||||
public string FieldString = "TestField";
|
||||
public string FieldStringSet;
|
||||
}
|
||||
#pragma warning restore 414, 649
|
||||
|
||||
|
||||
[Fact]
|
||||
public void AccessFieldsGet()
|
||||
{
|
||||
var obj = new UserDataHelper();
|
||||
const string input = @"
|
||||
function test(o)
|
||||
return o[""FieldString""]
|
||||
end
|
||||
";
|
||||
var script = new Script(input);
|
||||
Assert.Empty(script.Diagnostics.Messages);
|
||||
var result = script.EvaluateFunction<string>("test", new[] {obj});
|
||||
Assert.Empty(script.Diagnostics.Messages);
|
||||
Assert.Equal("TestField", result);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void AccessFieldsSet()
|
||||
{
|
||||
var obj = new UserDataHelper();
|
||||
const string input = @"
|
||||
function test(o)
|
||||
o[""FieldStringSet""] = ""Test""
|
||||
end
|
||||
";
|
||||
var script = new Script(input);
|
||||
Assert.Empty(script.Diagnostics.Messages);
|
||||
script.EvaluateFunction("test", new[] {obj});
|
||||
Assert.Empty(script.Diagnostics.Messages);
|
||||
Assert.Equal("Test", obj.FieldStringSet);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user