function testStartRefusedThenGrantPermissionIsWriteCalendar()
 {
     $userAdmin = new UserAccountModel();
     $userAdmin->setEmail("*****@*****.**");
     $userAdmin->setUsername("admin");
     $userAdmin->setPassword("password");
     $user = new UserAccountModel();
     $user->setEmail("*****@*****.**");
     $user->setUsername("test");
     $user->setPassword("password");
     $userRepo = new UserAccountRepository();
     $userRepo->create($userAdmin);
     $userRepo->create($user);
     $site = new SiteModel();
     $site->setTitle("Test");
     $site->setSlug("test");
     $siteRepo = new SiteRepository();
     $siteRepo->create($site, $userAdmin, array(), $this->getSiteQuotaUsedForTesting());
     $api2appRepo = new API2ApplicationRepository();
     $api2app = $api2appRepo->create($userAdmin, "Title");
     $userInApi2AppRepo = new UserInAPI2ApplicationRepository();
     #### Initial Set
     $permissions = new API2ApplicationUserPermissionsModel();
     // no permissions at all ....
     $userInApi2AppRepo->setPermissionsForUserInApp($permissions, $user, $api2app);
     #### Test
     $userInApp = $userInApi2AppRepo->loadByUserAndApplication($user, $api2app);
     $this->assertEquals(false, $userInApp->getIsEditor());
     #### This should do nothing
     $permissions = new API2ApplicationUserPermissionsModel();
     $userInApi2AppRepo->setPermissionsForUserInApp($permissions, $user, $api2app);
     #### Test
     $userInApp = $userInApi2AppRepo->loadByUserAndApplication($user, $api2app);
     $this->assertEquals(false, $userInApp->getIsEditor());
     #### Then Remove
     $permissions = new API2ApplicationUserPermissionsModel();
     $permissions->setIsEditorGranted();
     $userInApi2AppRepo->setPermissionsForUserInApp($permissions, $user, $api2app);
     #### Test
     $userInApp = $userInApi2AppRepo->loadByUserAndApplication($user, $api2app);
     $this->assertEquals(true, $userInApp->getIsEditor());
     #### This should do nothing
     $permissions = new API2ApplicationUserPermissionsModel();
     $userInApi2AppRepo->setPermissionsForUserInApp($permissions, $user, $api2app);
     #### Test
     $userInApp = $userInApi2AppRepo->loadByUserAndApplication($user, $api2app);
     $this->assertEquals(true, $userInApp->getIsEditor());
 }