Update DataType unit-tests 30/232730/2
authorKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Thu, 7 May 2020 09:18:02 +0000 (11:18 +0200)
committerKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Mon, 18 May 2020 12:31:25 +0000 (14:31 +0200)
Change-Id: I1a15e4fa665fc8be551eea23bb997bd4aa869c82

tests/test_data-type.cpp

index e420bde..0d2ec24 100644 (file)
 
 #include <ckm/ckm-type.h>
 #include <exception.h>
+#include <message-buffer.h>
 
-using CKM::DataType;
-using CKM::KeyType;
-using CKM::AlgoType;
+using namespace CKM;
 
 BOOST_AUTO_TEST_SUITE(DATA_TYPE_TEST)
 
 NEGATIVE_TEST_CASE(CONSTRUCTOR)
 {
-       BOOST_REQUIRE_THROW(DataType(static_cast<DataType::Type>(999)),
-                                               CKM::Exc::InputParam);
-       BOOST_REQUIRE_THROW(DataType(static_cast<KeyType>(999)),
-                                               CKM::Exc::InputParam);
+       BOOST_REQUIRE_THROW(DataType(KeyType::KEY_NONE), Exc::InputParam);
+       BOOST_REQUIRE_THROW(DataType(static_cast<KeyType>(static_cast<int>(KeyType::KEY_AES) + 1)),
+                                               Exc::InputParam);
+       BOOST_REQUIRE_THROW(DataType(static_cast<DataType::Type>(DataType::DB_FIRST - 1)),
+                                               Exc::InputParam);
+       BOOST_REQUIRE_THROW(DataType(static_cast<DataType::Type>(DataType::DB_LAST + 1)),
+                                               Exc::InputParam);
+}
+
+NEGATIVE_TEST_CASE(SERIALIZATION)
+{
+       MessageBuffer msg;
+       msg.Push(MessageBuffer::Serialize(static_cast<int>(DataType::DB_FIRST - 1)).Pop());
+       BOOST_REQUIRE_THROW(DataType{msg}, Exc::InputParam);
+       msg.Push(MessageBuffer::Serialize(static_cast<int>(DataType::DB_LAST + 1)).Pop());
+       BOOST_REQUIRE_THROW(DataType{msg}, Exc::InputParam);
+}
+
+POSITIVE_TEST_CASE(SERIALIZATION)
+{
+       auto checkSerialization = [](DataType::Type typeToCheck){
+               MessageBuffer msg;
+               DataType dt;
+
+               BOOST_REQUIRE_NO_THROW(DataType(typeToCheck).Serialize(msg));
+               msg.Push(msg.Pop());
+               BOOST_REQUIRE_NO_THROW(dt = DataType{msg});
+               BOOST_REQUIRE(dt == typeToCheck);
+       };
+
+       checkSerialization(DataType::DB_FIRST);
+       checkSerialization(DataType::DB_LAST);
 }
 
 POSITIVE_TEST_CASE(KEY_TYPE_CASTING)
@@ -108,6 +135,14 @@ POSITIVE_TEST_CASE(UNARY_OPERATIONS)
        BOOST_REQUIRE(!DataType(DataType::DB_CHAIN_FIRST).isKey());
        BOOST_REQUIRE(!DataType(DataType::CERTIFICATE).isKey());
        BOOST_REQUIRE(!DataType().isKey());
+
+       BOOST_REQUIRE(DataType(DataType::KEY_ECDSA_PRIVATE).isEllipticCurve());
+       BOOST_REQUIRE(DataType(DataType::KEY_ECDSA_PUBLIC).isEllipticCurve());
+       BOOST_REQUIRE(!DataType(DataType::KEY_DSA_PRIVATE).isEllipticCurve());
+       BOOST_REQUIRE(!DataType(DataType::KEY_DSA_PUBLIC).isEllipticCurve());
+       BOOST_REQUIRE(!DataType(DataType::KEY_RSA_PRIVATE).isEllipticCurve());
+       BOOST_REQUIRE(!DataType(DataType::KEY_DSA_PUBLIC).isEllipticCurve());
+       BOOST_REQUIRE(!DataType().isEllipticCurve());
 }
 
 POSITIVE_TEST_CASE(GET_CHAIN_TYPE)
@@ -125,7 +160,7 @@ NEGATIVE_TEST_CASE(GET_CHAIN_TYPE)
 {
        DataType type;
 
-       BOOST_REQUIRE_THROW(type.getChainDatatype(16), CKM::Exc::InputParam);
+       BOOST_REQUIRE_THROW(type.getChainDatatype(16), Exc::InputParam);
 }
 
 BOOST_AUTO_TEST_SUITE_END()