xref: /aosp_15_r20/tools/netsim/src/util/string_utils_test.cc (revision cf78ab8cffb8fc9207af348f23af247fb04370a6)
1*cf78ab8cSAndroid Build Coastguard Worker // Copyright 2022 The Android Open Source Project
2*cf78ab8cSAndroid Build Coastguard Worker //
3*cf78ab8cSAndroid Build Coastguard Worker // Licensed under the Apache License, Version 2.0 (the "License");
4*cf78ab8cSAndroid Build Coastguard Worker // you may not use this file except in compliance with the License.
5*cf78ab8cSAndroid Build Coastguard Worker // You may obtain a copy of the License at
6*cf78ab8cSAndroid Build Coastguard Worker //
7*cf78ab8cSAndroid Build Coastguard Worker //      http://www.apache.org/licenses/LICENSE-2.0
8*cf78ab8cSAndroid Build Coastguard Worker //
9*cf78ab8cSAndroid Build Coastguard Worker // Unless required by applicable law or agreed to in writing, software
10*cf78ab8cSAndroid Build Coastguard Worker // distributed under the License is distributed on an "AS IS" BASIS,
11*cf78ab8cSAndroid Build Coastguard Worker // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*cf78ab8cSAndroid Build Coastguard Worker // See the License for the specific language governing permissions and
13*cf78ab8cSAndroid Build Coastguard Worker // limitations under the License.
14*cf78ab8cSAndroid Build Coastguard Worker 
15*cf78ab8cSAndroid Build Coastguard Worker #include "util/string_utils.h"
16*cf78ab8cSAndroid Build Coastguard Worker 
17*cf78ab8cSAndroid Build Coastguard Worker #include <cstdint>
18*cf78ab8cSAndroid Build Coastguard Worker #include <string>
19*cf78ab8cSAndroid Build Coastguard Worker 
20*cf78ab8cSAndroid Build Coastguard Worker #include "gtest/gtest.h"
21*cf78ab8cSAndroid Build Coastguard Worker 
22*cf78ab8cSAndroid Build Coastguard Worker namespace netsim {
23*cf78ab8cSAndroid Build Coastguard Worker namespace stringutils {
24*cf78ab8cSAndroid Build Coastguard Worker namespace testing {
25*cf78ab8cSAndroid Build Coastguard Worker namespace {
26*cf78ab8cSAndroid Build Coastguard Worker 
TEST(StringUtilsTest,ToHexTest)27*cf78ab8cSAndroid Build Coastguard Worker TEST(StringUtilsTest, ToHexTest) {
28*cf78ab8cSAndroid Build Coastguard Worker   EXPECT_EQ(ToHexString(0x12), "0x12");
29*cf78ab8cSAndroid Build Coastguard Worker   EXPECT_EQ(ToHexString(0xBE, 0xEF), "0xBEEF");
30*cf78ab8cSAndroid Build Coastguard Worker   const std::vector<uint8_t> a = {0xDE, 0xAD, 0xBE, 0xEF};
31*cf78ab8cSAndroid Build Coastguard Worker   EXPECT_EQ(ToHexString(a, 8), "DE AD BE EF");
32*cf78ab8cSAndroid Build Coastguard Worker   EXPECT_EQ(ToHexString(a, 3), "DE AD BE");
33*cf78ab8cSAndroid Build Coastguard Worker }
34*cf78ab8cSAndroid Build Coastguard Worker 
TEST(StringUtilsTest,TrimTest)35*cf78ab8cSAndroid Build Coastguard Worker TEST(StringUtilsTest, TrimTest) {
36*cf78ab8cSAndroid Build Coastguard Worker   std::string s = "\n\tHello World  \r\n";
37*cf78ab8cSAndroid Build Coastguard Worker   std::string_view trimmed = Trim(s);
38*cf78ab8cSAndroid Build Coastguard Worker   EXPECT_EQ(trimmed, "Hello World");
39*cf78ab8cSAndroid Build Coastguard Worker }
40*cf78ab8cSAndroid Build Coastguard Worker 
TEST(StringUtilsTest,SplitTest)41*cf78ab8cSAndroid Build Coastguard Worker TEST(StringUtilsTest, SplitTest) {
42*cf78ab8cSAndroid Build Coastguard Worker   std::string s = "a=b=c=d==";
43*cf78ab8cSAndroid Build Coastguard Worker   auto r = Split(s, "=");
44*cf78ab8cSAndroid Build Coastguard Worker   EXPECT_EQ(r.size(), 4);
45*cf78ab8cSAndroid Build Coastguard Worker   EXPECT_EQ(r[0], "a");
46*cf78ab8cSAndroid Build Coastguard Worker }
47*cf78ab8cSAndroid Build Coastguard Worker 
TEST(StringUtilsTest,AsStringTest)48*cf78ab8cSAndroid Build Coastguard Worker TEST(StringUtilsTest, AsStringTest) {
49*cf78ab8cSAndroid Build Coastguard Worker   std::string str = "test-string";
50*cf78ab8cSAndroid Build Coastguard Worker   std::string_view sv = str;
51*cf78ab8cSAndroid Build Coastguard Worker   EXPECT_EQ(AsString(sv), str);
52*cf78ab8cSAndroid Build Coastguard Worker }
53*cf78ab8cSAndroid Build Coastguard Worker 
54*cf78ab8cSAndroid Build Coastguard Worker }  // namespace
55*cf78ab8cSAndroid Build Coastguard Worker }  // namespace testing
56*cf78ab8cSAndroid Build Coastguard Worker }  // namespace stringutils
57*cf78ab8cSAndroid Build Coastguard Worker }  // namespace netsim
58