public function testGetData()
 {
     $ruleId = 42;
     $ruleData = ['name' => 'Catalog Price Rule'];
     $ruleMock = $this->getMock('Magento\\CatalogRule\\Model\\Rule', [], [], '', false);
     $this->collectionMock->expects($this->once())->method('getItems')->willReturn([$ruleMock]);
     $ruleMock->expects($this->atLeastOnce())->method('getId')->willReturn($ruleId);
     $ruleMock->expects($this->once())->method('load')->willReturnSelf();
     $ruleMock->expects($this->once())->method('getData')->willReturn($ruleData);
     $this->assertEquals([$ruleId => $ruleData], $this->model->getData());
     // Load from object-cache the second time
     $this->assertEquals([$ruleId => $ruleData], $this->model->getData());
 }
 public function testGetDataIfRulePersisted()
 {
     $ruleId = 42;
     $ruleData = ['name' => 'Catalog Price Rule'];
     $this->collectionMock->expects($this->once())->method('getItems')->willReturn([]);
     $persistedData = ['key' => 'value'];
     $this->dataPersistorMock->expects($this->once())->method('get')->with('catalog_rule')->willReturn($persistedData);
     $newRuleMock = $this->getMock('Magento\\CatalogRule\\Model\\Rule', [], [], '', false);
     $newRuleMock->expects($this->atLeastOnce())->method('setData')->with($persistedData)->willReturnSelf();
     $newRuleMock->expects($this->atLeastOnce())->method('getId')->willReturn($ruleId);
     $newRuleMock->expects($this->once())->method('getData')->willReturn($ruleData);
     $this->collectionMock->expects($this->once())->method('getNewEmptyItem')->willReturn($newRuleMock);
     $this->assertEquals([$ruleId => $ruleData], $this->model->getData());
     // Load from object-cache the second time
     $this->assertEquals([$ruleId => $ruleData], $this->model->getData());
 }