blob: ae898f78f9ff24779ded68ec0d1319641ad1a16a [file] [log] [blame]
Alexander Afanasyeveaf105c2014-01-30 17:40:24 -08001/**
2 * Copyright (C) 2013 Regents of the University of California.
3 * @author: Jeff Thompson <jefft0@remap.ucla.edu>
4 * See COPYING for copyright and distribution information.
5 */
6
Alexander Afanasyeveaf105c2014-01-30 17:40:24 -08007#include "management/control-response.hpp"
Wentao Shang4d5e1de2014-01-28 21:00:03 -08008#include "management/fib-management-options.hpp"
Alexander Afanasyeveaf105c2014-01-30 17:40:24 -08009
Wentao Shang4d5e1de2014-01-28 21:00:03 -080010#include <boost/test/unit_test.hpp>
Alexander Afanasyeveaf105c2014-01-30 17:40:24 -080011#include <boost/test/output_test_stream.hpp>
12
13using namespace std;
14
15namespace ndn {
16
17BOOST_AUTO_TEST_SUITE(TestNfdControl)
18
19const uint8_t TestControlResponse[] = {0x65, 0x17, 0x66, 0x02, 0x01, 0x94, 0x67, 0x11, 0x4e, 0x6f, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64};
20
Wentao Shang4d5e1de2014-01-28 21:00:03 -080021const uint8_t TestFibManagementOptions[] = {
22 0x68, 0x1e, 0x03, 0x16, 0x04, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x68,
23 0x6f, 0x73, 0x74, 0x04, 0x03, 0x72, 0x65, 0x67, 0x04, 0x04, 0x74, 0x65,
24 0x73, 0x74, 0x69, 0x01, 0x00, 0x6a, 0x01, 0x00
25};
26
27// ControlResponse
28
Alexander Afanasyeveaf105c2014-01-30 17:40:24 -080029BOOST_AUTO_TEST_CASE (ControlResponseEncode)
30{
31 ndn::ControlResponse controlResponse(404, "Nothing not found");
32 const Block &wire = controlResponse.wireEncode();
33
34 BOOST_REQUIRE_EQUAL_COLLECTIONS(TestControlResponse, TestControlResponse+sizeof(TestControlResponse),
35 wire.begin(), wire.end());
36}
37
38BOOST_AUTO_TEST_CASE (ControlResponseDecode)
39{
40 ndn::ControlResponse controlResponse;
41
42 BOOST_REQUIRE_NO_THROW(controlResponse.wireDecode(Block(TestControlResponse, sizeof(TestControlResponse))));
43
44 BOOST_REQUIRE_EQUAL(controlResponse.getCode(), 404);
45 BOOST_REQUIRE_EQUAL(controlResponse.getText(), "Nothing not found");
46}
47
Wentao Shang4d5e1de2014-01-28 21:00:03 -080048// FibManagementOptions
49
50BOOST_AUTO_TEST_CASE (FibManagementOptionsEncoding)
51{
52 Name n ("/localhost/reg/test");
53 FibManagementOptions opt;
54
55 opt.setName (n);
56 opt.setFaceId (0);
57 opt.setCost (0);
58
59 const ndn::Block& blk = opt.wireEncode ();
60
61 BOOST_REQUIRE_EQUAL_COLLECTIONS (TestFibManagementOptions,
62 TestFibManagementOptions + sizeof (TestFibManagementOptions),
63 blk.begin (), blk.end ());
64}
65
66BOOST_AUTO_TEST_CASE (FibManagementOptionsDecoding)
67{
68 Block blk (TestFibManagementOptions, sizeof (TestFibManagementOptions));
69 Name n ("/localhost/reg/test");
70 FibManagementOptions opt;
71
72 BOOST_REQUIRE_NO_THROW (opt.wireDecode (blk));
73
74 BOOST_CHECK_EQUAL (opt.getName (), n);
75 BOOST_CHECK_EQUAL (opt.getFaceId (), 0);
76 BOOST_CHECK_EQUAL (opt.getCost (), 0);
77}
78
79
Alexander Afanasyeveaf105c2014-01-30 17:40:24 -080080BOOST_AUTO_TEST_SUITE_END()
81
82} // namespace ndn