+ /**
+ * @param string $fixture
+ * Key from $this->fixtures
+ * @param string $status
+ * Membership status
+ * @param array $emailParams
+ *
+ * @return \CRM_Member_DAO_Membership
+ * @throws \API_Exception
+ * @throws \Civi\API\Exception\UnauthorizedException
+ */
+ protected function createMembershipFromFixture($fixture, $status, $emailParams = []) {
+ /* @var CRM_Member_DAO_Membership $membership */
+ $membership = $this->createTestObject(
+ 'CRM_Member_DAO_Membership',
+ array_merge($this->fixtures[$fixture], ['status_id' => CRM_Core_PseudoConstant::getKey('CRM_Member_BAO_Membership', 'status_id', $status)])
+ );
+ $this->assertInternalType('numeric', $membership->id);
+ if ($emailParams) {
+ Civi\Api4\Email::create()->setCheckPermissions(FALSE)->setValues(array_merge([
+ 'contact_id' => $membership->contact_id,
+ 'location_type_id' => 1,
+ ], $emailParams))->execute();
+ }
+ return $membership;
+ }
+
+ /**
+ * Create action schedule from defined fixtures.
+ *
+ * @param string $fixture
+ */
+ protected function createScheduleFromFixtures($fixture) {
+ $actionScheduleDao = CRM_Core_BAO_ActionSchedule::add($this->fixtures[$fixture]);
+ $this->assertInternalType('numeric', $actionScheduleDao->id);
+ }
+