From 9b40f948eb7137c928f10419df5cb3ef5290cbd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20D=C3=ADaz=20M=C3=A1s?= Date: Mon, 10 Jan 2022 18:47:47 +0100 Subject: [PATCH] More tests --- src/datasets.cpp | 3 +- unitTests/test_IptcKey.cpp | 72 +++++++++++++++++++++++++++++++++++++ unitTests/test_datasets.cpp | 4 +-- 3 files changed, 76 insertions(+), 3 deletions(-) diff --git a/src/datasets.cpp b/src/datasets.cpp index 556b0963..f7c6dfb4 100644 --- a/src/datasets.cpp +++ b/src/datasets.cpp @@ -620,6 +620,7 @@ namespace Exiv2 { void IptcKey::decomposeKey() { + /// \todo Use regex to check the expected format. Then process the 3 expected chunks // Get the family name, record name and dataSet name parts of the key std::string::size_type pos1 = key_.find('.'); if (pos1 == std::string::npos) @@ -654,7 +655,7 @@ namespace Exiv2 { tag_ = dataSet; record_ = recId; key_ = familyName + "." + recordName + "." + dataSetName; - } // IptcKey::decomposeKey + } void IptcKey::makeKey() { diff --git a/unitTests/test_IptcKey.cpp b/unitTests/test_IptcKey.cpp index e720a726..2b12536c 100644 --- a/unitTests/test_IptcKey.cpp +++ b/unitTests/test_IptcKey.cpp @@ -38,7 +38,79 @@ TEST(IptcKey, creationWithNonValidDatasetNameThrows) } } +TEST(IptcKey, creationWithNonValidFamiltyNameThrows) +{ + try { + IptcKey key("JOJO.Envelope.WrongDataset"); + FAIL(); + } catch (const Exiv2::Error& e) { + ASSERT_EQ(kerInvalidKey, e.code()); + ASSERT_STREQ("Invalid key 'JOJO.Envelope.WrongDataset'", e.what()); + } +} + TEST(IptcKey, creationWithValidStringDoesNotThrow) { ASSERT_NO_THROW(IptcKey ("Iptc.Envelope.ModelVersion")); } + +TEST(IptcKey, copyConstructor) +{ + IptcKey key ("Iptc.Envelope.ModelVersion"); + IptcKey keyCopy (key); +} + +TEST(IptcKey, clone) +{ + IptcKey key ("Iptc.Envelope.ModelVersion"); + auto keyClone = key.clone(); + ASSERT_EQ("Iptc.Envelope.ModelVersion", keyClone->key()); +} + +TEST(IptcKey, keyReturnsTheFullString) +{ + IptcKey key ("Iptc.Envelope.ModelVersion"); + ASSERT_EQ("Iptc.Envelope.ModelVersion", key.key()); +} + +TEST(IptcKey, familyNameReturnsTheFullString) +{ + IptcKey key ("Iptc.Envelope.ModelVersion"); + ASSERT_STREQ("Iptc", key.familyName()); +} + +TEST(IptcKey, groupNameReturnsTheRecordName) +{ + IptcKey key ("Iptc.Envelope.ModelVersion"); + ASSERT_EQ("Envelope", key.groupName()); +} + +TEST(IptcKey, recordNameReturnsTheRecordName) +{ + IptcKey key ("Iptc.Envelope.ModelVersion"); + ASSERT_EQ("Envelope", key.recordName()); +} + +TEST(IptcKey, tagNameReturnsTheDatasetName) +{ + IptcKey key ("Iptc.Envelope.ModelVersion"); + ASSERT_EQ("ModelVersion", key.tagName()); +} + +TEST(IptcKey, tagLabelReturnsTheDatasetTitle) +{ + IptcKey key ("Iptc.Envelope.ModelVersion"); + ASSERT_EQ("Model Version", key.tagLabel()); +} + +TEST(IptcKey, tag) +{ + IptcKey key ("Iptc.Envelope.ModelVersion"); + ASSERT_EQ(IptcDataSets::ModelVersion, key.tag()); +} + +TEST(IptcKey, record) +{ + IptcKey key ("Iptc.Envelope.ModelVersion"); + ASSERT_EQ(IptcDataSets::envelope, key.record()); +} diff --git a/unitTests/test_datasets.cpp b/unitTests/test_datasets.cpp index 0f755068..6eb9588b 100644 --- a/unitTests/test_datasets.cpp +++ b/unitTests/test_datasets.cpp @@ -147,7 +147,7 @@ TEST(IptcDataSets, dataSet_throwWithNonExistingDatasetName) FAIL(); } catch (const Exiv2::Error& e) { ASSERT_EQ(kerInvalidDataset, e.code()); - ASSERT_STREQ("Invalid dataset name `NonExistingName'", e.what()); + ASSERT_STREQ("Invalid dataset name 'NonExistingName'", e.what()); } } @@ -159,7 +159,7 @@ TEST(IptcDataSets, dataSet_throwWithNonExistingRecordId) FAIL(); } catch (const Exiv2::Error& e) { ASSERT_EQ(kerInvalidDataset, e.code()); - ASSERT_STREQ("Invalid dataset name `ModelVersion'", e.what()); + ASSERT_STREQ("Invalid dataset name 'ModelVersion'", e.what()); } }