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.
117 lines
2.7 KiB
C++
117 lines
2.7 KiB
C++
#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(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(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(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(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());
|
|
}
|