The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use 5.010;
use strict;
use warnings;
use lib qw(t);

use Test::Most;
use testlib::Fixtures;
use App::TimeTracker::Proto;
use Path::Class;

{
    explain('Test1');
    my $testdir = testlib::Fixtures::setup_tree('tree1');
    my $p = App::TimeTracker::Proto->new(home=>$testdir);
    my $c = $p->load_config(dir($testdir,(qw(a b c d))));
    is($p->project,'d','project d');
    is($c->{rt}{update_time_worked},1,'deep config');
    is(keys %{$p->config_file_locations},5, '5 config files');
}

testlib::Fixtures::reset_tempdir();
{
    explain('Test2');
    my $testdir = testlib::Fixtures::setup_tree('tree1');
    my $p = App::TimeTracker::Proto->new(home=>$testdir);
    my $c = $p->load_config(dir($testdir,(qw(a b))));
    is($p->project,'b','project b');
    is($c->{rt}{update_time_worked},undef,'not so deep config');
    is(keys %{$p->config_file_locations},3, '3 config files');
}

testlib::Fixtures::reset_tempdir();
{
    explain('Test3');
    my $testdir = testlib::Fixtures::setup_tree('tree1');
    my $p = App::TimeTracker::Proto->new(home=>$testdir);
    my $c = $p->load_config(dir($testdir,(qw(z))));
    is($p->project,undef,'Project not defined');
    is(keys %{$p->config_file_locations},1, '1 config files');
}

testlib::Fixtures::reset_tempdir();
{
    explain('Test4');
    @ARGV=('--project','test');
    my $testdir = testlib::Fixtures::setup_tree('tree1');
    my $p = App::TimeTracker::Proto->new(home=>$testdir);
    my $c = $p->load_config(dir($testdir,(qw(z))));
    is($p->project,'test','project via argv');
    is(keys %{$p->config_file_locations},1, '1 config files');
}

done_testing();