Advertisement
Guest User

Untitled

a guest
Mar 9th, 2016
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.90 KB | None | 0 0
  1. <?php
  2.  
  3. namespace Sabre\VObject;
  4.  
  5. use Sabre\VObject\Component\VCalendar;
  6.  
  7. class ChangeInviteeStatusTest extends \PHPUnit_Framework_TestCase {
  8.  
  9. /**
  10. * @return array
  11. * @see testChangeStatusInvitee
  12. */
  13. public function providerChangeStatusInvitees() {
  14.  
  15. return array(
  16. 'First event' => array(
  17. 'after' => <<<ICS
  18. BEGIN:VCALENDAR
  19. VERSION:2.0
  20. PRODID:-//Apple Inc.//Mac OS X 10.9.5//EN
  21. CALSCALE:GREGORIAN
  22. BEGIN:VEVENT
  23. ATTENDEE;CN=User Test1;CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION:mailto:invitee@company.name
  24. ATTENDEE;CN=User Test2;CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED;ROLE=CHAIR:mailto:organizer@company.name
  25. DTEND:20160321T173000Z
  26. TRANSP:OPAQUE
  27. ORGANIZER;CN=User Test2:mailto:organizer@company.name
  28. UID:e66117e7-d7fb-7ac6-fd92-56d867b8830e
  29. DTSTAMP:20160303T193459Z
  30. SEQUENCE:0
  31. SUMMARY:test
  32. DTSTART:20160321T170000Z
  33. CREATED:20160303T163540Z
  34. RRULE:FREQ=DAILY;INTERVAL=1;UNTIL=20160323T235959Z
  35. END:VEVENT
  36. BEGIN:VEVENT
  37. CREATED:20160303T163540Z
  38. UID:e66117e7-d7fb-7ac6-fd92-56d867b8830e
  39. DTEND:20160321T173000Z
  40. TRANSP:OPAQUE
  41. ATTENDEE;CN=User Test1;CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:mailto:invitee@company.name
  42. ATTENDEE;CN=User Test2;CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED;ROLE=CHAIR:mailto:organizer@company.name
  43. SUMMARY:test
  44. DTSTART:20160321T170000Z
  45. DTSTAMP:20160303T163605Z
  46. ORGANIZER;CN=User Test2:mailto:organizer@company.name
  47. SEQUENCE:0
  48. RECURRENCE-ID:20160321T170000Z
  49. END:VEVENT
  50. END:VCALENDAR
  51. ICS
  52. ,
  53. 'old' => <<<ICS
  54. BEGIN:VCALENDAR
  55. VERSION:2.0
  56. PRODID:-//Sabre//Sabre VObject 3.5.0//EN
  57. CALSCALE:GREGORIAN
  58. BEGIN:VTIMEZONE
  59. TZID:Europe/Minsk
  60. END:VTIMEZONE
  61. BEGIN:VEVENT
  62. UID:e66117e7-d7fb-7ac6-fd92-56d867b8830e
  63. DTSTAMP:20160303T193459Z
  64. SUMMARY:test
  65. DTSTART:20160321T170000Z
  66. DURATION:PT30M
  67. ATTENDEE;CN=User Test1;PARTSTAT=NEEDS-ACTION:mailto:invitee@company.name
  68. ORGANIZER;CN=User Test2:mailto:organizer@company.name
  69. ATTENDEE;PARTSTAT=ACCEPTED;CN=User Test2;ROLE=CHAIR:mailto:organizer@company.name
  70. RRULE:FREQ=DAILY;INTERVAL=1;UNTIL=20160323T235959Z
  71. END:VEVENT
  72. END:VCALENDAR
  73. ICS
  74. ,
  75. 'reply' => <<<ICS
  76. BEGIN:VCALENDAR
  77. VERSION:2.0
  78. PRODID:-//Sabre//Sabre VObject 3.4.9//EN
  79. CALSCALE:GREGORIAN
  80. METHOD:REPLY
  81. BEGIN:VEVENT
  82. UID:e66117e7-d7fb-7ac6-fd92-56d867b8830e
  83. SEQUENCE:0
  84. DTSTART:20160321T170000Z
  85. DTEND:20160321T173000Z
  86. SUMMARY:test
  87. RECURRENCE-ID:20160321T170000Z
  88. ORGANIZER;CN=User Test2:mailto:organizer@company.name
  89. ATTENDEE;PARTSTAT=ACCEPTED;CN=User Test1:mailto:invitee@company.name
  90. END:VEVENT
  91. END:VCALENDAR
  92. ICS
  93. ,
  94. 'addresses' => array('mailto:invitee@company.name'),
  95. 'before' => <<<ICS
  96. BEGIN:VCALENDAR
  97. VERSION:2.0
  98. PRODID:-//Sabre//Sabre VObject 3.5.0//EN
  99. CALSCALE:GREGORIAN
  100. BEGIN:VTIMEZONE
  101. TZID:Europe/Minsk
  102. END:VTIMEZONE
  103. BEGIN:VEVENT
  104. UID:e66117e7-d7fb-7ac6-fd92-56d867b8830e
  105. DTSTAMP:20160303T193459Z
  106. SUMMARY:test
  107. DTSTART:20160321T170000Z
  108. DURATION:PT30M
  109. ATTENDEE;CN=User Test1;PARTSTAT=NEEDS-ACTION:mailto:invitee@company.name
  110. ORGANIZER;CN=User Test2:mailto:organizer@company.name
  111. ATTENDEE;PARTSTAT=ACCEPTED;CN=User Test2;ROLE=CHAIR:mailto:organizer@company.name
  112. RRULE:FREQ=DAILY;INTERVAL=1;UNTIL=20160323T235959Z
  113. END:VEVENT
  114. BEGIN:VEVENT
  115. UID:e66117e7-d7fb-7ac6-fd92-56d867b8830e
  116. DTSTAMP:20160303T193459Z
  117. SUMMARY:test
  118. DTSTART:20160321T170000Z
  119. DURATION:PT30M
  120. ATTENDEE;CN=User Test1;PARTSTAT=ACCEPTED:mailto:invitee@company.name
  121. ORGANIZER;CN=User Test2:mailto:organizer@company.name
  122. ATTENDEE;PARTSTAT=ACCEPTED;CN=User Test2;ROLE=CHAIR:mailto:organizer@company.name
  123. RECURRENCE-ID:20160321T170000Z
  124. END:VEVENT
  125. END:VCALENDAR
  126. ICS
  127. ,
  128. ),
  129. 'Second event' => array(
  130. 'after' => <<<ICS
  131. BEGIN:VCALENDAR
  132. VERSION:2.0
  133. PRODID:-//Apple Inc.//Mac OS X 10.9.5//EN
  134. CALSCALE:GREGORIAN
  135. BEGIN:VEVENT
  136. ATTENDEE;CN=User Test1;CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION:mailto:invitee@company.name
  137. ATTENDEE;CN=User Test2;CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED;ROLE=CHAIR:mailto:organizer@company.name
  138. DTEND:20160314T150000Z
  139. TRANSP:OPAQUE
  140. ORGANIZER;CN=User Test2:mailto:organizer@company.name
  141. UID:af0384f7-f88a-8e2a-b9de-56d998e086dd
  142. DTSTAMP:20160304T171408Z
  143. SEQUENCE:0
  144. SUMMARY:test
  145. DTSTART:20160314T143000Z
  146. CREATED:20160304T141710Z
  147. RRULE:FREQ=DAILY;INTERVAL=1;UNTIL=20160316T235959Z
  148. END:VEVENT
  149. BEGIN:VEVENT
  150. CREATED:20160304T141710Z
  151. UID:af0384f7-f88a-8e2a-b9de-56d998e086dd
  152. DTEND:20160315T150000Z
  153. TRANSP:OPAQUE
  154. ATTENDEE;CN=User Test1;CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:mailto:invitee@company.name
  155. ATTENDEE;CN=User Test2;CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED;ROLE=CHAIR:mailto:organizer@company.name
  156. SUMMARY:test
  157. DTSTART:20160315T143000Z
  158. DTSTAMP:20160304T141718Z
  159. ORGANIZER;CN=User Test2:mailto:organizer@company.name
  160. SEQUENCE:0
  161. RECURRENCE-ID:20160315T143000Z
  162. END:VEVENT
  163. END:VCALENDAR
  164. ICS
  165. ,
  166. 'old' => <<<ICS
  167. BEGIN:VCALENDAR
  168. VERSION:2.0
  169. PRODID:-//Sabre//Sabre VObject 3.5.0//EN
  170. CALSCALE:GREGORIAN
  171. BEGIN:VTIMEZONE
  172. TZID:Europe/Minsk
  173. END:VTIMEZONE
  174. BEGIN:VEVENT
  175. UID:af0384f7-f88a-8e2a-b9de-56d998e086dd
  176. DTSTAMP:20160304T171408Z
  177. SUMMARY:test
  178. DTSTART:20160314T143000Z
  179. DURATION:PT30M
  180. ATTENDEE;CN=User Test1;PARTSTAT=NEEDS-ACTION:mailto:invitee@company.name
  181. ORGANIZER;CN=User Test2:mailto:organizer@company.name
  182. ATTENDEE;PARTSTAT=ACCEPTED;CN=User Test2;ROLE=CHAIR:mailto:organizer@company.name
  183. RRULE:FREQ=DAILY;INTERVAL=1;UNTIL=20160316T235959Z
  184. END:VEVENT
  185. END:VCALENDAR
  186. ICS
  187. ,
  188. 'reply' => <<<ICS
  189. BEGIN:VCALENDAR
  190. VERSION:2.0
  191. PRODID:-//Sabre//Sabre VObject 3.4.9//EN
  192. CALSCALE:GREGORIAN
  193. METHOD:REPLY
  194. BEGIN:VEVENT
  195. UID:af0384f7-f88a-8e2a-b9de-56d998e086dd
  196. SEQUENCE:0
  197. DTSTART:20160315T143000Z
  198. DTEND:20160315T150000Z
  199. SUMMARY:test
  200. RECURRENCE-ID:20160315T143000Z
  201. ORGANIZER;CN=User Test2:mailto:organizer@company.name
  202. ATTENDEE;PARTSTAT=ACCEPTED;CN=User Test1:mailto:invitee@company.name
  203. END:VEVENT
  204. END:VCALENDAR
  205. ICS
  206. ,
  207. 'addresses' => array('mailto:invitee@company.name'),
  208. 'before' => <<<ICS
  209. BEGIN:VCALENDAR
  210. VERSION:2.0
  211. PRODID:-//Sabre//Sabre VObject 3.5.0//EN
  212. CALSCALE:GREGORIAN
  213. BEGIN:VTIMEZONE
  214. TZID:Europe/Minsk
  215. END:VTIMEZONE
  216. BEGIN:VEVENT
  217. UID:af0384f7-f88a-8e2a-b9de-56d998e086dd
  218. DTSTAMP:20160304T171408Z
  219. SUMMARY:test
  220. DTSTART:20160314T143000Z
  221. DURATION:PT30M
  222. ATTENDEE;CN=User Test1;PARTSTAT=NEEDS-ACTION:mailto:invitee@company.name
  223. ORGANIZER;CN=User Test2:mailto:organizer@company.name
  224. ATTENDEE;PARTSTAT=ACCEPTED;CN=User Test2;ROLE=CHAIR:mailto:organizer@company.name
  225. RRULE:FREQ=DAILY;INTERVAL=1;UNTIL=20160316T235959Z
  226. END:VEVENT
  227. BEGIN:VEVENT
  228. UID:af0384f7-f88a-8e2a-b9de-56d998e086dd
  229. DTSTAMP:20160304T171408Z
  230. SUMMARY:test
  231. DTSTART:20160315T143000Z
  232. DURATION:PT30M
  233. ATTENDEE;CN=User Test1;PARTSTAT=ACCEPTED:mailto:invitee@company.name
  234. ORGANIZER;CN=User Test2:mailto:organizer@company.name
  235. ATTENDEE;PARTSTAT=ACCEPTED;CN=User Test2;ROLE=CHAIR:mailto:organizer@company.name
  236. RECURRENCE-ID:20160315T143000Z
  237. END:VEVENT
  238. END:VCALENDAR
  239. ICS
  240. ,
  241. ),
  242. 'All events' => array(
  243. 'after' => <<<ICS
  244. BEGIN:VCALENDAR
  245. VERSION:2.0
  246. PRODID:-//Apple Inc.//Mac OS X 10.9.5//EN
  247. CALSCALE:GREGORIAN
  248. BEGIN:VEVENT
  249. UID:ef04f41a-a8f7-b559-d8ab-56d99c8e8ef3
  250. RRULE:FREQ=DAILY;INTERVAL=1;UNTIL=20160316T235959Z
  251. DTEND:20160314T153000Z
  252. TRANSP:OPAQUE
  253. ATTENDEE;CN=User Test1;CUTYPE=INDIVIDUAL;PARTSTAT=TENTATIVE:mailto:invitee@company.name
  254. ATTENDEE;CN=User Test2;CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED;ROLE=CHAIR:mailto:organizer@company.name
  255. SUMMARY:test
  256. DTSTART:20160314T150000Z
  257. DTSTAMP:20160304T173347Z
  258. ORGANIZER;CN=User Test2:mailto:organizer@company.name
  259. SEQUENCE:0
  260. END:VEVENT
  261. END:VCALENDAR
  262. ICS
  263. ,
  264. 'old' => <<<ICS
  265. BEGIN:VCALENDAR
  266. VERSION:2.0
  267. PRODID:-//Sabre//Sabre VObject 3.5.0//EN
  268. CALSCALE:GREGORIAN
  269. BEGIN:VTIMEZONE
  270. TZID:Europe/Minsk
  271. END:VTIMEZONE
  272. BEGIN:VEVENT
  273. UID:ef04f41a-a8f7-b559-d8ab-56d99c8e8ef3
  274. DTSTAMP:20160304T173347Z
  275. SUMMARY:test
  276. DTSTART:20160314T150000Z
  277. DURATION:PT30M
  278. ATTENDEE;CN=User Test1;PARTSTAT=NEEDS-ACTION:mailto:invitee@company.name
  279. ORGANIZER;CN=User Test2:mailto:organizer@company.name
  280. ATTENDEE;PARTSTAT=ACCEPTED;CN=User Test2;ROLE=CHAIR:mailto:organizer@company.name
  281. RRULE:FREQ=DAILY;INTERVAL=1;UNTIL=20160316T235959Z
  282. END:VEVENT
  283. END:VCALENDAR
  284. ICS
  285. ,
  286. 'reply' => <<<ICS
  287. BEGIN:VCALENDAR
  288. VERSION:2.0
  289. PRODID:-//Sabre//Sabre VObject 3.4.9//EN
  290. CALSCALE:GREGORIAN
  291. METHOD:REPLY
  292. BEGIN:VEVENT
  293. UID:ef04f41a-a8f7-b559-d8ab-56d99c8e8ef3
  294. SEQUENCE:0
  295. DTSTART:20160314T150000Z
  296. DTEND:20160314T153000Z
  297. SUMMARY:test
  298. ORGANIZER;CN=User Test2:mailto:organizer@company.name
  299. ATTENDEE;PARTSTAT=TENTATIVE;CN=User Test1:mailto:invitee@company.name
  300. END:VEVENT
  301. END:VCALENDAR
  302. ICS
  303. ,
  304. 'addresses' => array('mailto:invitee@company.name'),
  305. 'before' => <<<ICS
  306. BEGIN:VCALENDAR
  307. VERSION:2.0
  308. PRODID:-//Sabre//Sabre VObject 3.5.0//EN
  309. CALSCALE:GREGORIAN
  310. BEGIN:VTIMEZONE
  311. TZID:Europe/Minsk
  312. END:VTIMEZONE
  313. BEGIN:VEVENT
  314. UID:ef04f41a-a8f7-b559-d8ab-56d99c8e8ef3
  315. DTSTAMP:20160304T173347Z
  316. SUMMARY:test
  317. DTSTART:20160314T150000Z
  318. DURATION:PT30M
  319. ATTENDEE;CN=User Test1;PARTSTAT=TENTATIVE;SCHEDULE-STATUS=2.0:mailto:invitee@company.name
  320. ORGANIZER;CN=User Test2:mailto:organizer@company.name
  321. ATTENDEE;PARTSTAT=ACCEPTED;CN=User Test2;ROLE=CHAIR:mailto:organizer@company.name
  322. RRULE:FREQ=DAILY;INTERVAL=1;UNTIL=20160316T235959Z
  323. END:VEVENT
  324. END:VCALENDAR
  325. ICS
  326. ,
  327. ),
  328. );
  329. }
  330.  
  331. /**
  332. * @param string $after
  333. * @param string $old
  334. * @param string $reply
  335. * @param array $addresses
  336. * @param string $before
  337. * @dataProvider providerChangeStatusInvitees
  338. */
  339. public function testChangeStatusInvitee($after, $old, $reply, $addresses, $before) {
  340.  
  341. $afterVCal = Reader::read($after);
  342. $oldVCal = Reader::read($old);
  343.  
  344. $broker = new ITip\Broker();
  345. $messages = $broker->parseEvent($afterVCal, $addresses, $oldVCal);
  346. $iTipMessage = $messages[0];
  347.  
  348. $this->assertEquals(Reader::read($reply)->serialize(), $iTipMessage->message->serialize());
  349.  
  350. $beforeVCal = $broker->processMessage($iTipMessage, $oldVCal);
  351.  
  352. $this->assertEquals(Reader::read($before)->serialize(), $beforeVCal->serialize());
  353. }
  354. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement