App-RPi-EnvUI

 view release on metacpan or  search on metacpan

t/10-db.t  view on Meta::CPAN

    testing => 1,
    config_file => 't/envui.json'
);

{ # auxs()

    my $auxs = $db->auxs;

    is ref $auxs, 'HASH', "auxs() returns a href";
    is keys %$auxs, 8, "auxs(): proper number of auxs returned";

    for (keys %$auxs) {
        like $_, qr/aux\d{1}/, "auxs() $_ has a 'auxN' name";
    }

    for (1..8){
        my $name = "aux$_";
        my $aux = $auxs->{$name};

        is $aux->{pin}, -1, "$name aux has proper pin default";
        is $aux->{state}, 0, "$name has proper default state";
        is $aux->{override}, 0, "$name has proper default override";
        is $aux->{on_time}, 0, "$name has proper default on_time";
    }
}

{
    for (1..8){
        my $name = "aux$_";
        my $aux = $db->aux($name);
        is ref $aux, 'HASH', "aux() returns an href for $name";
        is keys %$aux, 7, "aux() $name has proper count keys";
    }
}

{ # config_control()

    my @directives = qw(
        temp_limit humidity_limit temp_aux_on_time humidity_aux_on_time
        temp_aux humidity_aux light_aux
    );

    my @values = qw(
        80 20 1800 1800 aux1 aux2 aux3
    );

    is @directives, @values, "directives match number of values";

    my $i = 0;

    for (@directives){
        my $value = $db->config_control($_);
        is $value, $values[$i], "control $_ has value $values[$i] by default";
        $i++;
    }
}

{ # config_core()

    my @directives = qw(
        event_fetch_timer event_action_timer event_display_timer
        sensor_pin testing time_zone
    );

    my @values = qw(
        15 3 4 -1 0 America/Vancouver
    );

    my $i = 0;

    for (@directives){
        my $value = $db->config_core($_);
        is $value, $values[$i], "core $_ has value $values[$i] by default";
        $i++;
    }
}

{ # config_light()

    my @directives = qw(
        on_at on_hours on_time off_time enable
    );

    my @values = qw(
        18:00 12 0 0 0
    );

    is @directives, @values, "config_light() test is set up equally";

    my $conf = $db->config_light;

    is ref $conf, 'HASH', "config_light() is an href with no params";

    for my $k (keys %$conf){
        my $ok = grep {$_ eq $k} @directives;
        is $ok, 1, "$k is a directive";
    }

    for my $d (@directives){
        is exists $conf->{$d}, 1, "$d directive exists in conf";
    }

    my $i = 0;

    for (@directives){
        my $value = $db->config_light($_);
        is $value, $values[$i], "light $_ has value $values[$i] by default";
        $i++;
    }
}

{ # last_id() & insert_env()

    my $id = $db->last_id;
    like $id, qr/^\d+$/, "last_id() returns an integer";

    my $insert = $db->insert_env(99, 99);

    is $insert, 1, "insert_env() can insert";

    my $new_id = $db->last_id;



( run in 0.493 second using v1.01-cache-2.11-cpan-39bf76dae61 )