You are here

public function PullBaseTest::testProcessItemCreate in Salesforce Suite 8.4

Same name and namespace in other branches
  1. 8.3 modules/salesforce_pull/tests/src/Unit/PullBaseTest.php \Drupal\Tests\salesforce_pull\Unit\PullBaseTest::testProcessItemCreate()
  2. 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 253

Class

PullBaseTest
Test Object instantitation.

Namespace

Drupal\Tests\salesforce_pull\Unit

Code

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',
  ]));
}