#!perl
use Cassandane::Tiny;

sub test_calendarevent_set_participants_patch_empty_xprop
    :min_version_3_4
    ($self)
{
    my $service = $self->{instance}->get_service("http");
    my $CalDAV = Net::CalDAVTalk->new(
        user => "cassandane",
        password => 'pass',
        host => $service->host(),
        port => $service->port(),
        scheme => 'http',
        url => '/',
        expandurl => 1,
    );

    my $CalendarId = $self->default_user->calendars->default->id;
    my $uuid = "6de280c9-edff-4019-8ebd-cfebc73f8201";
    my $href = "$CalendarId/$uuid.ics";
    my $event = <<EOF;
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Apple Inc.//Mac OS X 10.10.4//EN
CALSCALE:GREGORIAN
BEGIN:VEVENT
CREATED:20150806T234327Z
UID:$uuid
DTEND;TZID=Australia/Melbourne:20160831T183000
TRANSP:OPAQUE
SUMMARY:An Event
DTSTART;TZID=Australia/Melbourne:20160831T153000
DTSTAMP:20150806T234327Z
SEQUENCE:0
ATTENDEE;CN=Test User;PARTSTAT=ACCEPTED;RSVP=TRUE:MAILTO:cassandane\@example.com
ATTENDEE;X-JMAP-ID=bar;PARTSTAT=NEEDS-ACTION;RSVP=TRUE:MAILTO:bar\@local
ORGANIZER;CN=Test User:MAILTO:cassandane\@example.com
X-MICROSOFT-OHNO:
END:VEVENT
END:VCALENDAR
EOF

    $CalDAV->Request('PUT', $href, $event, 'Content-Type' => 'text/calendar');

    my $jmap = $self->default_user->jmap;
    my $default_cal_id = $self->default_user->calendars->default->id;

    my $res = $jmap->CallMethods([
        ['CalendarEvent/query', {
        }, 'R1'],
    ]);

    my $eventId = $res->[0][1]{ids}[0];

    $res = $jmap->CallMethods([
        ['CalendarEvent/set', {
            update => {
                $eventId => {
                    'participants/bar/participationStatus' => 'accepted',
                },
            },
        }, 'R1'],
        ['CalendarEvent/get', {
            ids => [$eventId],
        }, 'R2'],
    ]);

    $self->assert(exists $res->[0][1]{updated}{$eventId});
    $self->assert_str_equals('accepted',
                             $res->[1][1]{list}[0]{participants}{'bar'}{participationStatus});
}
