private static void TestEntityException(object instance, string javascript, Predicate <Exception> expected)
        {
            var engine = new ScriptEngine();

            engine.ForceStrictMode = true;
            engine.SetGlobalValue("$instance", Accessors.CreateEntity(engine, (IModelInstance)instance));

            try
            {
                var result = engine.Evaluate(javascript);
                Assert.Fail("Expected an exception but one was not thrown: " + javascript + " --> " + result);
            }
            catch (Exception error)
            {
                Assert.IsTrue(expected(error), "An error was expected but not '" + error.Message + "': " + javascript);
            }
        }
 private static void TestEntityExpression <T>(object instance, string javascript, T expectedResult)
 {
     TestExpression(engine => Accessors.CreateEntity(engine, (IModelInstance)instance), javascript, expectedResult);
 }