SetTests.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using FluentAssertions;
  2. using Jint.Native;
  3. namespace Jint.Tests.Runtime;
  4. public class SetTests
  5. {
  6. [Fact]
  7. public void ConConstructSet()
  8. {
  9. var engine = new Engine();
  10. var set = engine.Intrinsics.Set.Construct();
  11. set.Add(42);
  12. set.Add("foo");
  13. set.Size.Should().Be(2);
  14. set.Should().ContainInOrder(42, "foo");
  15. set.Has(42).Should().BeTrue();
  16. set.Has("foo").Should().BeTrue();
  17. set.Has(24).Should().BeFalse();
  18. engine.SetValue("s", set);
  19. engine.Evaluate("s.size").Should().Be((JsNumber) 2);
  20. engine.Evaluate("s.has(42)").Should().Be(JsBoolean.True);
  21. engine.Evaluate("s.has('foo')").Should().Be(JsBoolean.True);
  22. engine.Evaluate("s.has(24)").Should().Be(JsBoolean.False);
  23. set.Delete(42).Should().BeTrue();
  24. set.Has(42).Should().BeFalse();
  25. engine.Evaluate("s.has(42)").Should().Be(JsBoolean.False);
  26. engine.Evaluate("s.size").Should().Be((JsNumber) 1);
  27. set.Clear();
  28. set.Should().BeEmpty();
  29. set.Size.Should().Be(0);
  30. engine.Evaluate("s.size").Should().Be((JsNumber) 0);
  31. }
  32. }