security: string representation for SigningInfo
Change-Id: I92b227a0d0cb89654536043f703cea9e7b40fa64
refs: #3281
diff --git a/tests/unit-tests/security/signing-info.t.cpp b/tests/unit-tests/security/signing-info.t.cpp
index d3311be..2481747 100644
--- a/tests/unit-tests/security/signing-info.t.cpp
+++ b/tests/unit-tests/security/signing-info.t.cpp
@@ -20,6 +20,10 @@
*/
#include "security/signing-info.hpp"
+#include "security/key-chain.hpp"
+
+#include <sstream>
+#include <boost/lexical_cast.hpp>
#include "boost-test.hpp"
@@ -31,9 +35,9 @@
BOOST_AUTO_TEST_CASE(Basic)
{
- Name id("/id");
- Name key("/key");
- Name cert("/cert");
+ Name id("/my-identity");
+ Name key("/my-key");
+ Name cert("/my-cert");
SigningInfo info;
@@ -93,6 +97,47 @@
BOOST_CHECK(info2.getSignatureInfo() == si);
}
+BOOST_AUTO_TEST_CASE(FromString)
+{
+ SigningInfo infoDefault("");
+ BOOST_CHECK_EQUAL(infoDefault.getSignerType(), SigningInfo::SIGNER_TYPE_NULL);
+ BOOST_CHECK_EQUAL(infoDefault.getSignerName(), SigningInfo::EMPTY_NAME);
+
+ SigningInfo infoId("id:/my-identity");
+ BOOST_CHECK_EQUAL(infoId.getSignerType(), SigningInfo::SIGNER_TYPE_ID);
+ BOOST_CHECK_EQUAL(infoId.getSignerName(), "/my-identity");
+
+ SigningInfo infoKey("key:/my-key");
+ BOOST_CHECK_EQUAL(infoKey.getSignerType(), SigningInfo::SIGNER_TYPE_KEY);
+ BOOST_CHECK_EQUAL(infoKey.getSignerName(), "/my-key");
+
+ SigningInfo infoCert("cert:/my-cert");
+ BOOST_CHECK_EQUAL(infoCert.getSignerType(), SigningInfo::SIGNER_TYPE_CERT);
+ BOOST_CHECK_EQUAL(infoCert.getSignerName(), "/my-cert");
+
+ SigningInfo infoSha("id:/localhost/identity/digest-sha256");
+ BOOST_CHECK_EQUAL(infoSha.getSignerType(), SigningInfo::SIGNER_TYPE_SHA256);
+ BOOST_CHECK_EQUAL(infoSha.getSignerName(), SigningInfo::EMPTY_NAME);
+}
+
+BOOST_AUTO_TEST_CASE(ToString)
+{
+ // We can't use lexical_cast due to Boost Bug 6298.
+ std::stringstream ss;
+ ss << SigningInfo();
+ BOOST_CHECK_EQUAL(ss.str(), "");
+
+ BOOST_CHECK_EQUAL(boost::lexical_cast<std::string>(
+ SigningInfo(SigningInfo::SIGNER_TYPE_ID, "/my-identity")), "id:/my-identity");
+ BOOST_CHECK_EQUAL(boost::lexical_cast<std::string>(
+ SigningInfo(SigningInfo::SIGNER_TYPE_KEY, "/my-key")), "key:/my-key");
+ BOOST_CHECK_EQUAL(boost::lexical_cast<std::string>(
+ SigningInfo(SigningInfo::SIGNER_TYPE_CERT, "/my-cert")), "cert:/my-cert");
+ BOOST_CHECK_EQUAL(boost::lexical_cast<std::string>(
+ SigningInfo(SigningInfo::SIGNER_TYPE_SHA256)),
+ "id:/localhost/identity/digest-sha256");
+}
+
BOOST_AUTO_TEST_SUITE_END()
} // namespace tests