# Yahoo! UI Library

### yuitest 2.5.0

Yahoo! UI Library > yuitest > ObjectAssert.js (source view)

Show Private Show Protected

    YAHOO.namespace("util");

    //-----------------------------------------------------------------------------
    // ObjectAssert object
    //-----------------------------------------------------------------------------

    /**
     * The ObjectAssert object provides functions to test JavaScript objects
     * for a variety of cases.
     *
     * @namespace YAHOO.util
     * @class ObjectAssert
     * @static
     */
    YAHOO.util.ObjectAssert = {

        /**
         * Asserts that all properties in the object exist in another object.
         * @param {Object} expected An object with the expected properties.
         * @param {Object} actual An object with the actual properties.
         * @param {String} message (Optional) The message to display if the assertion fails.
         * @method propertiesAreEqual
         * @static
         */
        propertiesAreEqual : function (expected /*:Object*/, actual /*:Object*/,
                               message /*:String*/) /*:Void*/ {

            //get all properties in the object
            var properties /*:Array*/ = [];
            for (var property in expected){
                properties.push(property);
            }

            //see if the properties are in the expected object
            for (var i=0; i < properties.length; i++){
                YAHOO.util.Assert.isNotUndefined(actual[properties[i]], message ||
                        "Property'" + properties[i] + "' expected.");
            }

        },

        /**
         * Asserts that an object has a property with the given name.
         * @param {String} propertyName The name of the property to test.
         * @param {Object} object The object to search.
         * @param {String} message (Optional) The message to display if the assertion fails.
         * @method hasProperty
         * @static
         */
        hasProperty : function (propertyName /*:String*/, object /*:Object*/, message /*:String*/) /*:Void*/ {
            if (YAHOO.lang.isUndefined(object[propertyName])){
                YAHOO.util.Assert.fail(message ||
                        "Property " + propertyName + " not found on object.");
            }
        },

        /**
         * Asserts that a property with the given name exists on an object instance (not on its prototype).
         * @param {String} propertyName The name of the property to test.
         * @param {Object} object The object to search.
         * @param {String} message (Optional) The message to display if the assertion fails.
         * @method hasProperty
         * @static
         */
        hasOwnProperty : function (propertyName /*:String*/, object /*:Object*/, message /*:String*/) /*:Void*/ {
            if (!YAHOO.lang.hasOwnProperty(object, propertyName)){
                YAHOO.util.Assert.fail(message ||
                        "Property " + propertyName + " not found on object instance.");
            }
        }
    };

Copyright © 2007 Yahoo! Inc. All rights reserved.