using Jint.Tests.Runtime.Domain; namespace Jint.Tests.Runtime; public class UuidTests : IDisposable { private readonly Engine _engine; public UuidTests() { _engine = new Engine(o => o.AddObjectConverter(new UuidConverter())) .SetValue("copy", new Func(v => new Guid(v.ToByteArray()))) ; UuidConstructor.CreateUuidConstructor(_engine); } void IDisposable.Dispose() { } private object RunTest(string source) { return _engine.Evaluate(source).ToObject(); } [Fact] public void Empty() { Assert.Equal(Guid.Empty, RunTest($"Uuid.parse('{Guid.Empty}')")); Assert.Equal(Guid.Empty, RunTest($"Uuid.Empty")); } [Fact] public void Random() { var actual = RunTest($"new Uuid()"); Assert.NotEqual(Guid.Empty, actual); Assert.IsType(actual); } [Fact] public void Copy() { _engine.Evaluate("const g = new Uuid();"); Assert.Equal(_engine.Evaluate("copy(g).toString()").AsString(), _engine.Evaluate("g.toString()").AsString()); } }