Promotion.vala 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using Invercargill;
  2. using Invercargill.DataStructures;
  3. using InvercargillJson;
  4. void promotion_tests() {
  5. Test.add_func("/invercargill/promotions/uint8_to_binarydata", () => {
  6. var data = new Vector<uint8>();
  7. data.add(1);
  8. data.add(9);
  9. data.add(7);
  10. var base64 = data.promote_to<BinaryData>().to_base64();
  11. assert_cmpstr("AQkH", CompareOperator.EQ, base64);
  12. });
  13. Test.add_func("/invercargill/promotions/binarydata_to_binarydata", () => {
  14. var data = Wrap.base64_string("AQAA").as_enumerable();
  15. var new_data = data.promote_to<BinaryData>();
  16. assert_true(data == new_data);
  17. });
  18. Test.add_func("/invercargill/promotion/json", () => {
  19. var json_str = """[
  20. "Glengarry",
  21. "Gladstone",
  22. "Strathern",
  23. "Richmond",
  24. "Georgetown"
  25. ]""";
  26. try {
  27. var suburbs = new JsonElement.from_string(json_str)
  28. .assert_as<JsonArray>()
  29. .where(e => e.assert_as<string>().has_prefix("G"));
  30. print(@"I AM: $(suburbs.get_type().name())\n");
  31. var names = suburbs
  32. .as_strings()
  33. .to_array();
  34. assert_cmpuint(3, CompareOperator.EQ, suburbs.count());
  35. assert_cmpint(3, CompareOperator.EQ, names.length);
  36. assert_cmpstr("Glengarry", CompareOperator.EQ, names[0]);
  37. assert_cmpstr("Gladstone", CompareOperator.EQ, names[1]);
  38. assert_cmpstr("Georgetown", CompareOperator.EQ, names[2]);
  39. }
  40. catch(Error e) {
  41. assert_no_error(e);
  42. }
  43. });
  44. }