https://issues.apache.org/jira/browse/AMQCPP-585
Fix and test.
(cherry picked from commit 6ddd619bae81215822c7aec3b2469ed6ec894473)
diff --git a/activemq-cpp/src/main/decaf/util/Date.cpp b/activemq-cpp/src/main/decaf/util/Date.cpp
index f46ec25..616bba1 100644
--- a/activemq-cpp/src/main/decaf/util/Date.cpp
+++ b/activemq-cpp/src/main/decaf/util/Date.cpp
@@ -29,15 +29,15 @@
using namespace decaf::lang::exceptions;
////////////////////////////////////////////////////////////////////////////////
-Date::Date() : time( System::currentTimeMillis() ) {
+Date::Date() : time(System::currentTimeMillis()) {
}
////////////////////////////////////////////////////////////////////////////////
-Date::Date( long long milliseconds ) : time(milliseconds) {
+Date::Date(long long milliseconds) : time(milliseconds) {
}
////////////////////////////////////////////////////////////////////////////////
-Date::Date( const Date& source ) : time(0) {
+Date::Date(const Date& source) : time(0) {
(*this) = source;
}
@@ -51,37 +51,37 @@
}
////////////////////////////////////////////////////////////////////////////////
-void Date::setTime( long long milliseconds ){
+void Date::setTime(long long milliseconds){
this->time = milliseconds;
}
////////////////////////////////////////////////////////////////////////////////
-bool Date::after( const Date& when ) const {
+bool Date::after(const Date& when) const {
return time > when.time;
}
////////////////////////////////////////////////////////////////////////////////
-bool Date::before( const Date& when ) const {
+bool Date::before(const Date& when) const {
return time < when.time;
}
////////////////////////////////////////////////////////////////////////////////
-Date& Date::operator= ( const Date& source ) {
+Date& Date::operator= (const Date& source) {
this->time = source.time;
return *this;
}
////////////////////////////////////////////////////////////////////////////////
-bool Date::equals( const Date& when ) const {
+bool Date::equals(const Date& when) const {
return time == when.time;
}
////////////////////////////////////////////////////////////////////////////////
-int Date::compareTo( const Date& value ) const {
+int Date::compareTo(const Date& value) const {
- if( this->time < value.time ) {
+ if (this->time < value.time) {
return -1;
- } else if( this->time > value.time ) {
+ } else if (this->time > value.time) {
return 1;
}
@@ -89,32 +89,32 @@
}
////////////////////////////////////////////////////////////////////////////////
-bool Date::operator==( const Date& value ) const {
- return ( this->time == value.time );
+bool Date::operator==(const Date& value) const {
+ return (this->time == value.time);
}
////////////////////////////////////////////////////////////////////////////////
-bool Date::operator<( const Date& value ) const {
- return ( this->time < value.time );
+bool Date::operator<(const Date& value) const {
+ return (this->time < value.time);
}
////////////////////////////////////////////////////////////////////////////////
std::string Date::toString() const {
apr_time_exp_t exploded;
- char buffer[80] = {0};
+ char buffer[80] = { 0 };
apr_size_t resultSize = 0;
// dow mon dd hh:mm:ss zzz yyyy
static char format[] = "%a %b %d %T %Z %Y";
// Explode time to local time.
- if( apr_time_exp_lt( &exploded, this->time ) != APR_SUCCESS ) {
+ if (apr_time_exp_lt(&exploded, this->time * 1000) != APR_SUCCESS) {
return "";
}
// Now format the exploded time into our desired format.
- if( apr_strftime( &buffer[0], &resultSize, sizeof(buffer) / sizeof(char), format, &exploded ) != APR_SUCCESS ) {
+ if (apr_strftime(&buffer[0], &resultSize, sizeof(buffer) / sizeof(char), format, &exploded) != APR_SUCCESS) {
return "";
}
diff --git a/activemq-cpp/src/main/decaf/util/Date.h b/activemq-cpp/src/main/decaf/util/Date.h
index edb57b7..84fe133 100644
--- a/activemq-cpp/src/main/decaf/util/Date.h
+++ b/activemq-cpp/src/main/decaf/util/Date.h
@@ -22,8 +22,8 @@
#include <decaf/lang/Comparable.h>
#include <string>
-namespace decaf{
-namespace util{
+namespace decaf {
+namespace util {
/**
* Wrapper class around a time value in milliseconds. This
@@ -35,7 +35,7 @@
private:
/**
- * The underlying time value in milliseconds�
+ * The underlying time value in milliseconds
*/
long long time;
diff --git a/activemq-cpp/src/test/decaf/util/DateTest.cpp b/activemq-cpp/src/test/decaf/util/DateTest.cpp
index 0789037..9220845 100644
--- a/activemq-cpp/src/test/decaf/util/DateTest.cpp
+++ b/activemq-cpp/src/test/decaf/util/DateTest.cpp
@@ -29,37 +29,38 @@
void DateTest::test() {
Date date1;
- CPPUNIT_ASSERT( date1.getTime() != 0 );
+ CPPUNIT_ASSERT(date1.getTime() != 0);
decaf::lang::Thread::sleep(55);
Date date2;
- CPPUNIT_ASSERT( date1.before(date2) == true );
- CPPUNIT_ASSERT( date1.after(date2) == false );
+ CPPUNIT_ASSERT(date1.before(date2) == true);
+ CPPUNIT_ASSERT(date1.after(date2) == false);
Date date3 = date1;
// Test Comparable interface
- CPPUNIT_ASSERT( date1.equals( date3 ) == true );
- CPPUNIT_ASSERT( date3.equals( date1 ) == true );
- CPPUNIT_ASSERT( date1.equals( date2 ) == false );
- CPPUNIT_ASSERT( date1.compareTo( date2 ) < 0 );
- CPPUNIT_ASSERT( date2.compareTo( date1 ) > 0 );
- CPPUNIT_ASSERT( date1.compareTo( date3 ) == 0 );
- CPPUNIT_ASSERT( date3.compareTo( date1 ) == 0 );
- CPPUNIT_ASSERT( date1 < date2 );
- CPPUNIT_ASSERT( !( date2 < date1 ) );
- CPPUNIT_ASSERT( !( date1 < date3 ) );
- CPPUNIT_ASSERT( date3 == date1 );
- CPPUNIT_ASSERT( date1 == date3 );
- CPPUNIT_ASSERT( !( date1 == date2 ) );
+ CPPUNIT_ASSERT(date1.equals(date3) == true);
+ CPPUNIT_ASSERT(date3.equals(date1) == true);
+ CPPUNIT_ASSERT(date1.equals(date2) == false);
+ CPPUNIT_ASSERT(date1.compareTo(date2) < 0);
+ CPPUNIT_ASSERT(date2.compareTo(date1) > 0);
+ CPPUNIT_ASSERT(date1.compareTo(date3) == 0);
+ CPPUNIT_ASSERT(date3.compareTo(date1) == 0);
+ CPPUNIT_ASSERT(date1 < date2);
+ CPPUNIT_ASSERT(!(date2 < date1));
+ CPPUNIT_ASSERT(!(date1 < date3));
+ CPPUNIT_ASSERT(date3 == date1);
+ CPPUNIT_ASSERT(date1 == date3);
+ CPPUNIT_ASSERT(!(date1 == date2));
}
////////////////////////////////////////////////////////////////////////////////
void DateTest::testToString() {
- Date now;
- CPPUNIT_ASSERT( now.toString() != "" );
- CPPUNIT_ASSERT( now.toString().size() >= 20 );
+ Date now(1443038174960LL);
+ CPPUNIT_ASSERT(now.toString() != "");
+ CPPUNIT_ASSERT(now.toString().size() >= 20);
+ CPPUNIT_ASSERT_EQUAL(std::string("Wed Sep 23 15:56:14 EDT 2015"), now.toString());
}