#!perl
use Cassandane::Tiny;

sub test_mailbox_set_order
    :min_version_3_1
    ($self)
{
    my $jmap = $self->{jmap};

    # Assert mailboxes are created in the right order.
    my $res = $jmap->CallMethods([["Mailbox/set", {
        create => {
            "C" => { name => "C", parentId => "#B",  role => undef },
            "B" => { name => "B", parentId => "#A",  role => undef },
            "A" => { name => "A", parentId => undef, role => undef },
        }
    } ]]);

    $self->assert_not_null($res->[0][1]{created}{A});
    $self->assert_not_null($res->[0][1]{created}{B});
    $self->assert_not_null($res->[0][1]{created}{C});

    # Assert mailboxes are destroyed in the right order.
    $res = $jmap->CallMethods([['Mailbox/set', {
        destroy => [
            $res->[0][1]{created}{A}{id},
            $res->[0][1]{created}{B}{id},
            $res->[0][1]{created}{C}{id},
        ]
    }, "R1"]]);
    $self->assert_num_equals(3, scalar @{$res->[0][1]{destroyed}});
    $self->assert_null($res->[0][1]{notDestroyed});
}
