Kaynağa Gözat

tests; begin string utils

develop
Robin Thoni 8 yıl önce
ebeveyn
işleme
0a7a74b071

+ 62
- 0
src/Business/StringUtils.cpp Dosyayı Görüntüle

@@ -0,0 +1,62 @@
1
+//
2
+// Created by robin on 6/20/16.
3
+//
4
+
5
+#include "StringUtils.h"
6
+
7
+const char* StringUtils::hex = "0123456789abcdef";
8
+
9
+std::string StringUtils::rawToHuman(unsigned char c)
10
+{
11
+    return std::string(1, hex[c >> 4]) + std::string(1, hex[c & 0x0f]);
12
+}
13
+
14
+std::string StringUtils::rawToHuman(char c)
15
+{
16
+    return rawToHuman((unsigned char)c);
17
+}
18
+
19
+std::string StringUtils::rawToHuman(unsigned short c)
20
+{
21
+    return rawToHuman((unsigned char)(c >> 8)) + rawToHuman((unsigned char)c);
22
+}
23
+
24
+std::string StringUtils::rawToHuman(short c)
25
+{
26
+    return rawToHuman((unsigned short)c);
27
+}
28
+
29
+std::string StringUtils::rawToHuman(unsigned int c)
30
+{
31
+    return  rawToHuman((unsigned short)(c >> 16)) + rawToHuman((unsigned short)c);
32
+}
33
+
34
+std::string StringUtils::rawToHuman(int c)
35
+{
36
+    return rawToHuman((unsigned int)c);
37
+}
38
+
39
+std::string StringUtils::rawToHuman(unsigned long c)
40
+{
41
+    return  rawToHuman((unsigned int)(c >> 32)) + rawToHuman((unsigned int)c);
42
+}
43
+
44
+std::string StringUtils::rawToHuman(long c)
45
+{
46
+    return rawToHuman((unsigned long)c);
47
+}
48
+
49
+std::string StringUtils::rawToHuman(std::string raw)
50
+{
51
+    std::string human;
52
+    for (size_t i = 0; i < raw.size(); ++i) {
53
+        human += rawToHuman(raw[i]);
54
+    }
55
+    return human;
56
+}
57
+
58
+ResultString StringUtils::humanToRaw(std::string human)
59
+{
60
+    std::string raw;
61
+    return ResultString::ok(raw);
62
+}

+ 31
- 0
src/Business/StringUtils.h Dosyayı Görüntüle

@@ -0,0 +1,31 @@
1
+//
2
+// Created by robin on 6/20/16.
3
+//
4
+
5
+#ifndef MIFARE_TOOLS_HEX_H
6
+#define MIFARE_TOOLS_HEX_H
7
+
8
+
9
+#include <string>
10
+#include <DBO/Result.h>
11
+
12
+class StringUtils
13
+{
14
+public:
15
+    static const char* hex;
16
+
17
+    static std::string rawToHuman(unsigned char c);
18
+    static std::string rawToHuman(char c);
19
+    static std::string rawToHuman(unsigned short c);
20
+    static std::string rawToHuman(short c);
21
+    static std::string rawToHuman(unsigned int c);
22
+    static std::string rawToHuman(int c);
23
+    static std::string rawToHuman(unsigned long c);
24
+    static std::string rawToHuman(long c);
25
+    static std::string rawToHuman(std::string raw);
26
+
27
+    static ResultString humanToRaw(std::string human);
28
+};
29
+
30
+
31
+#endif //MIFARE_TOOLS_HEX_H

+ 1
- 1
src/CMakeLists.txt Dosyayı Görüntüle

@@ -11,7 +11,7 @@ set(SOURCE_FILES
11 11
         Business/FreeFareDevice.h
12 12
         Business/FreeFareTag.cpp
13 13
         Business/FreeFareTag.h
14
-        )
14
+        Business/StringUtils.cpp Business/StringUtils.h)
15 15
 
16 16
 add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES})
17 17
 target_link_libraries(${PROJECT_NAME} ${LIBS})

+ 58
- 5
tests/test-main.cpp Dosyayı Görüntüle

@@ -2,15 +2,68 @@
2 2
 #include <string.h>
3 3
 #include <gtest/gtest.h>
4 4
 #include <Business/LibNfc.h>
5
+#include <Business/StringUtils.h>
5 6
 
