markTestSkipped('DBMultiEnum only supported by MySQL'); return; } parent::setUp(); } protected function tearDown(): void { if (!(DB::get_conn() instanceof MySQLDatabase)) { return; } parent::tearDown(); } public function testLoadDataFromMultiEnum() { $article = new MultiEnumArticle(); $article->Colours = 'Red,Green'; $field = new CheckboxSetField( 'Colours', 'Colours', [ 'Red' => 'Red', 'Blue' => 'Blue', 'Green' => 'Green', ] ); $form = new Form( Controller::curr(), 'Form', new FieldList($field), new FieldList() ); $form->loadDataFrom($article); $value = $field->Value(); $this->assertEquals(['Red', 'Green'], $value); } public function testSavingIntoMultiEnum() { $field = new CheckboxSetField( 'Colours', 'Colours', [ 'Red' => 'Red', 'Blue' => 'Blue', 'Green' => 'Green', ] ); $article = new MultiEnumArticle(); $field->setValue(['Red' => 'Red', 'Blue' => 'Blue']); $field->saveInto($article); $article->write(); $dbValue = DB::query( sprintf( 'SELECT "Colours" FROM "CheckboxSetFieldTest_MultiEnumArticle" WHERE "ID" = %s', $article->ID ) )->value(); // JSON encoded values $this->assertEquals('Red,Blue', $dbValue); } }