it("addPackage() in subdir", function (done) {
        var testJSON = require( './pckg/TestEnum.json' );

        var prepareCtx = require( '../transform/addCtxPaths' ).transform;
        var transform = require( '../transform/addPackage' ).transform;

        var jsonTools = require( 'json-tools' );
        var model = jsonTools.selectable({
            $src : {
                $json: testJSON
            }});

        var path = './pckg/TestEnum.json';

        prepareCtx(model, {
            $path : path,
            $prjDir : process.cwd() + "/test"
        });
        var rval = transform( model );

        assert.ok(rval);
        assert.ok( rval.$isSelectable );
        assert.equal( rval.text( '#packageName' ), "package pckg;" );

        done();
    });
exports.transform = function( json, options ) {
    console.log( "-- prepare empty images list" );

    var images = [];

    var _ = require( 'underscore' );
    var Path = require( 'path' );
    var tools = require( 'json-tools' );

    var root = tools.selectable(json);
    var inputPath = root.text( '.$json > .input');
    var docPath = Path.dirname( root.text( '#$path') );

    var inputResolved = Path.resolve(docPath, inputPath);

    root.each( '.$json > .images > *', function( imgConfig ) {
        var copy = imgConfig.json.copy;
        var bgColor = imgConfig.text( '#bgColor' );
        var type = imgConfig.text( '#type' );
        var name = './' + imgConfig.text( '#src' ) + '.' + type;

        imgConfig.each( '.output > *', function( outputConfig, idx ){
            var outputResolved = Path.resolve(
                     Path.resolve(docPath, outputConfig.text( '#path' ) ), name);
            var imgSrcFile = Path.resolve( inputResolved, name );

            var image = {
                type   : type,
                width  : outputConfig.json.width,
                height : outputConfig.json.height,
                input  : imgSrcFile,
                output : outputResolved,
                bgColor: bgColor,
                copy : copy
            };

            images.push( image );
        } )

    });

    return images;
};
    it("addPackage()", function (done) {
        var testJSON = require( './TestEnum.json' );

        var prepareCtx = require( '../transform/addCtxPaths' ).transform;
        var transform = require( '../transform/addPackage' ).transform;

        var jsonTools = require( 'json-tools' );
        var model = jsonTools.selectable({
            $src : {
                $json: testJSON
            }});

        prepareCtx(model);
        var rval = transform( model );

        assert.ok(rval);
        assert.ok( rval.$isSelectable );
        assert.equal( rval.json.packageName, undefined );

        done();
    });
    it("addCtxParams() without passed $path", function (done) {
        var testJSON = require( './pckg/TestEnum.json' );

        var prepareCtx = require( '../transform/addCtxPaths' ).transform;
        var jsonTools = require( 'json-tools' );
        var model = jsonTools.selectable({
            $src : {
                $json: testJSON
            }});

        var rval = prepareCtx(model);

        assert.ok(rval);
        assert.ok( rval.$isSelectable );

        assert.ok( rval.$prjDir );
        assert.ok(_.isString(rval.$prjDir ) );

        assert.ok( rval.$path );
        assert.ok(_.isString(rval.$path ) );

        done();
    });
    it("addCtxParams() with passed $path", function (done) {
        var testJSON = require( './pckg/TestEnum.json' );

        var prepareCtx = require( '../transform/addCtxPaths' ).transform;
        var jsonTools = require( 'json-tools' );
        var model = jsonTools.selectable({
            $src : {
                $json: testJSON
            }});

        var path = './pckg/TestEnum.json';

        // pass /test-directory
        var rval = prepareCtx(model, {
            $path : path,
            $prjDir : process.cwd() + "/test"
        });

        assert.ok(rval);
        assert.ok( rval.$isSelectable );
        assert.equal( rval.$path, path );

        done();
    });