public function testSortBlocks() { $updaterMock = $this->getMockBuilder('ConLayout\\Updater\\LayoutUpdaterInterface')->getMock(); $updaterMock->method('getLayoutStructure')->willReturn(new Config([])); $layout = new Layout($this->blockFactory, $updaterMock); $expectedOrder = [1 => 'block-2', 2 => 'block-4', 3 => 'block-1', 4 => 'block-3']; $block1 = new ViewModel([], ['order' => 5]); $block2 = new ViewModel([], ['order' => -10]); $block3 = new ViewModel([], ['order' => 10]); $block4 = new ViewModel(); $layout->addBlock('block-1', $block1); $layout->addBlock('block-2', $block2); $layout->addBlock('block-3', $block3); $layout->addBlock('block-4', $block4); $layout->load(); $i = 1; foreach (array_keys($layout->getBlocks()) as $blockId) { $this->assertEquals($expectedOrder[$i], $blockId); $i++; } }