public function PullBaseTest::testProcessItemCreate in Salesforce Suite 8.3
Same name and namespace in other branches
- 8.4 modules/salesforce_pull/tests/src/Unit/PullBaseTest.php \Drupal\Tests\salesforce_pull\Unit\PullBaseTest::testProcessItemCreate()
- 5.0.x modules/salesforce_pull/tests/src/Unit/PullBaseTest.php \Drupal\Tests\salesforce_pull\Unit\PullBaseTest::testProcessItemCreate()
Test handler operation, create with good data.
File
- modules/
salesforce_pull/ tests/ src/ Unit/ PullBaseTest.php, line 243
Class
- PullBaseTest
- Test Object instantitation.
Namespace
Drupal\Tests\salesforce_pull\UnitCode
public function testProcessItemCreate() {
// Mock mapped object EntityStorage object.
$prophecy = $this
->prophesize(EntityStorageBase::CLASS);
$prophecy
->loadByProperties(Argument::any())
->willReturn([]);
$prophecy
->create(Argument::type('array'))
->willReturn($this->mappedObject);
$entityStorage = $prophecy
->reveal();
// Mock EntityTypeManagerInterface
// (with special MappedObjectStorage mock above)
$prophecy = $this
->prophesize(EntityTypeManagerInterface::CLASS);
$prophecy
->getStorage('salesforce_mapping')
->willReturn($this->salesforceMappingStorage);
$prophecy
->getStorage('salesforce_mapped_object')
->willReturn($entityStorage);
$prophecy
->getStorage('test')
->willReturn($this->drupalEntityStorage);
$prophecy
->getDefinition('test')
->willReturn($this->entityDefinition);
$this->etm = $prophecy
->reveal();
$this->pullWorker = $this
->getMockBuilder(PullBase::CLASS)
->setConstructorArgs([
$this->etm,
$this->sfapi,
$this->ed,
])
->setMethods([
'salesforcePullEvent',
])
->getMockForAbstractClass();
$this->pullWorker
->method('salesforcePullEvent')
->willReturn(NULL);
$sobject = new SObject([
'id' => $this->salesforce_id,
'attributes' => [
'type' => 'test',
],
]);
$item = new PullQueueItem($sobject, $this->mapping);
$this
->assertEquals(MappingConstants::SALESFORCE_MAPPING_SYNC_SF_CREATE, $this->pullWorker
->processItem($item));
$this
->assertEmpty($this->etm
->getStorage('salesforce_mapped_object')
->loadByProperties([
'name' => 'test_test',
]));
}