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

use lib 't/lib';
use Test::More;
use Test::Fatal;

use aliased 'DBIx::Class::Helper::Schema::Verifier::C3';

is(exception {
   C3->$_('Cat', 'Cat') for C3->result_verifiers;
}, undef, 'Result and Set are fine');

like(exception {
   C3->$_('Foo', 'Cat') for C3->result_verifiers;
}, qr/^Foo does not use c3, it uses dfs/, 'Result fails');

like(exception {
   C3->$_('Cat', 'Bar') for C3->result_verifiers;
}, qr/^Bar does not use c3, it uses dfs/, 'ResultSet fails');

done_testing;

BEGIN {
   package Foo;

   use base 'DBIx::Class::Core';

   package Bar;

   use base 'DBIx::Class::ResultSet';

   package Cat;
   use MRO::Compat;
   use mro 'c3';
   use base 'DBIx::Class';
}