MockResponse::make(['id' => 'ACC-123'], 201), ]); $config = createTestConfig(); $connector = new AlfaBankConnector($config); $connector->withMockClient($mockClient); $payload = new SalaryAccountApplicationData( applicationId: 'app-1', applicationCreatedAt: '2023-10-10T10:00:00Z', registryNumber: 'reg-1', registryCreatedAt: '2023-10-10T10:00:00Z', contractNumber: 'cnt-1', bic: '044...', organization: new SalaryOrganizationData('Org LLC', '407...', '770...'), rowsCount: 1, employees: SalaryEmployeeData::collect([ ['firstName' => 'Ivan', 'lastName' => 'Ivanov'] ], DataCollection::class) ); $response = $connector->send(new CreateAccountApplicationRequest($payload)); expect($response->status())->toBe(201); }); test('can create salary payroll application', function () { $mockClient = new \Saloon\Http\Faking\MockClient([ CreatePayrollApplicationRequest::class => MockResponse::make(['id' => 'PAY-123'], 201), ]); $config = createTestConfig(); $connector = new AlfaBankConnector($config); $connector->withMockClient($mockClient); $payload = new SalaryPayrollApplicationData( applicationId: 'app-2', applicationCreatedAt: '2023-10-10T10:00:00Z', totalAmount: 1000.0, payrollId: 'pay-1', admissionValue: '1', registryNumber: 'reg-2', registryCreatedAt: '2023-10-10', contractNumber: 'cnt-1', bic: '044...', organization: new SalaryOrganizationData('Org LLC', '407...', '770...'), rowsCount: 1, employees: SalaryEmployeeData::collect([ ['firstName' => 'Ivan', 'lastName' => 'Ivanov', 'amount' => 1000.0] ], DataCollection::class) ); $response = $connector->send(new CreatePayrollApplicationRequest($payload)); expect($response->status())->toBe(201); }); test('can get salary application status', function () { $mockClient = new \Saloon\Http\Faking\MockClient([ GetAccountApplicationStatusRequest::class => MockResponse::make(['status' => 'PROCESSED'], 200), ]); $config = createTestConfig(); $connector = new AlfaBankConnector($config); $connector->withMockClient($mockClient); $response = $connector->send(new GetAccountApplicationStatusRequest('ACC-123')); expect($response->status())->toBe(200); });