You are here

protected function QueueHandlerTest::setUp in Salesforce Suite 8.3

Same name and namespace in other branches
  1. 8.4 modules/salesforce_pull/tests/src/Unit/QueueHandlerTest.php \Drupal\Tests\salesforce_pull\Unit\QueueHandlerTest::setUp()
  2. 5.0.x modules/salesforce_pull/tests/src/Unit/QueueHandlerTest.php \Drupal\Tests\salesforce_pull\Unit\QueueHandlerTest::setUp()

Overrides UnitTestCase::setUp

File

modules/salesforce_pull/tests/src/Unit/QueueHandlerTest.php, line 33

Class

QueueHandlerTest
Test Object instantitation.

Namespace

Drupal\Tests\salesforce_pull\Unit

Code

protected function setUp() {
  parent::setUp();
  $result = [
    'totalSize' => 1,
    'done' => TRUE,
    'records' => [],
  ];
  $this->sqrDone = new SelectQueryResult($result);
  $result['records'] = [
    [
      'Id' => '1234567890abcde',
      'attributes' => [
        'type' => 'dummy',
      ],
      'name' => 'Example',
    ],
  ];
  $this->sqr = new SelectQueryResult($result);
  $soql = new SelectQuery('dummy');
  $soql->fields = [
    'Id',
  ];
  $soql
    ->addCondition('LastModifiedDate', '1970-1-1T00:00:00Z', '>');
  $prophecy = $this
    ->prophesize(RestClientInterface::CLASS);
  $prophecy
    ->query(Argument::any())
    ->willReturn($this->sqr);
  $prophecy
    ->queryMore(Argument::any())
    ->willReturn($this->sqrDone);
  $this->sfapi = $prophecy
    ->reveal();
  $this->mapping = $this
    ->getMock(SalesforceMappingInterface::CLASS);
  $this->mapping
    ->expects($this
    ->any())
    ->method('__get')
    ->with($this
    ->equalTo('id'))
    ->willReturn(1);
  $this->mapping
    ->expects($this
    ->any())
    ->method('getSalesforceObjectType')
    ->willReturn('default');
  $this->mapping
    ->expects($this
    ->any())
    ->method('getPullFieldsArray')
    ->willReturn([
    'Name' => 'Name',
    'Account Number' => 'Account Number',
  ]);
  $this->mapping
    ->expects($this
    ->any())
    ->method('getNextPullTime')
    ->willReturn(0);
  $this->mapping
    ->method('getPullQuery')
    ->willReturn($soql);
  $prophecy = $this
    ->prophesize(QueueInterface::CLASS);
  $prophecy
    ->createItem()
    ->willReturn(1);
  $prophecy
    ->numberOfItems()
    ->willReturn(2);
  $this->queue = $prophecy
    ->reveal();
  $prophecy = $this
    ->prophesize(QueueDatabaseFactory::CLASS);
  $prophecy
    ->get(Argument::any())
    ->willReturn($this->queue);
  $this->queue_factory = $prophecy
    ->reveal();

  // Mock mapping ConfigEntityStorage object.
  $prophecy = $this
    ->prophesize(SalesforceMappingStorage::CLASS);
  $prophecy
    ->loadCronPullMappings(Argument::any())
    ->willReturn([
    $this->mapping,
  ]);
  $this->mappingStorage = $prophecy
    ->reveal();

  // Mock EntityTypeManagerInterface.
  $prophecy = $this
    ->prophesize(EntityTypeManagerInterface::CLASS);
  $prophecy
    ->getStorage('salesforce_mapping')
    ->willReturn($this->mappingStorage);
  $this->etm = $prophecy
    ->reveal();

  // Mock config.
  $prophecy = $this
    ->prophesize(Config::CLASS);
  $prophecy
    ->get('pull_max_queue_size', Argument::any())
    ->willReturn(QueueHandler::PULL_MAX_QUEUE_SIZE);
  $config = $prophecy
    ->reveal();
  $prophecy = $this
    ->prophesize(ConfigFactoryInterface::CLASS);
  $prophecy
    ->get('salesforce.settings')
    ->willReturn($config);
  $this->configFactory = $prophecy
    ->reveal();

  // Mock state.
  $prophecy = $this
    ->prophesize(StateInterface::CLASS);
  $prophecy
    ->get('salesforce.mapping_pull_info', Argument::any())
    ->willReturn([
    1 => [
      'last_pull_timestamp' => '0',
    ],
  ]);
  $prophecy
    ->set('salesforce.mapping_pull_info', Argument::any())
    ->willReturn(NULL);
  $this->state = $prophecy
    ->reveal();

  // Mock event dispatcher.
  $prophecy = $this
    ->prophesize(EventDispatcherInterface::CLASS);
  $prophecy
    ->dispatch(Argument::any(), Argument::any())
    ->willReturn();
  $this->ed = $prophecy
    ->reveal();
  $this->time = $this
    ->getMock(TimeInterface::CLASS);
  $this->qh = $this
    ->getMockBuilder(QueueHandler::CLASS)
    ->setMethods([
    'parseUrl',
  ])
    ->setConstructorArgs([
    $this->sfapi,
    $this->etm,
    $this->queue_factory,
    $this->configFactory,
    $this->ed,
    $this->time,
  ])
    ->getMock();
  $this->qh
    ->expects($this
    ->any())
    ->method('parseUrl')
    ->willReturn('https://example.salesforce.com');
}