use strict;
use warnings;
use Test::More;

{
    package TestEventSprintf;
    use Moose;
    with 'Log::Message::Structured::Stringify::Sprintf' => {
        format_string => "%s lala %s baba %s caca",
        attributes => [qw/ foo bar baz /],
    };
    with 'Log::Message::Structured';

    has [qw/foo bar baz/] => ( is => 'ro', required => 1);
}

my $exp = '2 lala 3 baba 4 caca';

my $e = TestEventSprintf->new(foo => 2, bar => 3, baz => 4);
ok $e;
is $e.'', $exp;

my $f = TestEventSprintf->thaw($e->freeze);
is_deeply $f, $e;
is $f.'', $exp;

done_testing;
