getInstance(); self::assertInstanceOf(ICanReadFromStorage::class, $instance); } /** * Test basic put, get and delete operations */ public function testPutGetDelete() { $instance = $this->getInstance(); $ref = $instance->put('data12345'); self::assertNotEmpty($ref); self::assertEquals('data12345', $instance->get($ref)); $instance->delete($ref); } /** * Test a delete with an invalid reference */ public function testInvalidDelete() { self::expectException(ReferenceStorageException::class); $instance = $this->getInstance(); $instance->delete(-1234456); } /** * Test a get with an invalid reference */ public function testInvalidGet() { self::expectException(ReferenceStorageException::class); $instance = $this->getInstance(); $instance->get(-123456); } /** * Test an update with a given reference */ public function testUpdateReference() { $instance = $this->getInstance(); $ref = $instance->put('data12345'); self::assertNotEmpty($ref); self::assertEquals('data12345', $instance->get($ref)); self::assertEquals($ref, $instance->put('data5432', $ref)); self::assertEquals('data5432', $instance->get($ref)); } /** * Test that an invalid update results in an insert */ public function testInvalidUpdate() { $instance = $this->getInstance(); self::assertEquals(-123, $instance->put('data12345', -123)); } }