diff --git a/src/php/ibisclient/dto/IbisGroup.php b/src/php/ibisclient/dto/IbisGroup.php index 0c0136251ea2c8d3d2fd045036e5f763babb448c..a288e646f33ccb6d2928f9f87bfbd662673f6eec 100644 --- a/src/php/ibisclient/dto/IbisGroup.php +++ b/src/php/ibisclient/dto/IbisGroup.php @@ -199,7 +199,7 @@ class IbisGroup extends IbisDto { $group->unflattened = true; if (isset($group->membersOfInst)) - $group->membersOfInst = $group->membersOfInst->unflatten(em); + $group->membersOfInst = $group->membersOfInst->unflatten($em); IbisPerson::unflattenPeople($em, $group->members); IbisPerson::unflattenPeople($em, $group->directMembers); IbisInstitution::unflattenInsts($em, $group->owningInsts); diff --git a/src/php/ibisclient/dto/IbisResult.php b/src/php/ibisclient/dto/IbisResult.php index b47d80a3d2c5fa6349db32c8b7c191913a178230..73b18b7f75444420653a03a4dc3885538a520a04 100644 --- a/src/php/ibisclient/dto/IbisResult.php +++ b/src/php/ibisclient/dto/IbisResult.php @@ -298,6 +298,8 @@ class IbisResultParser $element = new IbisPerson($attrs); elseif ($tagname === "institution") $element = new IbisInstitution($attrs); + elseif ($tagname === "membersOfInst") + $element = new IbisInstitution($attrs); elseif ($tagname === "group") $element = new IbisGroup($attrs); elseif ($tagname === "identifier") diff --git a/src/php/test/UnitTests.php b/src/php/test/UnitTests.php index 49e78a82e7f8a25c97c79c06a453d96e992f3bf8..426d520772e5f8e3d81370b57016b08849d106ff 100644 --- a/src/php/test/UnitTests.php +++ b/src/php/test/UnitTests.php @@ -953,6 +953,13 @@ class UnitTests extends PHPUnit_Framework_TestCase $this->assertTrue($group->owningInsts[0] == $group->managesInsts[0]); } + public function testGetGroupMembersOfInst() + { + $group = UnitTests::$gm->getGroup("uis-members", "members_of_inst"); + $this->assertEquals("UIS", $group->membersOfInst->instid); + $this->assertEquals("University Information Services", $group->membersOfInst->name); + } + public function testGetGroupMgrs() { $group = UnitTests::$gm->getGroup("cs-editors", "managed_by_groups.managed_by_groups"); @@ -980,7 +987,7 @@ class UnitTests extends PHPUnit_Framework_TestCase $this->assertEquals(1, sizeof($groups)); $this->assertEquals("uistest-members", $groups[0]->name); $this->assertTrue(sizeof($groups[0]->members) > 10); - $this->assertEquals("abh99", $groups[0]->members[0]->identifier->value); + $this->assertEquals("abc123", $groups[0]->members[0]->identifier->value); } public function testGroupSearchCount() diff --git a/src/python/ibisclient/dto.py b/src/python/ibisclient/dto.py index e13d77c2ebb66b16d6591cc5b2f890a3ceccad16..9f534197b2dfb66b7f986c194dda8bf5e9398ad3 100644 --- a/src/python/ibisclient/dto.py +++ b/src/python/ibisclient/dto.py @@ -1324,6 +1324,8 @@ class IbisResultParser: element = IbisPerson(attrs) elif tagname == "institution": element = IbisInstitution(attrs) + elif tagname == "membersOfInst": + element = IbisInstitution(attrs) elif tagname == "group": element = IbisGroup(attrs) elif tagname == "identifier": diff --git a/src/python/test/unittests.py b/src/python/test/unittests.py index 1b3eb073ec1a9512991264022e54b080b053c91e..8870e13f423eeae67aa526d4140392080076d241 100644 --- a/src/python/test/unittests.py +++ b/src/python/test/unittests.py @@ -796,6 +796,11 @@ class IbisUnitTests(unittest.TestCase): self.assertEqual("UIS", group.managesInsts[0].instid) self.assertTrue(group.owningInsts[0] == group.managesInsts[0]) + def test_get_group_members_of_inst(self): + group = gm.getGroup("uis-members", "members_of_inst") + self.assertEqual("UIS", group.membersOfInst.instid) + self.assertEqual("University Information Services", group.membersOfInst.name) + def test_get_group_mgrs(self): group = gm.getGroup("cs-editors", "managed_by_groups.managed_by_groups") self.assertEqual("cs-managers", group.managedByGroups[0].name) @@ -818,7 +823,7 @@ class IbisUnitTests(unittest.TestCase): self.assertEqual(1, len(groups)) self.assertEqual("uistest-members", groups[0].name) self.assertTrue(len(groups[0].members) > 10) - self.assertEqual("abh99", groups[0].members[0].identifier.value) + self.assertEqual("abc123", groups[0].members[0].identifier.value) def test_group_search_count(self): count = gm.searchCount("maths editors") diff --git a/src/python3/ibisclient/dto.py b/src/python3/ibisclient/dto.py index fa7101ea904c19ae7c00694f4c72a2d2697ff814..e54fae318f40d55ae8e4c9692e955bc064b19fce 100644 --- a/src/python3/ibisclient/dto.py +++ b/src/python3/ibisclient/dto.py @@ -1324,6 +1324,8 @@ class IbisResultParser: element = IbisPerson(attrs) elif tagname == "institution": element = IbisInstitution(attrs) + elif tagname == "membersOfInst": + element = IbisInstitution(attrs) elif tagname == "group": element = IbisGroup(attrs) elif tagname == "identifier": diff --git a/src/python3/test/unittests.py b/src/python3/test/unittests.py index 650311a3d520ce68f8c5bc9c5e76833be929210f..5e7c9f5041b7b1ea271dfe2fd26f3b8e61e7edf9 100644 --- a/src/python3/test/unittests.py +++ b/src/python3/test/unittests.py @@ -796,6 +796,11 @@ class IbisUnitTests(unittest.TestCase): self.assertEqual("UIS", group.managesInsts[0].instid) self.assertTrue(group.owningInsts[0] == group.managesInsts[0]) + def test_get_group_members_of_inst(self): + group = gm.getGroup("uis-members", "members_of_inst") + self.assertEqual("UIS", group.membersOfInst.instid) + self.assertEqual("University Information Services", group.membersOfInst.name) + def test_get_group_mgrs(self): group = gm.getGroup("cs-editors", "managed_by_groups.managed_by_groups") self.assertEqual("cs-managers", group.managedByGroups[0].name) @@ -818,7 +823,7 @@ class IbisUnitTests(unittest.TestCase): self.assertEqual(1, len(groups)) self.assertEqual("uistest-members", groups[0].name) self.assertTrue(len(groups[0].members) > 10) - self.assertEqual("abh99", groups[0].members[0].identifier.value) + self.assertEqual("abc123", groups[0].members[0].identifier.value) def test_group_search_count(self): count = gm.searchCount("maths editors")