$this->assertEquals(0, $settingsBag->get('enable_innodb_fts'));
}
+ /**
+ * The setting "contribution_invoice_settings" is actually a virtual value built on other settings.
+ * Check that various updates work as expected.
+ */
+ public function testVirtualContributionSetting_explicit() {
+ $s = \Civi::settings();
+
+ $this->assertEquals(10, $s->get('contribution_invoice_settings')['due_date']);
+ $this->assertEquals(10, $s->get('invoice_due_date'));
+ $this->assertEquals(NULL, $s->getExplicit('invoice_due_date'));
+
+ $s->set('invoice_due_date', 20);
+ $this->assertEquals(20, $s->get('contribution_invoice_settings')['due_date']);
+ $this->assertEquals(20, $s->get('invoice_due_date'));
+ $this->assertEquals(20, $s->getExplicit('invoice_due_date'));
+
+ $s->set('contribution_invoice_settings', array_merge($s->get('contribution_invoice_settings'), [
+ 'due_date' => 30,
+ ]));
+ $this->assertEquals(30, $s->get('contribution_invoice_settings')['due_date']);
+ $this->assertEquals(30, $s->get('invoice_due_date'));
+ $this->assertEquals(30, $s->getExplicit('invoice_due_date'));
+
+ $s->revert('invoice_due_date');
+ $this->assertEquals(10, $s->get('contribution_invoice_settings')['due_date']);
+ $this->assertEquals(10, $s->get('invoice_due_date'));
+ $this->assertEquals(NULL, $s->getExplicit('invoice_due_date'));
+ }
+
+ /**
+ * The setting "contribution_invoice_settings" is actually a virtual value built on other settings.
+ * Check that mandatory values ($civicrm_settings) are respected.
+ */
+ public function testVirtualContributionSetting_mandatory() {
+ $s = \Civi::settings();
+ $this->assertEquals(10, $s->get('contribution_invoice_settings')['due_date']);
+ $this->assertEquals(10, $s->get('invoice_due_date'));
+ $this->assertEquals(NULL, $s->getExplicit('invoice_due_date'));
+
+ $s->loadMandatory(['invoice_due_date' => 30]);
+
+ $this->assertEquals(30, $s->get('contribution_invoice_settings')['due_date']);
+ $this->assertEquals(30, $s->get('invoice_due_date'));
+ $this->assertEquals(NULL, $s->getExplicit('invoice_due_date'));
+ }
+
}