SYNOPSIS

        use Test::More;
        use Test::DirectoryLayout qw(directory_layout_ok get_allowed_dirs set_allowed_dirs);
    
        my $ok = directory_layout_ok();
    
        my @allowed_dirs = qw(bin blib lib config doc t);
        set_allowed_dirs(\@allowed_dirs);
    
        my $allowed_dirs = get_allowed_dirs();

DESCRIPTION

    This test module helps you to keep your project directory clean. It
    provides a test tool that can be used in your test suite to make sure
    only the allowed set of directories exists:

        use Test::More;
        use Test::DirectoryLayout qw(directory_layout_ok get_allowed_dirs set_allowed_dirs);
    
        ok directory_layout_ok(), 'directory layout is ok';

    The predefined set of allowed directories looks like this:

        my @allowed_dirs = qw(bin blib lib config doc t);

    You can set it using set_allowed_dirs:

        my @allowed_dirs = qw(bin blib lib config doc t);
        set_allowed_dirs(\@allowed_dirs);

    You can get the set of currently allowed dirs by calling
    get_allowed_dirs:

        my $allowed_dirs = get_allowed_dirs();

FUNCTIONS

 get_allowed_dirs

    Returns reference to the list of allowed directories.

 set_allowed_dirs($dirs)

    Set list of allowed directories to the provided list. The contents of
    the list are copied.

 directory_layout_ok ($dir)

    Tests if the provided directory contains only allowed directories.

    If no name is provided the current directory is assumed.

SEE ALSO

      * Test::Dir for testing several attributes of a single directory.

      * Test::Dirs for comparing a directory with an existing directory.

      * Test::Directory for testing if creating and deleting files and
      directories was performed as expected.