Blame unitTests/test_DateValue.cpp

Packit 01d647
#include "value.hpp"
Packit 01d647
Packit 01d647
#include "gtestwrapper.h"
Packit 01d647
Packit 01d647
using namespace Exiv2;
Packit 01d647
Packit 01d647
TEST(ADateValue, isDefaultConstructed)
Packit 01d647
{
Packit 01d647
    const DateValue dateValue;
Packit 01d647
    ASSERT_EQ(0, dateValue.getDate().year);
Packit 01d647
    ASSERT_EQ(0, dateValue.getDate().month);
Packit 01d647
    ASSERT_EQ(0, dateValue.getDate().day);
Packit 01d647
}
Packit 01d647
Packit 01d647
TEST(ADateValue, isConstructedWithArgs)
Packit 01d647
{
Packit 01d647
    const DateValue dateValue (2018, 4, 2);
Packit 01d647
    ASSERT_EQ(2018, dateValue.getDate().year);
Packit 01d647
    ASSERT_EQ(4, dateValue.getDate().month);
Packit 01d647
    ASSERT_EQ(2, dateValue.getDate().day);
Packit 01d647
}
Packit 01d647
Packit 01d647
Packit 01d647
TEST(ADateValue, readFromByteBufferWithExpectedSize)
Packit 01d647
{
Packit 01d647
    DateValue dateValue;
Packit 01d647
    const byte date[8] = {0x32, 0x30, 0x31, 0x38, 0x30, 0x34, 0x30, 0x32 }; // 20180402
Packit 01d647
    ASSERT_EQ(0, dateValue.read(date, 8));
Packit 01d647
    ASSERT_EQ(2018, dateValue.getDate().year);
Packit 01d647
    ASSERT_EQ(4, dateValue.getDate().month);
Packit 01d647
    ASSERT_EQ(2, dateValue.getDate().day);
Packit 01d647
}
Packit 01d647
Packit 01d647
TEST(ADateValue, doNotReadFromByteBufferWithoutExpectedSize)
Packit 01d647
{
Packit 01d647
    DateValue dateValue;
Packit 01d647
    const byte date[8] = {0x32, 0x30, 0x31, 0x38, 0x30, 0x34, 0x30, 0x32 }; // 20180402
Packit 01d647
    ASSERT_EQ(1, dateValue.read(date, 9));
Packit 01d647
}
Packit 01d647
Packit 01d647
TEST(ADateValue, doNotReadFromByteBufferWithExpectedSizeButNotCorrectContent)
Packit 01d647
{
Packit 01d647
    DateValue dateValue;
Packit 01d647
    const byte date[8] = {0x32, 0x30, 0x31, 0x38, 0x30, 0x34, 0x23, 0x23 }; // 201804##
Packit 01d647
    ASSERT_EQ(1, dateValue.read(date, 8));
Packit 01d647
}
Packit 01d647
Packit 01d647
Packit 01d647
TEST(ADateValue, readFromStringWithExpectedSize)
Packit 01d647
{
Packit 01d647
    DateValue dateValue;
Packit 01d647
    const std::string date ("2018-04-02");
Packit 01d647
    ASSERT_EQ(0, dateValue.read(date));
Packit 01d647
    ASSERT_EQ(2018, dateValue.getDate().year);
Packit 01d647
    ASSERT_EQ(4, dateValue.getDate().month);
Packit 01d647
    ASSERT_EQ(2, dateValue.getDate().day);
Packit 01d647
}
Packit 01d647
Packit 01d647
TEST(ADateValue, doNotReadFromStringWithoutExpectedSize)
Packit 01d647
{
Packit 01d647
    DateValue dateValue;
Packit 01d647
    const std::string date ("20180402");
Packit 01d647
    ASSERT_EQ(1, dateValue.read(date));
Packit 01d647
}
Packit 01d647
Packit 01d647
TEST(ADateValue, doNotReadFromStringWithExpectedSizeButNotCorrectContent)
Packit 01d647
{
Packit 01d647
    DateValue dateValue;
Packit 01d647
    const std::string date ("2018-aa-bb");
Packit 01d647
    ASSERT_EQ(1, dateValue.read(date));
Packit 01d647
}
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
TEST(ADateValue, copyToByteBuffer)
Packit 01d647
{
Packit 01d647
    const DateValue dateValue (2018, 4, 2);
Packit 01d647
    const byte expectedDate[8] = {0x32, 0x30, 0x31, 0x38, 0x30, 0x34, 0x30, 0x32 }; // 20180402
Packit 01d647
    byte buffer[8];
Packit 01d647
    ASSERT_EQ(8, dateValue.copy(buffer));
Packit 01d647
    for (int i = 0; i < 8; ++i) {
Packit 01d647
        ASSERT_EQ(expectedDate[i], buffer[i]);
Packit 01d647
    }
Packit 01d647
}