configMock = $this->createMock(Config::class); /** @var MockObject|SubjectReader subjectReaderMock */ $this->subjectReaderMock = $this->createMock(SubjectReader::class); $this->subjectReaderMock->method('readStoreId') ->willReturn('123'); $this->builder = new CustomSettingsBuilder($this->subjectReaderMock, $this->configMock); } public function testBuildWithEmailCustomerDisabled() { $this->configMock->method('shouldEmailCustomer') ->with('123') ->willReturn(false); $this->assertEquals([], $this->builder->build([])); } public function testBuildWithEmailCustomerEnabled() { $this->configMock->method('shouldEmailCustomer') ->with('123') ->willReturn(true); $expected = [ 'transactionRequest' => [ 'transactionSettings' => [ 'setting' => [ [ 'settingName' => 'emailCustomer', 'settingValue' => 'true' ] ] ] ] ]; $this->assertEquals($expected, $this->builder->build([])); } }