"process data driver with context": function() {

            var
                descPath = __dirname + '/datadriven-descriptor-config-context.json',
                descriptorJsonStr = fs.readFileSync(descPath, 'utf-8'),
                descriptorJson,
                descriptorArr = [];

            try {

                descriptorJson = JSON.parse(descriptorJsonStr);
                descriptorArr = dataDriverMgr.processDataDriver(descPath, descriptorJson);

                Y.Assert.areEqual( 2, descriptorArr.length);

                var desc0 = '[{"settings":["master"],"name":"controllers","config":{"baseUrl":"http://finance.yahoo.com"},"dataprovider":{"Test Data Driven Descriptor":{"group":"func","params":{"scenario":[{"page":"$$config.baseUrl$$"},{"test":"dummytest.js"}]}}},"dataDriverKey":"finance"},{"settings":["environment:development"],"config":{"baseUrl":"http://uk.finance.yahoo.com"}}]';
                var desc1 = '[{"settings":["master"],"name":"controllers","config":{"baseUrl":"http://yahoo.com"},"dataprovider":{"Test Data Driven Descriptor":{"group":"func","params":{"scenario":[{"page":"$$config.baseUrl$$"},{"test":"dummytest.js"}]}}},"dataDriverKey":"yahoo"},{"settings":["environment:development"],"config":{"baseUrl":"http://uk.yahoo.com"}}]';

                Y.Assert.areEqual(desc0, JSON.stringify(descriptorArr[0]), "Descriptor Array 0 value doesn't match");
                Y.Assert.areEqual(desc1, JSON.stringify(descriptorArr[1]) , "Descriptor Array 0 value doesn't match");



            }catch(e) {
                Y.Assert.fail(e);
            }

        },
        "empty configuration": function() {

            var
                descPath = __dirname + '/datadriven-descriptor-config-empty.json',
                descriptorJsonStr = fs.readFileSync(descPath, 'utf-8'),
                descriptorJson,
                descriptorArr,
                msg;

            try {
                descriptorJson = JSON.parse(descriptorJsonStr);
                descriptorArr = dataDriverMgr.processDataDriver(descPath, descriptorJson);
            }catch(e) {

                msg = e.message;
            }

            Y.Assert.areEqual("exit code is 1", msg);


        },
        "process data driver duplicate keys ": function() {

            var
                descPath = __dirname + '/datadriven-descriptor-dup-keys.json',
                descriptorJsonStr = fs.readFileSync(descPath, 'utf-8'),
                descriptorJson,
                descriptorArr = [],
                errMsg;

            try {
                descriptorJson = JSON.parse(descriptorJsonStr);
                descriptorArr = dataDriverMgr.processDataDriver(descPath, descriptorJson);

            }catch(e) {
                errMsg = e.message;
            }

            Y.Assert.isNotUndefined(errMsg, "Process data driver with duplicate keys in config data shall throw exception");

            if (errMsg) {
                Y.Assert.isTrue(errMsg.indexOf("exit code is 1") > -1);
            }

        }