You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

test-main.cpp 4.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. #include <iostream>
  2. #include <string.h>
  3. #include <gtest/gtest.h>
  4. #include <Business/LibNfc.h>
  5. #include <Business/StringUtils.h>
  6. TEST(StringUtils, rawToHumanChar)
  7. {
  8. ASSERT_EQ(StringUtils::rawToHuman((char)255), "ff");
  9. ASSERT_EQ(StringUtils::rawToHuman((char)127), "7f");
  10. ASSERT_EQ(StringUtils::rawToHuman((char)10), "0a");
  11. ASSERT_EQ(StringUtils::rawToHuman((char)0), "00");
  12. }
  13. TEST(StringUtils, rawToHumanShort)
  14. {
  15. ASSERT_EQ(StringUtils::rawToHuman((short)65535), "ffff");
  16. ASSERT_EQ(StringUtils::rawToHuman((short)65534), "fffe");
  17. ASSERT_EQ(StringUtils::rawToHuman((short)256), "0100");
  18. ASSERT_EQ(StringUtils::rawToHuman((short)255), "00ff");
  19. ASSERT_EQ(StringUtils::rawToHuman((short)127), "007f");
  20. ASSERT_EQ(StringUtils::rawToHuman((short)10), "000a");
  21. ASSERT_EQ(StringUtils::rawToHuman((short)0), "0000");
  22. }
  23. TEST(StringUtils, rawToHumanInt)
  24. {
  25. ASSERT_EQ(StringUtils::rawToHuman((int)4294967295), "ffffffff");
  26. ASSERT_EQ(StringUtils::rawToHuman((int)4294967294), "fffffffe");
  27. ASSERT_EQ(StringUtils::rawToHuman((int)65536), "00010000");
  28. ASSERT_EQ(StringUtils::rawToHuman((int)65535), "0000ffff");
  29. ASSERT_EQ(StringUtils::rawToHuman((int)65534), "0000fffe");
  30. ASSERT_EQ(StringUtils::rawToHuman((int)256), "00000100");
  31. ASSERT_EQ(StringUtils::rawToHuman((int)255), "000000ff");
  32. ASSERT_EQ(StringUtils::rawToHuman((int)127), "0000007f");
  33. ASSERT_EQ(StringUtils::rawToHuman((int)10), "0000000a");
  34. ASSERT_EQ(StringUtils::rawToHuman((int)0), "00000000");
  35. }
  36. TEST(StringUtils, rawToHumanLong)
  37. {
  38. ASSERT_EQ(StringUtils::rawToHuman((long)std::numeric_limits<unsigned long>::max()), "ffffffffffffffff");
  39. ASSERT_EQ(StringUtils::rawToHuman((long)std::numeric_limits<unsigned long>::max() - 1), "fffffffffffffffe");
  40. ASSERT_EQ(StringUtils::rawToHuman((long)4294967296), "0000000100000000");
  41. ASSERT_EQ(StringUtils::rawToHuman((long)4294967295), "00000000ffffffff");
  42. ASSERT_EQ(StringUtils::rawToHuman((long)4294967294), "00000000fffffffe");
  43. ASSERT_EQ(StringUtils::rawToHuman((long)65536), "0000000000010000");
  44. ASSERT_EQ(StringUtils::rawToHuman((long)65535), "000000000000ffff");
  45. ASSERT_EQ(StringUtils::rawToHuman((long)65534), "000000000000fffe");
  46. ASSERT_EQ(StringUtils::rawToHuman((long)256), "0000000000000100");
  47. ASSERT_EQ(StringUtils::rawToHuman((long)255), "00000000000000ff");
  48. ASSERT_EQ(StringUtils::rawToHuman((long)127), "000000000000007f");
  49. ASSERT_EQ(StringUtils::rawToHuman((long)10), "000000000000000a");
  50. ASSERT_EQ(StringUtils::rawToHuman((long)0), "0000000000000000");
  51. }
  52. TEST(StringUtils, rawToHumanString)
  53. {
  54. ASSERT_EQ(StringUtils::rawToHuman(std::string({0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
  55. 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f})),
  56. "000102030405060708090a0b0c0d0e0f");
  57. }
  58. TEST(StringUtils, toLower)
  59. {
  60. ASSERT_EQ(StringUtils::toLower('a'), 'a');
  61. ASSERT_EQ(StringUtils::toLower('z'), 'z');
  62. ASSERT_EQ(StringUtils::toLower('A'), 'a');
  63. ASSERT_EQ(StringUtils::toLower('Z'), 'z');
  64. ASSERT_EQ(StringUtils::toLower('1'), '1');
  65. ASSERT_EQ(StringUtils::toLower('@'), '@');
  66. }
  67. TEST(StringUtils, toUpper)
  68. {
  69. ASSERT_EQ(StringUtils::toUpper('a'), 'A');
  70. ASSERT_EQ(StringUtils::toUpper('z'), 'Z');
  71. ASSERT_EQ(StringUtils::toUpper('A'), 'A');
  72. ASSERT_EQ(StringUtils::toUpper('Z'), 'Z');
  73. ASSERT_EQ(StringUtils::toUpper('1'), '1');
  74. ASSERT_EQ(StringUtils::toUpper('@'), '@');
  75. }
  76. TEST(StringUtils, humanToRaw)
  77. {
  78. ASSERT_EQ(StringUtils::humanToRaw("0f00").getData(), std::string({0x0f, 0x00}));
  79. ASSERT_EQ(StringUtils::humanToRaw("000f").getData(), std::string({0x00, 0x0f}));
  80. ASSERT_EQ(StringUtils::humanToRaw("0a0a").getData(), std::string({0x0a, 0x0a}));
  81. ASSERT_EQ(StringUtils::humanToRaw("1a0f").getData(), std::string({0x1a, 0x0f}));
  82. ASSERT_EQ(StringUtils::humanToRaw("1a00f").getError(), "Malformed hex data: invalid length");
  83. ASSERT_EQ(StringUtils::humanToRaw("1a\n00f").getError(), "Malformed hex data at char 2");
  84. }
  85. int main(int argc, char* argv[])
  86. {
  87. std::cout << "LibNfc version: " << LibNfc::getVersion() << std::endl;
  88. ::testing::InitGoogleTest(&argc, argv);
  89. return RUN_ALL_TESTS();
  90. }