6
-TEST(None, None)
7
+TEST(StringUtils, rawToHumanChar)
7 8
 {
8
-  ASSERT_TRUE(true);
9
+    ASSERT_EQ(StringUtils::rawToHuman((char)255), "ff");
10
+    ASSERT_EQ(StringUtils::rawToHuman((char)127), "7f");
11
+    ASSERT_EQ(StringUtils::rawToHuman((char)10), "0a");
12
+    ASSERT_EQ(StringUtils::rawToHuman((char)0), "00");
13
+}
14
+
15
+TEST(StringUtils, rawToHumanShort)
16
+{
17
+  ASSERT_EQ(StringUtils::rawToHuman((short)65535), "ffff");
18
+  ASSERT_EQ(StringUtils::rawToHuman((short)65534), "fffe");
19
+  ASSERT_EQ(StringUtils::rawToHuman((short)256), "0100");
20
+  ASSERT_EQ(StringUtils::rawToHuman((short)255), "00ff");
21
+  ASSERT_EQ(StringUtils::rawToHuman((short)127), "007f");
22
+  ASSERT_EQ(StringUtils::rawToHuman((short)10), "000a");
23
+  ASSERT_EQ(StringUtils::rawToHuman((short)0), "0000");
24
+}
25
+
26
+TEST(StringUtils, rawToHumanInt)
27
+{
28
+  ASSERT_EQ(StringUtils::rawToHuman((int)4294967295), "ffffffff");
29
+  ASSERT_EQ(StringUtils::rawToHuman((int)4294967294), "fffffffe");
30
+  ASSERT_EQ(StringUtils::rawToHuman((int)65536), "00010000");
31
+  ASSERT_EQ(StringUtils::rawToHuman((int)65535), "0000ffff");
32
+  ASSERT_EQ(StringUtils::rawToHuman((int)65534), "0000fffe");
33
+  ASSERT_EQ(StringUtils::rawToHuman((int)256), "00000100");
34
+  ASSERT_EQ(StringUtils::rawToHuman((int)255), "000000ff");
35
+  ASSERT_EQ(StringUtils::rawToHuman((int)127), "0000007f");
36
+  ASSERT_EQ(StringUtils::rawToHuman((int)10), "0000000a");
37
+  ASSERT_EQ(StringUtils::rawToHuman((int)0), "00000000");
38
+}
39
+
40
+TEST(StringUtils, rawToHumanLong)
41
+{
42
+  ASSERT_EQ(StringUtils::rawToHuman((long)std::numeric_limits<unsigned long>::max()), "ffffffffffffffff");
43
+  ASSERT_EQ(StringUtils::rawToHuman((long)std::numeric_limits<unsigned long>::max() - 1), "fffffffffffffffe");
44
+  ASSERT_EQ(StringUtils::rawToHuman((long)4294967296), "0000000100000000");
45
+  ASSERT_EQ(StringUtils::rawToHuman((long)4294967295), "00000000ffffffff");
46
+  ASSERT_EQ(StringUtils::rawToHuman((long)4294967294), "00000000fffffffe");
47
+  ASSERT_EQ(StringUtils::rawToHuman((long)65536), "0000000000010000");
48
+  ASSERT_EQ(StringUtils::rawToHuman((long)65535), "000000000000ffff");
49
+  ASSERT_EQ(StringUtils::rawToHuman((long)65534), "000000000000fffe");
50
+  ASSERT_EQ(StringUtils::rawToHuman((long)256), "0000000000000100");
51
+  ASSERT_EQ(StringUtils::rawToHuman((long)255), "00000000000000ff");
52
+  ASSERT_EQ(StringUtils::rawToHuman((long)127), "000000000000007f");
53
+  ASSERT_EQ(StringUtils::rawToHuman((long)10), "000000000000000a");
54
+  ASSERT_EQ(StringUtils::rawToHuman((long)0), "0000000000000000");
55
+}
56
+
57
+TEST(StringUtils, rawToHumanString)
58
+{
59
+  ASSERT_EQ(StringUtils::rawToHuman(std::string({0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
60
+                                                0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f})),
61
+            "000102030405060708090a0b0c0d0e0f");
9 62
 }
10 63
 
11 64
 int main(int argc, char* argv[])
12 65
 {
13
-  std::cout << "LibNfc version: " << LibNfc::getVersion() << std::endl;
14
-  ::testing::InitGoogleTest(&argc, argv);
15
-  return RUN_ALL_TESTS();
66
+    std::cout << "LibNfc version: " << LibNfc::getVersion() << std::endl;
67
+    ::testing::InitGoogleTest(&argc, argv);
68
+    return RUN_ALL_TESTS();
16 69
 }

Loading…
İptal
Kaydet