mgmt: make Uri and LocalUri required in faces/create success response
refs #3956
Change-Id: I62e924c12476aab0f7b7300ba8ff730ae72cbd73
diff --git a/tests/unit-tests/mgmt/nfd/control-command.t.cpp b/tests/unit-tests/mgmt/nfd/control-command.t.cpp
index ecabab2..72fe613 100644
--- a/tests/unit-tests/mgmt/nfd/control-command.t.cpp
+++ b/tests/unit-tests/mgmt/nfd/control-command.t.cpp
@@ -31,66 +31,75 @@
BOOST_AUTO_TEST_SUITE(Nfd)
BOOST_AUTO_TEST_SUITE(TestControlCommand)
-BOOST_AUTO_TEST_CASE(FaceCreate)
+BOOST_AUTO_TEST_CASE(FaceCreateRequest)
{
FaceCreateCommand command;
+ // good with required fields only
ControlParameters p1;
- p1.setUri("tcp4://192.0.2.1")
- .setFaceId(4);
- BOOST_CHECK_THROW(command.validateRequest(p1), ControlCommand::ArgumentError);
- BOOST_CHECK_THROW(command.validateResponse(p1), ControlCommand::ArgumentError);
+ p1.setUri("tcp4://192.0.2.1:6363");
+ BOOST_CHECK_NO_THROW(command.validateRequest(p1));
+ BOOST_CHECK(Name("/PREFIX/faces/create").isPrefixOf(command.getRequestName("/PREFIX", p1)));
- ControlParameters p2;
- p2.setName("ndn:/example");
- BOOST_CHECK_THROW(command.validateRequest(p2), ControlCommand::ArgumentError);
- BOOST_CHECK_THROW(command.validateResponse(p2), ControlCommand::ArgumentError);
-
- ControlParameters p3;
- p3.setUri("tcp4://192.0.2.1")
- .setFaceId(INVALID_FACE_ID);
- BOOST_CHECK_THROW(command.validateResponse(p3), ControlCommand::ArgumentError);
-
- ControlParameters p4;
- p4.setUri("tcp4://192.0.2.1")
- .setLocalUri("dev://eth0")
- .setFacePersistency(FACE_PERSISTENCY_PERSISTENT)
+ // good with optional fields
+ ControlParameters p2(p1);
+ p2.setLocalUri("tcp4://192.0.2.2:32114")
+ .setFacePersistency(FACE_PERSISTENCY_PERMANENT)
.setFlags(0x3)
.setMask(0x1);
- BOOST_CHECK_NO_THROW(command.validateRequest(p4));
+ BOOST_CHECK_NO_THROW(command.validateRequest(p1));
- ControlParameters p5;
- p5.setFaceId(27518)
+ // Uri is required
+ ControlParameters p3;
+ BOOST_CHECK_THROW(command.validateRequest(p3), ControlCommand::ArgumentError);
+
+ // Name is forbidden
+ ControlParameters p4(p1);
+ p4.setName("/example");
+ BOOST_CHECK_THROW(command.validateRequest(p4), ControlCommand::ArgumentError);
+
+ // Flags and Mask must be specified together
+ ControlParameters p5(p1);
+ p5.setFlags(0x3);
+ BOOST_CHECK_THROW(command.validateRequest(p5), ControlCommand::ArgumentError);
+
+ ControlParameters p6(p1);
+ p6.setMask(0x1);
+ BOOST_CHECK_THROW(command.validateRequest(p6), ControlCommand::ArgumentError);
+}
+
+BOOST_AUTO_TEST_CASE(FaceCreateResponse)
+{
+ FaceCreateCommand command;
+
+ // good
+ ControlParameters p1;
+ p1.setFaceId(3208)
.setUri("tcp4://192.0.2.1:6363")
.setLocalUri("tcp4://192.0.2.2:32114")
.setFacePersistency(FACE_PERSISTENCY_PERMANENT)
- .setFlags(0x1);
- BOOST_CHECK_THROW(command.validateRequest(p5), ControlCommand::ArgumentError);
- BOOST_CHECK_NO_THROW(command.validateResponse(p5));
+ .setFlags(0x3);
+ BOOST_CHECK_NO_THROW(command.validateResponse(p1));
- p4.unsetFacePersistency();
- BOOST_CHECK_NO_THROW(command.validateRequest(p4));
- command.applyDefaultsToRequest(p4);
- BOOST_REQUIRE(p4.hasFacePersistency());
- BOOST_CHECK_EQUAL(p4.getFacePersistency(), FACE_PERSISTENCY_PERSISTENT);
+ // Name is forbidden
+ ControlParameters p2(p1);
+ p2.setName("/example");
+ BOOST_CHECK_THROW(command.validateResponse(p2), ControlCommand::ArgumentError);
- ControlParameters p6;
- p6.setFaceId(4)
- .setUri("tcp4://192.0.2.1")
- .setFacePersistency(FACE_PERSISTENCY_PERSISTENT);
- BOOST_CHECK_NO_THROW(command.validateResponse(p6));
+ // Mask is forbidden
+ ControlParameters p3(p1);
+ p3.setMask(0x1);
+ BOOST_CHECK_THROW(command.validateResponse(p3), ControlCommand::ArgumentError);
- ControlParameters p7;
- p7.setUri("tcp4://192.0.2.1:6363");
- Name n7;
- BOOST_CHECK_NO_THROW(n7 = command.getRequestName("/PREFIX", p7));
- BOOST_CHECK(Name("ndn:/PREFIX/faces/create").isPrefixOf(n7));
+ // FaceId must be valid
+ ControlParameters p4(p1);
+ p4.setFaceId(INVALID_FACE_ID);
+ BOOST_CHECK_THROW(command.validateResponse(p4), ControlCommand::ArgumentError);
- ControlParameters p8;
- p8.setFaceId(5)
- .setFacePersistency(FACE_PERSISTENCY_PERMANENT)
- .setFlags(0x2);
- BOOST_CHECK_NO_THROW(command.validateResponse(p8));
+ // LocalUri is required
+ ControlParameters p5(p1);
+ p5.unsetLocalUri();
+ BOOST_CHECK_THROW(command.validateResponse(p5), ControlCommand::ArgumentError);
}
BOOST_AUTO_TEST_CASE(FaceUpdate)