blob: 83c492c29d65c0e9e453c7e6efa8336fd40b0c25 [file] [log] [blame]
tylerliuafb27a02020-10-06 17:20:06 -07001/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2/**
3 * Copyright (c) 2017-2020, Regents of the University of California.
4 *
5 * This file is part of ndncert, a certificate management system based on NDN.
6 *
7 * ndncert is free software: you can redistribute it and/or modify it under the terms
8 * of the GNU General Public License as published by the Free Software Foundation, either
9 * version 3 of the License, or (at your option) any later version.
10 *
11 * ndncert is distributed in the hope that it will be useful, but WITHOUT ANY
12 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
13 * PARTICULAR PURPOSE. See the GNU General Public License for more details.
14 *
15 * You should have received copies of the GNU General Public License along with
16 * ndncert, e.g., in COPYING.md file. If not, see <http://www.gnu.org/licenses/>.
17 *
18 * See AUTHORS.md for complete list of ndncert authors and contributors.
19 */
20
Zhiyi Zhang8683ec92020-10-07 18:18:35 -070021#include "name-assignments/assignment-random.hpp"
22#include "name-assignments/assignment-param.hpp"
23#include "name-assignments/assignment-hash.hpp"
tylerliuafb27a02020-10-06 17:20:06 -070024#include "test-common.hpp"
25
26namespace ndn {
27namespace ndncert {
28namespace tests {
29
30BOOST_AUTO_TEST_SUITE(TestNameAssignment)
31BOOST_AUTO_TEST_CASE(NameAssignmentRandom)
32{
Zhiyi Zhang8683ec92020-10-07 18:18:35 -070033 AssignmentRandom assignment;
34 BOOST_CHECK_EQUAL(assignment.assignName(std::vector<std::tuple<std::string, std::string>>()).size(), 1);
35 BOOST_CHECK_EQUAL(assignment.assignName(std::vector<std::tuple<std::string, std::string>>()).begin()->size(), 1);
tylerliuafb27a02020-10-06 17:20:06 -070036}
37
38BOOST_AUTO_TEST_CASE(NameAssignmentParam)
39{
Zhiyi Zhang8683ec92020-10-07 18:18:35 -070040 AssignmentParam assignment("/abc/xyz");
tylerliuafb27a02020-10-06 17:20:06 -070041 std::vector<std::tuple<std::string, std::string>> requirements;
42 requirements.emplace_back("abc", "123");
Zhiyi Zhang8683ec92020-10-07 18:18:35 -070043 BOOST_CHECK_EQUAL(assignment.assignName(requirements).size(), 0);
tylerliuafb27a02020-10-06 17:20:06 -070044 requirements.emplace_back("xyz", "789");
Zhiyi Zhang8683ec92020-10-07 18:18:35 -070045 BOOST_CHECK_EQUAL(assignment.assignName(requirements).size(), 1);
46 BOOST_CHECK_EQUAL(*assignment.assignName(requirements).begin(), Name("/123/789"));
tylerliuafb27a02020-10-06 17:20:06 -070047 requirements.emplace_back("fake", "456");
Zhiyi Zhang8683ec92020-10-07 18:18:35 -070048 BOOST_CHECK_EQUAL(assignment.assignName(requirements).size(), 1);
49 BOOST_CHECK_EQUAL(*assignment.assignName(requirements).begin(), Name("/123/789"));
tylerliuafb27a02020-10-06 17:20:06 -070050 requirements[1] = std::tuple<std::string, std::string>("xyz", "");
Zhiyi Zhang8683ec92020-10-07 18:18:35 -070051 BOOST_CHECK_EQUAL(assignment.assignName(requirements).size(), 0);
tylerliuafb27a02020-10-06 17:20:06 -070052}
53
54BOOST_AUTO_TEST_CASE(NameAssignmentHash)
55{
Zhiyi Zhang8683ec92020-10-07 18:18:35 -070056 AssignmentHash assignment("/abe/xyz");
tylerliuafb27a02020-10-06 17:20:06 -070057 std::vector<std::tuple<std::string, std::string>> requirements;
58 requirements.emplace_back("abc", "123");
Zhiyi Zhang8683ec92020-10-07 18:18:35 -070059 BOOST_CHECK_EQUAL(assignment.assignName(requirements).size(), 0);
tylerliuafb27a02020-10-06 17:20:06 -070060 requirements.emplace_back("xyz", "789");
Zhiyi Zhang8683ec92020-10-07 18:18:35 -070061 BOOST_CHECK_EQUAL(assignment.assignName(requirements).size(), 1);
62 BOOST_CHECK_EQUAL(assignment.assignName(requirements).begin()->size(), 1);
tylerliuafb27a02020-10-06 17:20:06 -070063 requirements.emplace_back("fake", "456");
Zhiyi Zhang8683ec92020-10-07 18:18:35 -070064 BOOST_CHECK_EQUAL(assignment.assignName(requirements).size(), 1);
65 BOOST_CHECK_EQUAL(assignment.assignName(requirements).begin()->size(), 1);
tylerliuafb27a02020-10-06 17:20:06 -070066 requirements[1] = std::tuple<std::string, std::string>("xyz", "");
Zhiyi Zhang8683ec92020-10-07 18:18:35 -070067 BOOST_CHECK_EQUAL(assignment.assignName(requirements).size(), 1);
68 BOOST_CHECK_EQUAL(assignment.assignName(requirements).begin()->size(), 1);
tylerliubcd83482020-10-07 14:45:28 -070069}
70
tylerliuafb27a02020-10-06 17:20:06 -070071BOOST_AUTO_TEST_SUITE_END()
72
73} // namespace tests
74} // namespace ndncert
75} // namespace ndn
76
77