#

API Docs for: 3.10.3
Show: Inherited Protected Private Deprecated

# File: test/js/DateAssert.js

    /**
     * The DateAssert object provides functions to test JavaScript Date objects
     * for a variety of cases.
     * @namespace Test
     * @module test
     * @class DateAssert
     * @static
     */

    YUITest.DateAssert = {

        /**
         * Asserts that a date's month, day, and year are equal to another date's.
         * @param {Date} expected The expected date.
         * @param {Date} actual The actual date to test.
         * @param {String} message (Optional) The message to display if the assertion fails.
         * @method datesAreEqual
         * @static
         */
        datesAreEqual : function (expected, actual, message){
            YUITest.Assert._increment();
            if (expected instanceof Date && actual instanceof Date){
                var msg = "";

                //check years first
                if (expected.getFullYear() != actual.getFullYear()){
                    msg = "Years should be equal.";
                }

                //now check months
                if (expected.getMonth() != actual.getMonth()){
                    msg = "Months should be equal.";
                }

                //last, check the day of the month
                if (expected.getDate() != actual.getDate()){
                    msg = "Days of month should be equal.";
                }

                if (msg.length){
                    throw new YUITest.ComparisonFailure(YUITest.Assert._formatMessage(message, msg), expected, actual);
                }
            } else {
                throw new TypeError("YUITest.DateAssert.datesAreEqual(): Expected and actual values must be Date objects.");
            }
        },

        /**
         * Asserts that a date's hour, minutes, and seconds are equal to another date's.
         * @param {Date} expected The expected date.
         * @param {Date} actual The actual date to test.
         * @param {String} message (Optional) The message to display if the assertion fails.
         * @method timesAreEqual
         * @static
         */
        timesAreEqual : function (expected, actual, message){
            YUITest.Assert._increment();
            if (expected instanceof Date && actual instanceof Date){
                var msg = "";

                //check hours first
                if (expected.getHours() != actual.getHours()){
                    msg = "Hours should be equal.";
                }

                //now check minutes
                if (expected.getMinutes() != actual.getMinutes()){
                    msg = "Minutes should be equal.";
                }

                //last, check the seconds
                if (expected.getSeconds() != actual.getSeconds()){
                    msg = "Seconds should be equal.";
                }

                if (msg.length){
                    throw new YUITest.ComparisonFailure(YUITest.Assert._formatMessage(message, msg), expected, actual);
                }
            } else {
                throw new TypeError("YUITest.DateAssert.timesAreEqual(): Expected and actual values must be Date objects.");
            }
        }

    };