getMockBuilder(Globals::class) ->setMethods(['getEventConfig']) ->getMock(); $extension->expects($this->exactly(2)) ->method('getEventConfig') ->willReturnOnConsecutiveCalls( null, [ 'lorem' => 'ipsum', 'event_end_date' => 1234567890, ] ); $globals = $extension->getGlobals(); $this->assertGlobalsExists('user', [], $globals); $this->assertGlobalsExists('event_config', [], $globals); $user['foo'] = 'bar'; $globals = $extension->getGlobals(); $this->assertGlobalsExists('user', ['foo' => 'bar'], $globals); $this->assertGlobalsExists('event_config', ['lorem' => 'ipsum'], $globals); $config = $globals['event_config']; $this->assertArrayHasKey('event_end_date', $config); /** @var Carbon $eventEndDate */ $eventEndDate = $config['event_end_date']; $this->assertInstanceOf(Carbon::class, $eventEndDate); $eventEndDate->setTimezone('UTC'); $this->assertEquals('2009-02-13 23:31:30', $eventEndDate->format('Y-m-d H:i:s')); } }