public function testCanFilterOnChecksums()
{
$user = 'christer';
$id1 = 'id1';
$id2 = 'id2';
$id3 = 'id3';
$id4 = 'id4';
$id5 = 'id5';
$image1 = $this->getImage();
$image1->setChecksum('checksum1');
$image2 = $this->getImage();
$image2->setChecksum('checksum2');
$image3 = $this->getImage();
$image3->setChecksum('checksum3');
$image4 = $this->getImage();
$image4->setChecksum('checksum4');
$image5 = $this->getImage();
$image5->setChecksum('checksum5');
// This is the same for all image objects above
$originalChecksum = $image1->getOriginalChecksum();
$this->assertTrue($this->adapter->insertImage($user, $id1, $image1));
$this->assertTrue($this->adapter->insertImage($user, $id2, $image2));
$this->assertTrue($this->adapter->insertImage($user, $id3, $image3));
$this->assertTrue($this->adapter->insertImage($user, $id4, $image4));
$this->assertTrue($this->adapter->insertImage($user, $id5, $image5));
$query = new Query();
$model = new Images();
$query->originalChecksums(['foobar']);
$this->assertCount(0, $this->adapter->getImages([$user], $query, $model));
$this->assertSame(0, $model->getHits());
$query->originalChecksums([$originalChecksum]);
$this->assertCount(5, $this->adapter->getImages([$user], $query, $model));
$this->assertSame(5, $model->getHits());
$query->checksums(['foobar']);
$this->assertCount(0, $this->adapter->getImages([$user], $query, $model));
$this->assertSame(0, $model->getHits());
$query->checksums(['checksum1']);
$this->assertCount(1, $this->adapter->getImages([$user], $query, $model));
$this->assertSame(1, $model->getHits());
$query->checksums(['checksum1', 'checksum2']);
$this->assertCount(2, $this->adapter->getImages([$user], $query, $model));
$this->assertSame(2, $model->getHits());
$query->checksums(['checksum1', 'checksum2', 'checksum3']);
$this->assertCount(3, $this->adapter->getImages([$user], $query, $model));
$this->assertSame(3, $model->getHits());
$query->checksums(['checksum1', 'checksum2', 'checksum3', 'checksum4']);
$this->assertCount(4, $this->adapter->getImages([$user], $query, $model));
$this->assertSame(4, $model->getHits());
$query->checksums(['checksum1', 'checksum2', 'checksum3', 'checksum4', 'checksum5']);
$this->assertCount(5, $this->adapter->getImages([$user], $query, $model));
$this->assertSame(5, $model->getHits());
}