Adds a test and the corresponding bugfix.

This commit is contained in:
Vassyli
2021-02-03 20:12:49 +01:00
committed by Basilius Sauter
parent 60a3a8bd2b
commit f7504bbb60
2 changed files with 26 additions and 3 deletions
+9 -3
View File
@@ -202,11 +202,17 @@ class Scene implements CreateableInterface, SceneConnectable
/**
* Returns a connection group entity associated with this scene by a given name.
* @param string $name
* @return SceneConnectionGroup
* @return SceneConnectionGroup|null
*/
public function getConnectionGroup(string $name): SceneConnectionGroup
public function getConnectionGroup(string $name): ?SceneConnectionGroup
{
return $this->filterConnectionGroupCollectionByName($name)->first();
$filtered = $this->filterConnectionGroupCollectionByName($name)->first();
if (!$filtered) {
return null;
} else {
return $filtered;
}
}
/**
+17
View File
@@ -364,4 +364,21 @@ class SceneModelTest extends CoreModelTestCase
$this->expectException(ArgumentException::class);
$scene1->getConnectionGroup("lotgd/tests/village/hidden")->connect($scene2->getConnectionGroup("lotgd/tests/forest/category"));
}
/**
* @see https://github.com/lotgd/core/issues/150
*/
public function testIfGetConnectionGroupReturnsNullAndDoesNotThrowATypeError()
{
$scene1 = $this->getEntityManager()->getRepository(Scene::class)->find("30000000-0000-0000-0000-000000000001");
# Positively assert that this usually works
$connectionGroup = $scene1->getConnectionGroup("lotgd/tests/village/empty");
$this->assertNotNull($connectionGroup);
$this->assertInstanceOf(SceneConnectionGroup::class, $connectionGroup);
# Assert that connectionGroup is null if it does not exist.
$connectionGroup = $scene1->getConnectionGroup("this-does-not-exist");
$this->assertNull($connectionGroup);
}
}