TestHashTableExample.cpp 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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(TestHashTableExample)
  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. };
  54. }