#!/usr/bin/env perl
use strict;
use warnings;
use Test::More;
use Test::Exception;
my $pkg;
BEGIN {
$pkg = 'Catmandu::Buffer';
use_ok $pkg;
}
require_ok $pkg;
{
package T::Buffer;
use Moo;
with $pkg;
}
my $b = T::Buffer->new;
can_ok $b, 'buffer_size';
can_ok $b, 'buffer';
can_ok $b, 'default_buffer_size';
can_ok $b, 'buffer_used';
can_ok $b, 'buffer_is_full';
can_ok $b, 'buffer_add';
can_ok $b, 'clear_buffer';
is $b->buffer_size, $b->default_buffer_size;
$b = T::Buffer->new(buffer_size => 5);
is $b->buffer_size, 5;
is $b->buffer_used, 0;
$b->buffer_add(1, 2, 3);
is $b->buffer_used, 3;
is_deeply $b->buffer, [1, 2, 3];
is $b->buffer_is_full, 0;
$b->buffer_add(4, 5, 6);
is $b->buffer_used, 6;
is_deeply $b->buffer, [1, 2, 3, 4, 5, 6];
is $b->buffer_is_full, 1;
$b->clear_buffer;
is $b->buffer_used, 0;
is_deeply $b->buffer, [];
is $b->buffer_is_full, 0;
done_testing 21;