public void Value_from_MakeError(string input) { var actual = SciterValue.MakeError(input); Assert.IsTrue(actual.IsErrorString); Assert.AreEqual(input, actual.AsString()); }
public Task GetRuntimeInfo(SciterElement element, SciterValue onCompleted, SciterValue onError) { try { var value = SciterValue.Create( new { FrameworkDescription = System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription, ProcessArchitecture = System.Runtime.InteropServices.RuntimeInformation.ProcessArchitecture.ToString(), OSArchitecture = System.Runtime.InteropServices.RuntimeInformation.OSArchitecture.ToString(), OSDescription = System.Runtime.InteropServices.RuntimeInformation.OSDescription, SystemVersion = System.Runtime.InteropServices.RuntimeEnvironment.GetSystemVersion() }); onCompleted.Invoke(value); } catch (Exception e) { onError.Invoke(SciterValue.MakeError(e.Message)); } return(Task.CompletedTask); }
private ScriptEventResult ExceptionCallbackResult(Exception e) { if (!_isWrappedCallback || !_isAwaitable) { return(ScriptEventResult.Successful(SciterValue.MakeError(e?.Message))); } //TODO: Clean this up, maybe change the Dictionary<> implementation? var properties = (e) .GetType() .GetProperties(BindingFlags.Instance | BindingFlags.Public) .Where(w => typeof(IConvertible).IsAssignableFrom(w.PropertyType)) .ToDictionary(key => key.Name, value => value.GetValue(e) as IConvertible); //.ToDictionary(key => key.Name, value => SciterValue.Create(value.GetValue(e.InnerException))); properties.Add(nameof(Type), e?.GetType().FullName); _callbackValue?.Invoke(SciterValue.Null, SciterValue.Create(properties)); return(ScriptEventResult.Successful()); }
public void Null_or_empty_input_for_MakeError_returns_null(string input) { var actual = SciterValue.MakeError(input); Assert.IsNull(actual); }