JsValueConversionTests.cs 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. using Jint.Native;
  2. using Jint.Native.Array;
  3. using Jint.Native.Date;
  4. using Jint.Native.Object;
  5. using Jint.Native.RegExp;
  6. using Xunit;
  7. namespace Jint.Tests.Runtime
  8. {
  9. public class JsValueConversionTests
  10. {
  11. private Engine _engine;
  12. public JsValueConversionTests()
  13. {
  14. _engine = new Engine();
  15. }
  16. [Fact]
  17. public void ShouldBeAnArray()
  18. {
  19. var value = new ArrayInstance(_engine);
  20. Assert.Equal(false, value.IsBoolean());
  21. Assert.Equal(true, value.IsArray());
  22. Assert.Equal(false, value.IsDate());
  23. Assert.Equal(false, value.IsNull());
  24. Assert.Equal(false, value.IsNumber());
  25. Assert.Equal(true, value.IsObject());
  26. Assert.Equal(false, value.IsPrimitive());
  27. Assert.Equal(false, value.IsRegExp());
  28. Assert.Equal(false, value.IsString());
  29. Assert.Equal(false, value.IsUndefined());
  30. Assert.Equal(true, value.AsArray() != null);
  31. }
  32. [Fact]
  33. public void ShouldBeABoolean()
  34. {
  35. var value = new JsBoolean(true);
  36. Assert.Equal(true, value.IsBoolean());
  37. Assert.Equal(false, value.IsArray());
  38. Assert.Equal(false, value.IsDate());
  39. Assert.Equal(false, value.IsNull());
  40. Assert.Equal(false, value.IsNumber());
  41. Assert.Equal(false, value.IsObject());
  42. Assert.Equal(true, value.IsPrimitive());
  43. Assert.Equal(false, value.IsRegExp());
  44. Assert.Equal(false, value.IsString());
  45. Assert.Equal(false, value.IsUndefined());
  46. Assert.Equal(true, value.AsBoolean());
  47. }
  48. [Fact]
  49. public void ShouldBeADate()
  50. {
  51. var value = new DateInstance(_engine);
  52. Assert.Equal(false, value.IsBoolean());
  53. Assert.Equal(false, value.IsArray());
  54. Assert.Equal(true, value.IsDate());
  55. Assert.Equal(false, value.IsNull());
  56. Assert.Equal(false, value.IsNumber());
  57. Assert.Equal(true, value.IsObject());
  58. Assert.Equal(false, value.IsPrimitive());
  59. Assert.Equal(false, value.IsRegExp());
  60. Assert.Equal(false, value.IsString());
  61. Assert.Equal(false, value.IsUndefined());
  62. Assert.Equal(true, value.AsDate() != null);
  63. }
  64. [Fact]
  65. public void ShouldBeNull()
  66. {
  67. var value = Null.Instance;
  68. Assert.Equal(false, value.IsBoolean());
  69. Assert.Equal(false, value.IsArray());
  70. Assert.Equal(false, value.IsDate());
  71. Assert.Equal(true, value.IsNull());
  72. Assert.Equal(false, value.IsNumber());
  73. Assert.Equal(false, value.IsObject());
  74. Assert.Equal(true, value.IsPrimitive());
  75. Assert.Equal(false, value.IsRegExp());
  76. Assert.Equal(false, value.IsString());
  77. Assert.Equal(false, value.IsUndefined());
  78. }
  79. [Fact]
  80. public void ShouldBeANumber()
  81. {
  82. var value = new JsNumber(2);
  83. Assert.Equal(false, value.IsBoolean());
  84. Assert.Equal(false, value.IsArray());
  85. Assert.Equal(false, value.IsDate());
  86. Assert.Equal(false, value.IsNull());
  87. Assert.Equal(true, value.IsNumber());
  88. Assert.Equal(2, value.AsNumber());
  89. Assert.Equal(false, value.IsObject());
  90. Assert.Equal(true, value.IsPrimitive());
  91. Assert.Equal(false, value.IsRegExp());
  92. Assert.Equal(false, value.IsString());
  93. Assert.Equal(false, value.IsUndefined());
  94. }
  95. [Fact]
  96. public void ShouldBeAnObject()
  97. {
  98. var value = new ObjectInstance(_engine);
  99. Assert.Equal(false, value.IsBoolean());
  100. Assert.Equal(false, value.IsArray());
  101. Assert.Equal(false, value.IsDate());
  102. Assert.Equal(false, value.IsNull());
  103. Assert.Equal(false, value.IsNumber());
  104. Assert.Equal(true, value.IsObject());
  105. Assert.Equal(true, value.AsObject() != null);
  106. Assert.Equal(false, value.IsPrimitive());
  107. Assert.Equal(false, value.IsRegExp());
  108. Assert.Equal(false, value.IsString());
  109. Assert.Equal(false, value.IsUndefined());
  110. }
  111. [Fact]
  112. public void ShouldBeARegExp()
  113. {
  114. var value = new RegExpInstance(_engine);
  115. Assert.Equal(false, value.IsBoolean());
  116. Assert.Equal(false, value.IsArray());
  117. Assert.Equal(false, value.IsDate());
  118. Assert.Equal(false, value.IsNull());
  119. Assert.Equal(false, value.IsNumber());
  120. Assert.Equal(true, value.IsObject());
  121. Assert.Equal(false, value.IsPrimitive());
  122. Assert.Equal(true, value.IsRegExp());
  123. Assert.Equal(true, value.AsRegExp() != null);
  124. Assert.Equal(false, value.IsString());
  125. Assert.Equal(false, value.IsUndefined());
  126. }
  127. [Fact]
  128. public void ShouldBeAString()
  129. {
  130. var value = new JsString("a");
  131. Assert.Equal(false, value.IsBoolean());
  132. Assert.Equal(false, value.IsArray());
  133. Assert.Equal(false, value.IsDate());
  134. Assert.Equal(false, value.IsNull());
  135. Assert.Equal(false, value.IsNumber());
  136. Assert.Equal(false, value.IsObject());
  137. Assert.Equal(true, value.IsPrimitive());
  138. Assert.Equal(false, value.IsRegExp());
  139. Assert.Equal(true, value.IsString());
  140. Assert.Equal("a", value.AsString());
  141. Assert.Equal(false, value.IsUndefined());
  142. }
  143. [Fact]
  144. public void ShouldBeUndefined()
  145. {
  146. var value = Undefined.Instance;
  147. Assert.Equal(false, value.IsBoolean());
  148. Assert.Equal(false, value.IsArray());
  149. Assert.Equal(false, value.IsDate());
  150. Assert.Equal(false, value.IsNull());
  151. Assert.Equal(false, value.IsNumber());
  152. Assert.Equal(false, value.IsObject());
  153. Assert.Equal(true, value.IsPrimitive());
  154. Assert.Equal(false, value.IsRegExp());
  155. Assert.Equal(false, value.IsString());
  156. Assert.Equal(true, value.IsUndefined());
  157. }
  158. }
  159. }