## no critic (package)

package Fuu;

use strict;
use warnings;

use Inline CPP => config => namespace => q{} => classes => { 'Fuu' => 'MyFuu'};

use Inline CPP => <<'EOCPP';

  class Fuu {
    private:
      int a;
    public:
      Fuu() :a(10) {}
      int fetch () { return a; }
  };

EOCPP

1;

package Bur;

our @ISA = ('MyFuu');
sub myfetch { my $self = shift; $self->fetch(); }


package main;
use Test::More;

can_ok 'MyFuu', 'new';
my $f = new_ok 'MyFuu';
is ref($f), 'MyFuu', 'Our "Fuu" is a "MyFuu".';
is $f->fetch, '10', 'Accessor properly associated.';


can_ok 'Bur', 'new';
my $bf = new_ok 'Bur';
is ref($bf), 'Bur', 'Our "Bur" is a "Bur"';
is $bf->fetch, 10, 
   'Inheritance and object method association from Bur.';
is $bf->myfetch, 10, 'Method resolution for subclass.';



done_testing();
