More tests

This commit is contained in:
Luis Díaz Más 2022-01-10 18:47:47 +01:00
parent 15e8c75a38
commit 9b40f948eb
3 changed files with 76 additions and 3 deletions

View File

@ -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()
{

View File

@ -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());
}

View File

@ -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());
}
}