]>
Commit | Line | Data |
---|---|---|
24aa4519 FC |
1 | /* |
2 | * Copyright (C) 1996-2015 The Squid Software Foundation and contributors | |
3 | * | |
4 | * Squid software is distributed under GPLv2+ license and includes | |
5 | * contributions from numerous individuals and organizations. | |
6 | * Please see the COPYING and CONTRIBUTORS files for details. | |
7 | */ | |
8 | ||
9 | #include "squid.h" | |
10 | #include "base/LookupTable.h" | |
11 | #include "testLookupTable.h" | |
12 | #include "unitTestMain.h" | |
13 | ||
14 | CPPUNIT_TEST_SUITE_REGISTRATION( testLookupTable ); | |
15 | ||
16 | enum EnumData { | |
17 | ENUM_1, | |
18 | ENUM_2, | |
19 | ENUM_3, | |
20 | ENUM_4, | |
21 | ENUM_5, | |
22 | ENUM_6, | |
23 | ENUM_7, | |
24 | ENUM_INVALID | |
25 | }; | |
26 | ||
27 | static const LookupTable<EnumData>::Record tableData[] = { | |
28 | {"one", ENUM_1}, | |
29 | {"two", ENUM_2}, | |
30 | {"three", ENUM_3}, | |
31 | {"four", ENUM_4}, | |
32 | {"five", ENUM_5}, | |
33 | {"six", ENUM_6}, | |
34 | {"seven", ENUM_7}, | |
35 | {nullptr, ENUM_INVALID} | |
36 | }; | |
37 | ||
38 | void | |
39 | testLookupTable::testLookupTableLookup() | |
40 | { | |
41 | LookupTable<EnumData> lt(ENUM_INVALID, tableData); | |
42 | // element found | |
43 | CPPUNIT_ASSERT_EQUAL(lt.lookup(SBuf("one")), ENUM_1); | |
44 | CPPUNIT_ASSERT_EQUAL(lt.lookup(SBuf("two")), ENUM_2); | |
45 | CPPUNIT_ASSERT_EQUAL(lt.lookup(SBuf("three")), ENUM_3); | |
46 | CPPUNIT_ASSERT_EQUAL(lt.lookup(SBuf("four")), ENUM_4); | |
47 | CPPUNIT_ASSERT_EQUAL(lt.lookup(SBuf("five")), ENUM_5); | |
48 | CPPUNIT_ASSERT_EQUAL(lt.lookup(SBuf("six")), ENUM_6); | |
49 | CPPUNIT_ASSERT_EQUAL(lt.lookup(SBuf("seven")), ENUM_7); | |
50 | ||
51 | // element not found | |
52 | CPPUNIT_ASSERT_EQUAL(lt.lookup(SBuf("eleventy")), ENUM_INVALID); | |
53 | } |