or.cpp 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. // ArduinoJson - arduinojson.org
  2. // Copyright Benoit Blanchon 2014-2023
  3. // MIT License
  4. #include <ArduinoJson.h>
  5. #include <catch.hpp>
  6. static const JsonVariant undefined;
  7. static const JsonVariant null = static_cast<const char*>(0);
  8. TEST_CASE("JsonVariant::operator|()") {
  9. SECTION("undefined | const char*") {
  10. std::string result = undefined | "default";
  11. REQUIRE(result == "default");
  12. }
  13. SECTION("undefined | int") {
  14. int result = undefined | 42;
  15. REQUIRE(result == 42);
  16. }
  17. SECTION("undefined | bool") {
  18. bool result = undefined | true;
  19. REQUIRE(result == true);
  20. }
  21. SECTION("null | const char*") {
  22. std::string result = null | "default";
  23. REQUIRE(result == "default");
  24. }
  25. SECTION("null | int") {
  26. int result = null | 42;
  27. REQUIRE(result == 42);
  28. }
  29. SECTION("null | bool") {
  30. bool result = null | true;
  31. REQUIRE(result == true);
  32. }
  33. SECTION("int | const char*") {
  34. JsonVariant variant = 42;
  35. std::string result = variant | "default";
  36. REQUIRE(result == "default");
  37. }
  38. SECTION("int | int") {
  39. JsonVariant variant = 0;
  40. int result = variant | 666;
  41. REQUIRE(result == 0);
  42. }
  43. SECTION("double | int") {
  44. JsonVariant variant = 42.0;
  45. int result = variant | 666;
  46. REQUIRE(result == 42);
  47. }
  48. SECTION("bool | bool") {
  49. JsonVariant variant = false;
  50. bool result = variant | true;
  51. REQUIRE(result == false);
  52. }
  53. SECTION("int | bool") {
  54. JsonVariant variant = 0;
  55. bool result = variant | true;
  56. REQUIRE(result == true);
  57. }
  58. SECTION("const char* | const char*") {
  59. JsonVariant variant = "not default";
  60. std::string result = variant | "default";
  61. REQUIRE(result == "not default");
  62. }
  63. SECTION("const char* | int") {
  64. JsonVariant variant = "not default";
  65. int result = variant | 42;
  66. REQUIRE(result == 42);
  67. }
  68. }