imip-agent

tests/test_resource_invitation_constraints.sh

1039:a12150034cbd
2016-02-08 Paul Boddie Added a journal storage area, maintaining quota and collective scheduling data for scheduling decisions. Introduced confirmation and retraction functions for resource scheduling so that quotas and collective schedules can be maintained and thus queried by scheduling functions. Updated the documentation, tools and tests.
     1 #!/bin/sh     2      3 . "`dirname \"$0\"`/common.sh"     4      5 USER="mailto:resource-room-sauna@example.com"     6 SENDER="mailto:paul.boddie@example.com"     7 RIVALSENDER="mailto:vincent.vole@example.com"     8 FBFILE="$STORE/$USER/freebusy"     9 FBOFFERFILE="$STORE/$USER/freebusy-offers"    10 FBSENDERFILE="$STORE/$SENDER/freebusy"    11 FBSENDEROTHERFILE="$STORE/$SENDER/freebusy-other/$USER"    12 FBSENDERREQUESTS="$STORE/$SENDER/requests"    13 FBRIVALSENDERFILE="$STORE/$RIVALSENDER/freebusy"    14     15 mkdir -p "$PREFS/$USER"    16 echo 'Europe/Oslo' > "$PREFS/$USER/TZID"    17 echo 'share' > "$PREFS/$USER/freebusy_sharing"    18 echo 'schedule_corrected_in_freebusy' > "$PREFS/$USER/scheduling_function"    19 echo '10,12,14,16,18:0,15,30,45' > "$PREFS/$USER/permitted_times"    20 echo 'PT60S' > "$PREFS/$USER/freebusy_offers"    21     22   "$RESOURCE_SCRIPT" $ARGS < "$TEMPLATES/fb-request-sauna-all.txt" 2>> $ERROR \    23 | "$SHOWMAIL" \    24 > out0.tmp    25     26    grep -q 'METHOD:REPLY' out0.tmp \    27 && ! grep -q '^FREEBUSY' out0.tmp \    28 && echo "Success" \    29 || echo "Failed"    30     31 # Attempt to schedule an event.    32     33 "$OUTGOING_SCRIPT" $ARGS < "$TEMPLATES/event-request-sauna-bad.txt" 2>> $ERROR    34     35    grep -q "^20141126T151000Z${TAB}20141126T154500Z" "$FBSENDERFILE" \    36 && echo "Success" \    37 || echo "Failed"    38     39 # Present the request to the resource.    40     41   "$RESOURCE_SCRIPT" $ARGS < "$TEMPLATES/event-request-sauna-bad.txt" 2>> $ERROR \    42 | tee out1r.tmp \    43 | "$SHOWMAIL" \    44 > out1.tmp    45     46    grep -q 'METHOD:COUNTER' out1.tmp \    47 && grep -q 'DTSTART;TZID=Europe/Oslo.*:20141126T161500' out1.tmp \    48 && echo "Success" \    49 || echo "Failed"    50     51    ! [ -e "$FBFILE" ] \    52 || ! grep -q "^20141126T151500Z${TAB}20141126T154500Z" "$FBFILE" \    53 && echo "Success" \    54 || echo "Failed"    55     56    grep -q "^20141126T151500Z${TAB}20141126T154500Z" "$FBOFFERFILE" \    57 && echo "Success" \    58 || echo "Failed"    59     60 # Present the response to the organiser.    61     62   "$PERSON_SCRIPT" $ARGS < out1r.tmp 2>> $ERROR \    63 | tee out2r.tmp \    64 | "$SHOWMAIL" \    65 > out2.tmp    66     67    ( ! [ -e "$FBSENDEROTHERFILE" ] \    68   || ! grep -q "^20141126T151000Z${TAB}20141126T154500Z" "$FBSENDEROTHERFILE") \    69 && echo "Success" \    70 || echo "Failed"    71     72    grep -q 'DTSTART;TZID=Europe/Oslo.*:20141126T161000' "$STORE/$SENDER/objects/event13@example.com" \    73 && echo "Success" \    74 || echo "Failed"    75     76    grep -q 'DTSTART;TZID=Europe/Oslo.*:20141126T161500' "$STORE/$SENDER/counters/objects/event13@example.com/$USER" \    77 && echo "Success" \    78 || echo "Failed"    79     80    grep -q 'event13@example.com' "$FBSENDERREQUESTS" \    81 && echo "Success" \    82 || echo "Failed"    83     84 # Attempt to schedule an event in the proposed period.    85     86 "$OUTGOING_SCRIPT" $ARGS < "$TEMPLATES/event-request-sauna-rival.txt" 2>> $ERROR    87     88    ! grep -q "^20141126T151000Z${TAB}20141126T154500Z" "$FBRIVALSENDERFILE" \    89 && grep -q "^20141126T153000Z${TAB}20141126T154500Z" "$FBRIVALSENDERFILE" \    90 && echo "Success" \    91 || echo "Failed"    92     93 # Present the request to the resource.    94     95   "$RESOURCE_SCRIPT" $ARGS < "$TEMPLATES/event-request-sauna-rival.txt" 2>> $ERROR \    96 | "$SHOWMAIL" \    97 > out3.tmp    98     99    grep -q 'METHOD:REPLY' out3.tmp \   100 && grep -q 'ATTENDEE.*;PARTSTAT=DECLINED' out3.tmp \   101 && echo "Success" \   102 || echo "Failed"   103    104 # Present the response to the organiser.   105    106   "$PERSON_SCRIPT" $ARGS < out3.tmp 2>> $ERROR \   107 | tee out4r.tmp \   108 | "$SHOWMAIL" \   109 > out4.tmp   110    111    ! grep -q "^20141126T151000Z${TAB}20141126T154500Z" "$FBRIVALSENDERFILE" \   112 && grep -q "^20141126T153000Z${TAB}20141126T154500Z" "$FBRIVALSENDERFILE" \   113 && echo "Success" \   114 || echo "Failed"   115    116    grep -q 'ATTENDEE.*;PARTSTAT=DECLINED' "$STORE/$RIVALSENDER/objects/event18@example.com" \   117 && echo "Success" \   118 || echo "Failed"   119    120 # Check the free/busy state of the resource so far.   121    122   "$RESOURCE_SCRIPT" $ARGS < "$TEMPLATES/fb-request-sauna-all.txt" 2>> $ERROR \   123 | "$SHOWMAIL" \   124 > out5.tmp   125    126    grep -q 'METHOD:REPLY' out5.tmp \   127 && ! grep -q 'FREEBUSY;FBTYPE=BUSY:20141126T151000Z/20141126T154500Z' out5.tmp \   128 && ! grep -q 'FREEBUSY;FBTYPE=BUSY:20141126T151500Z/20141126T154500Z' out5.tmp \   129 && ! grep -q 'FREEBUSY;FBTYPE=BUSY:20141126T153000Z/20141126T154500Z' out5.tmp \   130 && echo "Success" \   131 || echo "Failed"   132    133 # Attempt to schedule again in response to the counter-proposal.   134    135 "$OUTGOING_SCRIPT" $ARGS < "$TEMPLATES/event-request-sauna-good.txt" 2>> $ERROR   136    137    ! grep -q "^20141126T151000Z${TAB}20141126T154500Z" "$FBSENDERFILE" \   138 && ! grep -q "^20141126T151500Z${TAB}20141126T154500Z" "$FBSENDERFILE" \   139 && ! grep -q "^20141126T153000Z${TAB}20141126T154500Z" "$FBSENDERFILE" \   140 && echo "Success" \   141 || echo "Failed"   142    143    [ ! -e "$STORE/$SENDER/counters/objects/event13@example.com/$USER" ] \   144 && echo "Success" \   145 || echo "Failed"   146    147    ! grep -q 'event13@example.com' "$FBSENDERREQUESTS" \   148 && echo "Success" \   149 || echo "Failed"   150    151 # Present the request to the resource.   152    153   "$RESOURCE_SCRIPT" $ARGS < "$TEMPLATES/event-request-sauna-good.txt" 2>> $ERROR \   154 | "$SHOWMAIL" \   155 > out6.tmp   156    157    grep -q 'METHOD:REPLY' out6.tmp \   158 && grep -q 'ATTENDEE.*;PARTSTAT=ACCEPTED' out6.tmp \   159 && echo "Success" \   160 || echo "Failed"   161    162    grep -q "^20141126T150000Z${TAB}20141126T154500Z" "$FBFILE" \   163 && echo "Success" \   164 || echo "Failed"   165    166    ! grep -q "^20141126T150000Z${TAB}20141126T154500Z" "$FBOFFERFILE" \   167 && ! grep -q "^20141126T151500Z${TAB}20141126T154500Z" "$FBOFFERFILE" \   168 && ! grep -q "^20141126T153000Z${TAB}20141126T154500Z" "$FBOFFERFILE" \   169 && echo "Success" \   170 || echo "Failed"   171    172 # Present the response to the organiser.   173    174   "$PERSON_SCRIPT" $ARGS < out6.tmp 2>> $ERROR \   175 | tee out7r.tmp \   176 | "$SHOWMAIL" \   177 > out7.tmp   178    179    grep -q "^20141126T150000Z${TAB}20141126T154500Z" "$FBSENDERFILE" \   180 && ! grep -q "^20141126T151000Z${TAB}20141126T154500Z" "$FBSENDERFILE" \   181 && ! grep -q "^20141126T151500Z${TAB}20141126T154500Z" "$FBSENDERFILE" \   182 && ! grep -q "^20141126T153000Z${TAB}20141126T154500Z" "$FBSENDERFILE" \   183 && echo "Success" \   184 || echo "Failed"   185    186    [ ! -e "$STORE/$SENDER/counters/objects/event13@example.com/$USER" ] \   187 && echo "Success" \   188 || echo "Failed"   189    190    ! grep -q 'event13@example.com' "$FBSENDERREQUESTS" \   191 && echo "Success" \   192 || echo "Failed"   193    194 # Check the free/busy state of the resource again.   195    196   "$RESOURCE_SCRIPT" $ARGS < "$TEMPLATES/fb-request-sauna-all.txt" 2>> $ERROR \   197 | "$SHOWMAIL" \   198 > out6.tmp   199    200    grep -q 'METHOD:REPLY' out6.tmp \   201 && grep -q 'FREEBUSY;FBTYPE=BUSY:20141126T150000Z/20141126T154500Z' out6.tmp \   202 && ! grep -q 'FREEBUSY;FBTYPE=BUSY:20141126T151000Z/20141126T154500Z' out6.tmp \   203 && ! grep -q 'FREEBUSY;FBTYPE=BUSY:20141126T151500Z/20141126T154500Z' out6.tmp \   204 && ! grep -q 'FREEBUSY;FBTYPE=BUSY:20141126T153000Z/20141126T154500Z' out6.tmp \   205 && echo "Success" \   206 || echo "Failed"