initial commit
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
#include "date_format.h"
|
||||
#include <gtest/gtest.h>
|
||||
#include <cstdlib>
|
||||
#include <ctime>
|
||||
|
||||
using namespace radiantwave::datetime;
|
||||
|
||||
class DateFormatTest : public ::testing::Test {
|
||||
protected:
|
||||
static void SetUpTestSuite() {
|
||||
setenv("TZ", "UTC", 1);
|
||||
tzset();
|
||||
}
|
||||
};
|
||||
|
||||
TEST_F(DateFormatTest, DefaultFormatConstant) {
|
||||
EXPECT_STREQ(DEFAULT_DATE_FORMAT, "%m/%d/%Y");
|
||||
}
|
||||
|
||||
TEST_F(DateFormatTest, FormatsKnownTimestamp) {
|
||||
std::tm tm = {};
|
||||
tm.tm_year = 2026 - 1900;
|
||||
tm.tm_mon = 8 - 1;
|
||||
tm.tm_mday = 4;
|
||||
tm.tm_hour = 14;
|
||||
tm.tm_min = 23;
|
||||
tm.tm_sec = 45;
|
||||
tm.tm_isdst = -1;
|
||||
time_t t = mktime(&tm);
|
||||
|
||||
ASSERT_NE(t, static_cast<time_t>(-1));
|
||||
EXPECT_EQ(formatDate(t, "%m/%d/%Y"), "08/04/2026");
|
||||
EXPECT_EQ(formatDate(t, "%d/%m/%Y"), "04/08/2026");
|
||||
EXPECT_EQ(formatDate(t, "%Y-%m-%d"), "2026-08-04");
|
||||
EXPECT_EQ(formatDate(t, "%m.%d.%Y"), "08.04.2026");
|
||||
EXPECT_EQ(formatDate(t, "%d.%m.%Y"), "04.08.2026");
|
||||
EXPECT_EQ(formatDate(t, "%B %d, %Y"), "August 04, 2026");
|
||||
EXPECT_EQ(formatDate(t, "%d %B %Y"), "04 August 2026");
|
||||
}
|
||||
|
||||
TEST_F(DateFormatTest, FormatsTime) {
|
||||
std::tm tm = {};
|
||||
tm.tm_year = 2026 - 1900;
|
||||
tm.tm_mon = 8 - 1;
|
||||
tm.tm_mday = 4;
|
||||
tm.tm_hour = 14;
|
||||
tm.tm_min = 23;
|
||||
tm.tm_sec = 45;
|
||||
tm.tm_isdst = -1;
|
||||
time_t t = mktime(&tm);
|
||||
|
||||
ASSERT_NE(t, static_cast<time_t>(-1));
|
||||
EXPECT_EQ(formatTime(t), "14:23:45");
|
||||
}
|
||||
|
||||
TEST_F(DateFormatTest, OptionsIncludeDefault) {
|
||||
auto options = getDateFormatOptions();
|
||||
ASSERT_FALSE(options.empty());
|
||||
EXPECT_EQ(options[0].pattern, std::string(DEFAULT_DATE_FORMAT));
|
||||
EXPECT_EQ(options[0].name, "Month/Day/Year");
|
||||
}
|
||||
Reference in New Issue
Block a user