public function testRun()
 {
     $repair = new OldGroupMembershipShares($this->connection, $this->groupManager);
     $this->groupManager->expects($this->exactly(2))->method('isInGroup')->willReturnMap([['member', 'group', true], ['not-a-member', 'group', false]]);
     $parent = $this->createShare(Constants::SHARE_TYPE_GROUP, 'group', null);
     $group2 = $this->createShare(Constants::SHARE_TYPE_GROUP, 'group2', $parent);
     $user1 = $this->createShare(Constants::SHARE_TYPE_USER, 'user1', $parent);
     // \OC\Share\Constant::$shareTypeGroupUserUnique === 2
     $member = $this->createShare(2, 'member', $parent);
     $notAMember = $this->createShare(2, 'not-a-member', $parent);
     $query = $this->connection->getQueryBuilder();
     $result = $query->select('id')->from('share')->orderBy('id', 'ASC')->execute();
     $rows = $result->fetchAll();
     $this->assertSame([['id' => $parent], ['id' => $group2], ['id' => $user1], ['id' => $member], ['id' => $notAMember]], $rows);
     $result->closeCursor();
     $repair->run();
     $query = $this->connection->getQueryBuilder();
     $result = $query->select('id')->from('share')->orderBy('id', 'ASC')->execute();
     $rows = $result->fetchAll();
     $this->assertSame([['id' => $parent], ['id' => $group2], ['id' => $user1], ['id' => $member]], $rows);
     $result->closeCursor();
 }
 public function testRun()
 {
     $repair = new OldGroupMembershipShares($this->connection, $this->groupManager);
     $this->groupManager->expects($this->exactly(2))->method('isInGroup')->willReturnMap([['member', 'group', true], ['not-a-member', 'group', false]]);
     $parent = $this->createShare(Constants::SHARE_TYPE_GROUP, 'group', null);
     $group2 = $this->createShare(Constants::SHARE_TYPE_GROUP, 'group2', $parent);
     $user1 = $this->createShare(Constants::SHARE_TYPE_USER, 'user1', $parent);
     // \OC\Share\Constant::$shareTypeGroupUserUnique === 2
     $member = $this->createShare(2, 'member', $parent);
     $notAMember = $this->createShare(2, 'not-a-member', $parent);
     $query = $this->connection->getQueryBuilder();
     $result = $query->select('id')->from('share')->orderBy('id', 'ASC')->execute();
     $rows = $result->fetchAll();
     $this->assertEquals([['id' => $parent], ['id' => $group2], ['id' => $user1], ['id' => $member], ['id' => $notAMember]], $rows);
     $result->closeCursor();
     /** @var IOutput | \PHPUnit_Framework_MockObject_MockObject $outputMock */
     $outputMock = $this->getMockBuilder('\\OCP\\Migration\\IOutput')->disableOriginalConstructor()->getMock();
     $repair->run($outputMock);
     $query = $this->connection->getQueryBuilder();
     $result = $query->select('id')->from('share')->orderBy('id', 'ASC')->execute();
     $rows = $result->fetchAll();
     $this->assertEquals([['id' => $parent], ['id' => $group2], ['id' => $user1], ['id' => $member]], $rows);
     $result->closeCursor();
 }