You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
exiv2/unitTests/test_IptcKey.cpp

104 lines
2.7 KiB
C++

// SPDX-License-Identifier: GPL-2.0-or-later
#include <gtest/gtest.h>
#include <exiv2/datasets.hpp>
#include <exiv2/error.hpp>
using namespace Exiv2;
TEST(IptcKey, creationWithNonValidStringFormatThrows) {
try {
IptcKey key("Yeah");
FAIL();
} catch (const Exiv2::Error& e) {
ASSERT_EQ(ErrorCode::kerInvalidKey, e.code());
ASSERT_STREQ("Invalid key 'Yeah'", e.what());
}
}
TEST(IptcKey, creationWithNonValidRecordNameThrows) {
try {
IptcKey key("Iptc.WrongRecordName.ModelVersion");
FAIL();
} catch (const Exiv2::Error& e) {
ASSERT_EQ(ErrorCode::kerInvalidRecord, e.code());
ASSERT_STREQ("Invalid record name 'WrongRecordName'", e.what());
}
}
TEST(IptcKey, creationWithNonValidDatasetNameThrows) {
try {
IptcKey key("Iptc.Envelope.WrongDataset");
FAIL();
} catch (const Exiv2::Error& e) {
ASSERT_EQ(ErrorCode::kerInvalidDataset, e.code());
ASSERT_STREQ("Invalid dataset name 'WrongDataset'", e.what());
}
}
TEST(IptcKey, creationWithNonValidFamiltyNameThrows) {
try {
IptcKey key("JOJO.Envelope.WrongDataset");
FAIL();
} catch (const Exiv2::Error& e) {
ASSERT_EQ(ErrorCode::kerInvalidKey, e.code());
ASSERT_STREQ("Invalid key 'JOJO.Envelope.WrongDataset'", e.what());
}
3 years ago
}
TEST(IptcKey, creationWithValidStringDoesNotThrow) {
ASSERT_NO_THROW(IptcKey("Iptc.Envelope.ModelVersion"));
}
3 years ago
TEST(IptcKey, copyConstructor) {
IptcKey key("Iptc.Envelope.ModelVersion");
IptcKey keyCopy(key);
3 years ago
}
TEST(IptcKey, clone) {
IptcKey key("Iptc.Envelope.ModelVersion");
auto keyClone = key.clone();
ASSERT_EQ("Iptc.Envelope.ModelVersion", keyClone->key());
3 years ago
}
TEST(IptcKey, keyReturnsTheFullString) {
IptcKey key("Iptc.Envelope.ModelVersion");
ASSERT_EQ("Iptc.Envelope.ModelVersion", key.key());
3 years ago
}
TEST(IptcKey, familyNameReturnsTheFullString) {
IptcKey key("Iptc.Envelope.ModelVersion");
ASSERT_STREQ("Iptc", key.familyName());
3 years ago
}
TEST(IptcKey, groupNameReturnsTheRecordName) {
IptcKey key("Iptc.Envelope.ModelVersion");
ASSERT_EQ("Envelope", key.groupName());
3 years ago
}
TEST(IptcKey, recordNameReturnsTheRecordName) {
IptcKey key("Iptc.Envelope.ModelVersion");
ASSERT_EQ("Envelope", key.recordName());
3 years ago
}
TEST(IptcKey, tagNameReturnsTheDatasetName) {
IptcKey key("Iptc.Envelope.ModelVersion");
ASSERT_EQ("ModelVersion", key.tagName());
3 years ago
}
TEST(IptcKey, tagLabelReturnsTheDatasetTitle) {
IptcKey key("Iptc.Envelope.ModelVersion");
ASSERT_EQ("Model Version", key.tagLabel());
3 years ago
}
TEST(IptcKey, tag) {
IptcKey key("Iptc.Envelope.ModelVersion");
ASSERT_EQ(IptcDataSets::ModelVersion, key.tag());
3 years ago
}
TEST(IptcKey, record) {
IptcKey key("Iptc.Envelope.ModelVersion");
ASSERT_EQ(IptcDataSets::envelope, key.record());
3 years ago
}