);
$this->assertNotEquals(
- $cache->makeKeyInternal( 'prefix', array( 'a', 'bc:', 'de' ) ),
- $cache->makeKeyInternal( 'prefix', array( 'a', 'bc', ':de' ) )
+ $cache->makeKeyInternal( 'prefix', [ 'a', 'bc:', 'de' ] ),
+ $cache->makeKeyInternal( 'prefix', [ 'a', 'bc', ':de' ] )
);
}
}
public function testGet() {
- $value = array( 'this' => 'is', 'a' => 'test' );
+ $value = [ 'this' => 'is', 'a' => 'test' ];
$key = wfMemcKey( 'test' );
$this->cache->add( $key, $value );
* @covers BagOStuff::getMulti
*/
public function testGetMulti() {
- $value1 = array( 'this' => 'is', 'a' => 'test' );
- $value2 = array( 'this' => 'is', 'another' => 'test' );
- $value3 = array( 'testing a key that may be encoded when sent to cache backend' );
- $value4 = array( 'another test where chars in key will be encoded' );
+ $value1 = [ 'this' => 'is', 'a' => 'test' ];
+ $value2 = [ 'this' => 'is', 'another' => 'test' ];
+ $value3 = [ 'testing a key that may be encoded when sent to cache backend' ];
+ $value4 = [ 'another test where chars in key will be encoded' ];
$key1 = wfMemcKey( 'test1' );
$key2 = wfMemcKey( 'test2' );
$this->cache->add( $key4, $value4 );
$this->assertEquals(
- array( $key1 => $value1, $key2 => $value2, $key3 => $value3, $key4 => $value4 ),
- $this->cache->getMulti( array( $key1, $key2, $key3, $key4 ) )
+ [ $key1 => $value1, $key2 => $value2, $key3 => $value3, $key4 => $value4 ],
+ $this->cache->getMulti( [ $key1, $key2, $key3, $key4 ] )
);
// cleanup
$this->assertType( 'ScopedCallback', $value1, 'First reentrant call returned lock' );
$this->assertType( 'ScopedCallback', $value1, 'Second reentrant call returned lock' );
}
+
+ /**
+ * @covers BagOStuff::__construct
+ * @covers BagOStuff::trackDuplicateKeys
+ */
+ public function testReportDupes() {
+ $logger = $this->getMock( 'Psr\Log\NullLogger' );
+ $logger->expects( $this->once() )
+ ->method( 'warning' )
+ ->with( 'Duplicate get(): "{key}" fetched {count} times', [
+ 'key' => 'foo',
+ 'count' => 2,
+ ] );
+
+ $cache = new HashBagOStuff( [
+ 'reportDupes' => true,
+ 'asyncHandler' => 'DeferredUpdates::addCallableUpdate',
+ 'logger' => $logger,
+ ] );
+ $cache->get( 'foo' );
+ $cache->get( 'bar' );
+ $cache->get( 'foo' );
+
+ DeferredUpdates::doUpdates();
+ }
}