Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 6b0712a

Browse files
authored
feat(model-factory): add add post model and add term model to not erase all registered models in factory (#32)
1 parent ef1b336 commit 6b0712a

2 files changed

Lines changed: 22 additions & 0 deletions

File tree

src/Model/ModelFactory.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ public function registerPostModel(array $postModels): void {
5151
self::$postTypeModelClasses = $postModels;
5252
}
5353

54+
public function addPostModel(array $postModels): void {
55+
self::$postTypeModelClasses = array_merge(self::$postTypeModelClasses, $postModels);
56+
}
57+
5458
/**
5559
* Use in Simply Plugin to register your term type models
5660
*
@@ -60,6 +64,10 @@ public function registerTermModel(array $termModels): void {
6064
self::$termTypeModelClasses = $termModels;
6165
}
6266

67+
public function addTermModel(array $termModels): void {
68+
self::$termTypeModelClasses = array_merge(self::$termTypeModelClasses, $termModels);
69+
}
70+
6371
/**
6472
* Set key to have a clean mapping
6573
*

tests/unit/Model/ModelFactoryTest.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,4 +78,18 @@ public function testRegisterModels() {
7878
$this->assertSame($expected, $factoryReflection->getStaticPropertyValue('postTypeModelClasses'));
7979
$this->assertSame($expected, $factoryReflection->getStaticPropertyValue('termTypeModelClasses'));
8080
}
81+
82+
public function testRegisterMultipleModelsWithMultipleCall() {
83+
$factory = new ModelFactory();
84+
$classA = 'ClassA';
85+
$classB = 'ClassB';
86+
$expected = array($classA, $classB);
87+
$factory->registerPostModel(array($classA));
88+
$factory->registerTermModel(array($classA));
89+
$factory->addPostModel(array($classB));
90+
$factory->addTermModel(array($classB));
91+
$factoryReflection = new \ReflectionClass($factory);
92+
$this->assertSame($expected, $factoryReflection->getStaticPropertyValue('postTypeModelClasses'));
93+
$this->assertSame($expected, $factoryReflection->getStaticPropertyValue('termTypeModelClasses'));
94+
}
8195
}

0 commit comments

Comments
 (0)