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

use English '-no_match_vars';
use Test::More;

use lib 'lib';

if ( $OSNAME ne "freebsd" ) {
    plan skip_all => "OS is not FreeBSD";
    exit;
}

require_ok( 'Mail::Toaster::FreeBSD' );

my $freebsd = Mail::Toaster::FreeBSD->new();
isa_ok( $freebsd, 'Mail::Toaster::FreeBSD', 'check object class' );

# drive_spin_down
	# how exactly do I test this?
		# a) check for SCSI disks,
		# b) see if there is more than one
    ok ( $freebsd->drive_spin_down( drive=>"0:1:0", test_ok=>1, verbose=>0), 'drive_spin_down');
    ok ( ! $freebsd->drive_spin_down( drive=>"0:1:0", test_ok=>0, verbose=>0), 'drive_spin_down');


# get_port_category
if ( -f '/usr/ports/Makefile' ) {
    my @ports = qw/ openssl p5-Net-DNS qmail gdbm /;
    foreach ( @ports ) {
        my $r = $freebsd->get_port_category($_);
        ok( $r && -d "/usr/ports/$r/$_", "get_port_category, $_, $r" );
    };
}

# get_version
    ok ( $freebsd->get_version(), 'get_version');
    my $os_ver = `/usr/bin/uname -r`; chomp $os_ver;
    cmp_ok ( $os_ver, "eq", $freebsd->get_version(0), 'get_version');


# is_port_installed
	ok ( $freebsd->is_port_installed( "perl",
            verbose => 0,
            fatal => 0,
            test_ok=> 1,
        ), 'is_port_installed');


# install_portupgrade
    ok ( $freebsd->install_portupgrade( test_ok=>1, fatal=>0 ), 'install_portupgrade');


# install_package
	ok ( $freebsd->install_package( "perl",
            verbose=>0,
            fatal=>0,
            test_ok=>1,
       ), 'install_package');


# install_port
	ok ( $freebsd->install_port( "perl",
	    dir   => 'perl5.8',
        fatal => 0,
	    test_ok=> 1,
	), 'install_port');


# port_options
    ok ( $freebsd->port_options(
        port => 'p5-Tar-Diff',
        cat  => 'test',
        opts => 'blah,test,deleteme\n',
        test_ok=>1,
    ), 'port_options');


# update_ports
    ok ( $freebsd->update_ports(
            verbose=>0,
            fatal=>0,
            test_ok=>1,
        ), 'update_ports');


# portsnap
    ok ( $freebsd->portsnap(
            verbose=>0,
            fatal=>0,
            test_ok=>1,
        ), 'portsnap');


# conf_check
	ok ( $freebsd->conf_check(
	    check => "hostname",
	    line  => "hostname='mail.example.com'",
        fatal => 0,
        test_ok => 1,
	), 'conf_check' );

done_testing();
exit;