use strict;
use warnings;
use Test::More qw(no_plan);
use File::Temp qw(tempdir);
use File::Basename;
my $dir= tempdir( CLEANUP => 1 );
use_ok('Data::Range::Compare::Stream::Iterator::File::MergeSortAsc::Stack');
{
my $o=new Data::Range::Compare::Stream::Iterator::File::MergeSortAsc::Stack(tmpdir=>$dir);
ok($o,'object should exist');
$o->push('test');
cmp_ok($o->has_next,'==',1,'has_next check');
$o->push('test');
cmp_ok($o->has_next,'==',2,'has_next check');
cmp_ok($o->get_next,'eq','test','get_next test');
cmp_ok(dirname($o->{stack}),'eq',$dir,'temp folder check');
cmp_ok($o->has_next,'==',1,'has_next check');
$o->push('test2');
cmp_ok($o->has_next,'==',2,'has_next check');
cmp_ok($o->get_next,'eq','test','get_next test');
cmp_ok($o->has_next,'==',1,'has_next check');
cmp_ok($o->get_next,'eq','test2','get_next test');
cmp_ok($o->has_next,'==',0,'has_next check');
$o->push('test3');
cmp_ok($o->has_next,'==',1,'has_next check');
cmp_ok($o->get_next,'eq','test3','get_next test');
cmp_ok($o->has_next,'==',0,'has_next check');
}