LCOV - code coverage report
Current view: top level - src/libs/tools/tests - testtool_comparison.cpp (source / functions) Hit Total Coverage
Test: coverage-filtered.info Lines: 50 50 100.0 %
Date: 2019-09-12 12:28:41 Functions: 20 38 52.6 %

          Line data    Source code
       1             : /**
       2             :  * @file
       3             :  *
       4             :  * @brief Tests for the comparison helper
       5             :  *
       6             :  * @copyright BSD License (see LICENSE.md or https://www.libelektra.org)
       7             :  *
       8             :  */
       9             : 
      10             : #include <gtest/gtest.h>
      11             : #include <helper/comparison.hpp>
      12             : 
      13             : using namespace kdb;
      14             : using namespace kdb::tools::helper;
      15             : 
      16          20 : TEST (KeyDataEqualTest, IsTrueForSameValuedKeys)
      17             : {
      18           4 :         Key k1 = Key ("user/test/config/key1", KEY_VALUE, "keyvalue", KEY_END);
      19           4 :         Key k2 = Key ("user/test/config/key2", KEY_VALUE, "keyvalue", KEY_END);
      20             : 
      21           6 :         EXPECT_TRUE (keyDataEqual (k1, k2));
      22           2 : }
      23             : 
      24          20 : TEST (KeyDataEqualTest, IsFalseForDifferentValuedKeys)
      25             : {
      26           4 :         Key k1 = Key ("user/test/config/key1", KEY_VALUE, "keyvalue1", KEY_END);
      27           4 :         Key k2 = Key ("user/test/config/key2", KEY_VALUE, "keyvalue2", KEY_END);
      28             : 
      29           6 :         EXPECT_FALSE (keyDataEqual (k1, k2));
      30           2 : }
      31             : 
      32          20 : TEST (KeyDataEqualTest, IsFalseForDifferentTypedKeys)
      33             : {
      34           4 :         Key k1 = Key ("user/test/config/key1", KEY_VALUE, "keyvalue1", KEY_END);
      35           4 :         Key k2 = Key ("user/test/config/key2", KEY_VALUE, "keyvalue1", KEY_BINARY, KEY_END);
      36             : 
      37           6 :         EXPECT_FALSE (keyDataEqual (k1, k2));
      38           2 : }
      39             : 
      40          20 : TEST (KeyDataEqualTest, HandlesNullKeys)
      41             : {
      42           4 :         Key k1 = Key ("user/test/config/key1", KEY_VALUE, "keyvalue1", KEY_END);
      43          16 :         Key nk = KeySet ().lookup ("invalid key");
      44             : 
      45           6 :         EXPECT_FALSE (keyDataEqual (k1, nk));
      46           6 :         EXPECT_FALSE (keyDataEqual (nk, k1));
      47           6 :         EXPECT_FALSE (keyDataEqual (nk, nk));
      48           2 : }
      49             : 
      50          20 : TEST (KeyMetaEqual, IsTrueForEmptyMeta)
      51             : {
      52           4 :         Key k1 = Key ("user/test/config/key1", KEY_VALUE, "keyvalue1", KEY_END);
      53           4 :         Key k2 = Key ("user/test/config/key2", KEY_VALUE, "keyvalue2", KEY_END);
      54             : 
      55           6 :         EXPECT_TRUE (keyMetaEqual (k1, k2));
      56           2 : }
      57             : 
      58          20 : TEST (KeyMetaEqual, IsTrueForEqualMeta)
      59             : {
      60           4 :         Key k1 = Key ("user/test/config/key1", KEY_VALUE, "keyvalue1", KEY_META, "testmeta", "testmetavalue1", KEY_END);
      61           4 :         Key k2 = Key ("user/test/config/key2", KEY_VALUE, "keyvalue1", KEY_META, "testmeta", "testmetavalue1", KEY_END);
      62             : 
      63           6 :         EXPECT_TRUE (keyMetaEqual (k1, k2));
      64           2 : }
      65             : 
      66          20 : TEST (KeyMetaEqual, IsFalseForDifferentMeta)
      67             : {
      68           4 :         Key k1 = Key ("user/test/config/key1", KEY_VALUE, "keyvalue1", KEY_META, "testmeta", "testmetavalue1", KEY_END);
      69           4 :         Key k2 = Key ("user/test/config/key2", KEY_VALUE, "keyvalue1", KEY_META, "testmeta", "testmetavalue2", KEY_END);
      70             : 
      71           6 :         EXPECT_FALSE (keyMetaEqual (k1, k2));
      72           2 : }
      73             : 
      74          20 : TEST (KeyMetaEqual, IsFalseForMissingMeta)
      75             : {
      76           4 :         Key k1 = Key ("user/test/config/key1", KEY_VALUE, "keyvalue1", KEY_META, "testmeta", "testmetavalue1", KEY_END);
      77           4 :         Key k2 = Key ("user/test/config/key2", KEY_VALUE, "keyvalue1", KEY_END);
      78             : 
      79           6 :         EXPECT_FALSE (keyMetaEqual (k1, k2));
      80           6 :         EXPECT_FALSE (keyMetaEqual (k2, k1));
      81           2 : }
      82             : 
      83          20 : TEST (KeyMetaEqual, HandlesNullKeys)
      84             : {
      85           4 :         Key k1 = Key ("user/test/config/key1", KEY_VALUE, "keyvalue1", KEY_END);
      86          16 :         Key nk = KeySet ().lookup ("invalid key");
      87             : 
      88           6 :         EXPECT_FALSE (keyMetaEqual (k1, nk));
      89           6 :         EXPECT_FALSE (keyMetaEqual (nk, k1));
      90           6 :         EXPECT_FALSE (keyMetaEqual (nk, nk));
      91           8 : }

Generated by: LCOV version 1.13