-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathutils_test.cpp
128 lines (107 loc) · 4.3 KB
/
utils_test.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
/*!
* minter_tx.
* utils_test.cpp
*
* \date 2019
* \author Eduard Maximovich (edward.vstock@gmail.com)
* \link https://github.com/edwardstock
*/
#include <gtest/gtest.h>
#include <minter/tx/utils.h>
TEST(Utils, TestToBytesMNTCCharFixed) {
const char* c1 = "MNT";
auto res = minter::utils::to_bytes_fixed(c1, 10);
ASSERT_EQ(10, res.size());
ASSERT_EQ('M', res[0]);
ASSERT_EQ('N', res[1]);
ASSERT_EQ('T', res[2]);
ASSERT_EQ((uint8_t) 0x00, res[3]);
ASSERT_EQ((uint8_t) 0x00, res[9]);
}
TEST(Utils, TestToBytesMNTStringFixed) {
const std::string c1 = "MNT";
auto res = minter::utils::to_bytes_fixed(c1, 10);
ASSERT_EQ(10, res.size());
ASSERT_EQ('M', res[0]);
ASSERT_EQ('N', res[1]);
ASSERT_EQ('T', res[2]);
ASSERT_EQ((uint8_t) 0x00, res[3]);
ASSERT_EQ((uint8_t) 0x00, res[9]);
}
TEST(Utils, TestToBytesSPRTESTStringFixed) {
const std::string c1 = "SPRTEST";
auto res = minter::utils::to_bytes_fixed(c1, 10);
ASSERT_EQ(10, res.size());
ASSERT_EQ('S', res[0]);
ASSERT_EQ('P', res[1]);
ASSERT_EQ('R', res[2]);
ASSERT_EQ('T', res[3]);
ASSERT_EQ('E', res[4]);
ASSERT_EQ('S', res[5]);
ASSERT_EQ('T', res[6]);
ASSERT_EQ((uint8_t) 0x00, res[7]);
ASSERT_EQ((uint8_t) 0x00, res[9]);
}
TEST(Utils, SHA256) {
const char* expected = "61d034473102d7dac305902770471fd50f4c5b26f6831a56dd90b5184b3c30fc";
dev::bytes_data exp_data(expected);
const std::string val = "some string";
dev::bytes_data res = minter::utils::sha256(std::vector<uint8_t>(val.begin(), val.end()));
ASSERT_STREQ(expected, res.to_hex().c_str());
ASSERT_EQ(exp_data, res);
ASSERT_TRUE(exp_data == res);
}
TEST(Utils, Base64Web1) {
const std::string test = "hello";
const std::string result = "aGVsbG8";
dev::bytes_data encoded = dev::bytes_data::from_string_raw(test);
encoded.switch_map(minter::utils::to_base64_web);
ASSERT_STREQ(result.c_str(), encoded.to_string().c_str());
dev::bytes_data decoded = encoded.switch_map_c(minter::utils::from_base64_web);
ASSERT_STREQ(test.c_str(), decoded.to_string().c_str());
}
TEST(Utils, Base64Web2) {
const std::string test = "hellow";
const std::string result = "aGVsbG93";
dev::bytes_data encoded = dev::bytes_data::from_string_raw(test);
encoded.switch_map(minter::utils::to_base64_web);
ASSERT_STREQ(result.c_str(), encoded.to_string().c_str());
dev::bytes_data decoded = encoded.switch_map_c(minter::utils::from_base64_web);
ASSERT_STREQ(test.c_str(), decoded.to_string().c_str());
}
TEST(Utils, Base64Web3) {
const std::string test = "hellowo";
const std::string result = "aGVsbG93bw";
dev::bytes_data encoded = dev::bytes_data::from_string_raw(test);
encoded.switch_map(minter::utils::to_base64_web);
ASSERT_STREQ(result.c_str(), encoded.to_string().c_str());
dev::bytes_data decoded = encoded.switch_map_c(minter::utils::from_base64_web);
ASSERT_STREQ(test.c_str(), decoded.to_string().c_str());
}
TEST(Utils, Base64Web4) {
const std::string test = "hellowor";
const std::string result = "aGVsbG93b3I";
dev::bytes_data encoded = dev::bytes_data::from_string_raw(test);
encoded.switch_map(minter::utils::to_base64_web);
ASSERT_STREQ(result.c_str(), encoded.to_string().c_str());
dev::bytes_data decoded = encoded.switch_map_c(minter::utils::from_base64_web);
ASSERT_STREQ(test.c_str(), decoded.to_string().c_str());
}
TEST(Utils, Base64Web5) {
const std::string test = "helloworl";
const std::string result = "aGVsbG93b3Js";
dev::bytes_data encoded = dev::bytes_data::from_string_raw(test);
encoded.switch_map(minter::utils::to_base64_web);
ASSERT_STREQ(result.c_str(), encoded.to_string().c_str());
dev::bytes_data decoded = encoded.switch_map_c(minter::utils::from_base64_web);
ASSERT_STREQ(test.c_str(), decoded.to_string().c_str());
}
TEST(Utils, Base64Web6) {
const std::string test = "helloworld";
const std::string result = "aGVsbG93b3JsZA";
dev::bytes_data encoded = dev::bytes_data::from_string_raw(test);
encoded.switch_map(minter::utils::to_base64_web);
ASSERT_STREQ(result.c_str(), encoded.to_string().c_str());
dev::bytes_data decoded = encoded.switch_map_c(minter::utils::from_base64_web);
ASSERT_STREQ(test.c_str(), decoded.to_string().c_str());
}