mgmt: declare cs/erase command
refs #4318
Change-Id: If34ba8d55a4d46d53f552f4edd748623d4c0e55e
diff --git a/tests/unit-tests/mgmt/nfd/control-command.t.cpp b/tests/unit-tests/mgmt/nfd/control-command.t.cpp
index 0cc3642..d76b67c 100644
--- a/tests/unit-tests/mgmt/nfd/control-command.t.cpp
+++ b/tests/unit-tests/mgmt/nfd/control-command.t.cpp
@@ -299,6 +299,69 @@
command.validateResponse(p3);
}
+BOOST_AUTO_TEST_CASE(CsEraseRequest)
+{
+ CsEraseCommand command;
+
+ // good no-limit request
+ ControlParameters p1;
+ p1.setName("/u4LYPNU8Q");
+ command.validateRequest(p1);
+ BOOST_CHECK(Name("/PREFIX/cs/erase").isPrefixOf(command.getRequestName("/PREFIX", p1)));
+
+ // good limit-entries request
+ ControlParameters p2;
+ p2.setName("/IMw1RaLF");
+ p2.setNCsEntries(177);
+ command.validateRequest(p2);
+
+ // bad request: zero entry
+ ControlParameters p3;
+ p3.setName("/ahMID1jcib");
+ p3.setNCsEntries(0);
+ BOOST_CHECK_THROW(command.validateRequest(p3), ControlCommand::ArgumentError);
+
+ // bad request: forbidden field
+ ControlParameters p4(p2);
+ p4.setCapacity(278);
+ BOOST_CHECK_THROW(command.validateRequest(p3), ControlCommand::ArgumentError);
+}
+
+BOOST_AUTO_TEST_CASE(CsEraseResponse)
+{
+ CsEraseCommand command;
+
+ // good normal response
+ ControlParameters p1;
+ p1.setName("/TwiIwCdR");
+ p1.setNCsEntries(1);
+ command.validateResponse(p1);
+
+ // good limit exceeded request
+ ControlParameters p2;
+ p2.setName("/NMsiy44pr");
+ p2.setCapacity(360);
+ p2.setNCsEntries(360);
+ command.validateResponse(p2);
+
+ // good zero-entry response
+ ControlParameters p3;
+ p3.setName("/5f1LRPh1L");
+ p3.setNCsEntries(0);
+ command.validateResponse(p3);
+
+ // bad request: missing NCsEntries
+ ControlParameters p4(p1);
+ p4.unsetNCsEntries();
+ BOOST_CHECK_THROW(command.validateResponse(p4), ControlCommand::ArgumentError);
+
+ // bad request: zero capacity
+ ControlParameters p5(p1);
+ p5.setCapacity(0);
+ BOOST_CHECK_THROW(command.validateResponse(p5), ControlCommand::ArgumentError);
+
+}
+
BOOST_AUTO_TEST_CASE(StrategyChoiceSet)
{
StrategyChoiceSetCommand command;
diff --git a/tests/unit-tests/mgmt/nfd/control-parameters.t.cpp b/tests/unit-tests/mgmt/nfd/control-parameters.t.cpp
index 80e8134..14be320 100644
--- a/tests/unit-tests/mgmt/nfd/control-parameters.t.cpp
+++ b/tests/unit-tests/mgmt/nfd/control-parameters.t.cpp
@@ -43,6 +43,7 @@
BOOST_CHECK_EQUAL(decoded.hasOrigin(), false);
BOOST_CHECK_EQUAL(decoded.hasCost(), false);
BOOST_CHECK_EQUAL(decoded.hasCapacity(), false);
+ BOOST_CHECK_EQUAL(decoded.hasNCsEntries(), false);
BOOST_CHECK_EQUAL(decoded.hasFlags(), false);
BOOST_CHECK_EQUAL(decoded.hasMask(), false);
BOOST_CHECK_EQUAL(decoded.hasStrategy(), false);
@@ -56,6 +57,7 @@
input.setOrigin(ROUTE_ORIGIN_NLSR);
input.setCost(1388);
input.setCapacity(2632);
+ input.setNCsEntries(3100);
input.setFlags(0xAFC4);
input.setMask(0xF7A1);
input.setStrategy("/strategy-name");
@@ -70,6 +72,7 @@
BOOST_CHECK_EQUAL(decoded.hasOrigin(), true);
BOOST_CHECK_EQUAL(decoded.hasCost(), true);
BOOST_CHECK_EQUAL(decoded.hasCapacity(), true);
+ BOOST_CHECK_EQUAL(decoded.hasNCsEntries(), true);
BOOST_CHECK_EQUAL(decoded.hasFlags(), true);
BOOST_CHECK_EQUAL(decoded.hasMask(), true);
BOOST_CHECK_EQUAL(decoded.hasStrategy(), true);
@@ -83,6 +86,7 @@
BOOST_CHECK_EQUAL(decoded.getOrigin(), ROUTE_ORIGIN_NLSR);
BOOST_CHECK_EQUAL(decoded.getCost(), 1388);
BOOST_CHECK_EQUAL(decoded.getCapacity(), 2632);
+ BOOST_CHECK_EQUAL(decoded.getNCsEntries(), 3100);
BOOST_CHECK_EQUAL(decoded.getFlags(), 0xAFC4);
BOOST_CHECK_EQUAL(decoded.getMask(), 0xF7A1);
BOOST_CHECK_EQUAL(decoded.getStrategy(), "/strategy-name");
@@ -96,6 +100,7 @@
input.unsetOrigin();
input.unsetCost();
input.unsetCapacity();
+ input.unsetNCsEntries();
input.unsetFlags();
input.unsetMask();
input.unsetStrategy();
@@ -108,6 +113,7 @@
BOOST_CHECK_EQUAL(input.hasOrigin(), false);
BOOST_CHECK_EQUAL(input.hasCost(), false);
BOOST_CHECK_EQUAL(input.hasCapacity(), false);
+ BOOST_CHECK_EQUAL(input.hasNCsEntries(), false);
BOOST_CHECK_EQUAL(input.hasFlags(), false);
BOOST_CHECK_EQUAL(input.hasMask(), false);
BOOST_CHECK_EQUAL(input.hasStrategy(), false);