JsonHashTableTests.cpp 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. /*
  2. * Arduino JSON library
  3. * Benoit Blanchon 2014 - MIT License
  4. */
  5. #include "CppUnitTest.h"
  6. #include "JsonParser.h"
  7. #include <string>
  8. using namespace std;
  9. using namespace Microsoft::VisualStudio::CppUnitTestFramework;
  10. using namespace ArduinoJson::Parser;
  11. namespace ArduinoJsonParserTests
  12. {
  13. TEST_CLASS(JsonHashTableTests)
  14. {
  15. char json[128];
  16. JsonParser<32> parser;
  17. JsonHashTable hashTable;
  18. public:
  19. TEST_METHOD_INITIALIZE(Initialize)
  20. {
  21. strcpy(json, "{\"Name\":\"Blanchon\",\"Skills\":[\"C\",\"C++\",\"C#\"],\"Age\":32,\"Online\":true}");
  22. hashTable = parser.parseHashTable(json);
  23. }
  24. TEST_METHOD(HashTable_Success_ReturnsTrue)
  25. {
  26. Assert::IsTrue(hashTable.success());
  27. }
  28. TEST_METHOD(HashTable_GetString_ReturnsExpectedValue)
  29. {
  30. string name = hashTable.getString("Name");
  31. Assert::AreEqual(name, string("Blanchon"));
  32. }
  33. TEST_METHOD(HashTable_GetArray_ReturnsExpectedValue)
  34. {
  35. JsonArray skills = hashTable.getArray("Skills");
  36. string skill0 = skills.getString(0);
  37. Assert::AreEqual(skill0, string("C"));
  38. string skill1 = skills.getString(1);
  39. Assert::AreEqual(skill1, string("C++"));
  40. string skill2 = skills.getString(2);
  41. Assert::AreEqual(skill2, string("C#"));
  42. }
  43. TEST_METHOD(HashTable_GetLong_ReturnsExpectedValue)
  44. {
  45. int age = hashTable.getLong("Age");
  46. Assert::AreEqual(32, age);
  47. }
  48. TEST_METHOD(HashTable_GetBool_ReturnsExpectedValue)
  49. {
  50. bool online = hashTable.getBool("Online");
  51. Assert::AreEqual(true, online);
  52. }
  53. TEST_METHOD(OneDimensionArrayInHashTable)
  54. {
  55. char json[] = "{a:[0,0],b:[0,0]}";
  56. JsonHashTable root = parser.parseHashTable(json);
  57. Assert::IsTrue(root.success());
  58. JsonArray arrayA = root.getArray("a");
  59. Assert::IsTrue(arrayA.success());
  60. Assert::AreEqual(2, arrayA.getLength());
  61. JsonArray arrayB = root.getArray("b");
  62. Assert::IsTrue(arrayB.success());
  63. Assert::AreEqual(2, arrayB.getLength());
  64. }
  65. TEST_METHOD(TwoDimensionsArrayInHashTable)
  66. {
  67. char json[] = "{a:[[0],[0]],b:[[0],[0]]}";
  68. JsonHashTable root = parser.parseHashTable(json);
  69. Assert::IsTrue(root.success());
  70. JsonArray arrayA = root.getArray("a");
  71. Assert::IsTrue(arrayA.success());
  72. Assert::AreEqual(2, arrayA.getLength());
  73. JsonArray arrayB = root.getArray("b");
  74. Assert::IsTrue(arrayB.success());
  75. Assert::AreEqual(2, arrayB.getLength());
  76. }
  77. };
  78. }