#!perl
use Cassandane::Tiny;

sub test_auditlog_size
    :min_version_3_5
    ($self)
{
    xlog $self, "Testing whether appended message size is auditlogged";

    # discard syslogs from setup
    $self->{instance}->getsyslog();

    xlog $self, "Deliver a message";
    my $folder = "INBOX";
    my %msgs;
    $msgs{1} = $self->{gen}->generate(subject => "Message 1");
    $msgs{1}->set_attribute(uid => 1);
    $self->{instance}->deliver($msgs{1}, user => "cassandane");

    xlog $self, "Check that the message made it";
    $self->{store}->set_folder($folder);
    $self->check_messages(\%msgs, check_guid => 0, keyed_on => 'uid');

    xlog $self, "Check the correct size was auditlogged";
    if ($self->{instance}->{have_syslog_replacement}) {
        my @appends = $self->{instance}->getsyslog(
            qr/\bevent=auditlog\.append .* msg\.imapuid=1\b/);
        $self->assert_num_equals(1, scalar @appends);

        # delivery will add some headers, so it will be larger
        my $expected_size = $msgs{1}->size();
        my ($actual_size) = $appends[0] =~ m/\bmsg\.size=(\d+)\b/;
        $self->assert_num_gte($expected_size, $actual_size);
    }
}
