| // Copyright (c) 2012 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "wimax_manager/utility.h" |
| |
| #include <base/stl_util.h> |
| #include <gtest/gtest.h> |
| |
| using std::map; |
| using std::set; |
| |
| namespace wimax_manager { |
| |
| class UtilityTest : public testing::Test { |
| }; |
| |
| TEST_F(UtilityTest, GetKeysOfMapWithEmptyMap) { |
| map<int, char> empty_map; |
| set<int> keys = GetKeysOfMap(empty_map); |
| EXPECT_TRUE(keys.empty()); |
| } |
| |
| TEST_F(UtilityTest, GetKeysOfMap) { |
| map<int, char> test_map; |
| test_map[2] = 'b'; |
| test_map[1] = 'a'; |
| test_map[3] = 'c'; |
| |
| set<int> keys = GetKeysOfMap(test_map); |
| EXPECT_EQ(3, keys.size()); |
| EXPECT_TRUE(ContainsKey(keys, 1)); |
| EXPECT_TRUE(ContainsKey(keys, 2)); |
| EXPECT_TRUE(ContainsKey(keys, 3)); |
| EXPECT_FALSE(ContainsKey(keys, 4)); |
| } |
| |
| TEST_F(UtilityTest, RemoveKeysFromMapWithEmptySetOfKeys) { |
| set<int> keys_to_remove; |
| map<int, char> test_map; |
| test_map[2] = 'b'; |
| test_map[1] = 'a'; |
| test_map[3] = 'c'; |
| |
| RemoveKeysFromMap(&test_map, keys_to_remove); |
| EXPECT_EQ(3, test_map.size()); |
| EXPECT_EQ('a', test_map[1]); |
| EXPECT_EQ('b', test_map[2]); |
| EXPECT_EQ('c', test_map[3]); |
| } |
| |
| TEST_F(UtilityTest, RemoveKeysFromMapWithEmptyMap) { |
| set<int> keys_to_remove; |
| keys_to_remove.insert(1); |
| keys_to_remove.insert(4); |
| |
| map<int, char> test_map; |
| RemoveKeysFromMap(&test_map, keys_to_remove); |
| EXPECT_TRUE(test_map.empty()); |
| } |
| |
| TEST_F(UtilityTest, RemoveKeysFromMap) { |
| set<int> keys_to_remove; |
| keys_to_remove.insert(1); |
| keys_to_remove.insert(4); |
| |
| map<int, char> test_map; |
| test_map[2] = 'b'; |
| test_map[1] = 'a'; |
| test_map[3] = 'c'; |
| |
| RemoveKeysFromMap(&test_map, keys_to_remove); |
| EXPECT_EQ(2, test_map.size()); |
| EXPECT_FALSE(ContainsKey(test_map, 1)); |
| EXPECT_FALSE(ContainsKey(test_map, 4)); |
| EXPECT_EQ('b', test_map[2]); |
| EXPECT_EQ('c', test_map[3]); |
| } |
| |
| } // namespace wimax_manager |