Skip to content

Commit b457346

Browse files
committed
Add unit test for Types enumeration clas
1 parent 9c39f55 commit b457346

1 file changed

Lines changed: 54 additions & 5 deletions

File tree

tools/tests/unitTests/EnumerationTest.m

Lines changed: 54 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,59 @@ function testModuleEnumeration(testCase)
1515
end
1616

1717
function testTypeEnumeration(testCase)
18-
19-
20-
21-
18+
% Test constructor and property initialization
19+
typeEnum = openminds.enum.Types.Person;
20+
testCase.verifyEqual(typeEnum.ClassName, "openminds.core.actors.Person");
21+
testCase.verifyEqual(typeEnum.AliasClassName, "openminds.core.Person");
22+
testCase.verifyTrue(startsWith(typeEnum.TypeURI, "https://openminds."));
23+
24+
% Test None special case
25+
noneEnum = openminds.enum.Types.None;
26+
testCase.verifyEqual(noneEnum.ClassName, "None");
27+
testCase.verifyEqual(noneEnum.AliasClassName, "None");
28+
testCase.verifyEqual(noneEnum.TypeURI, "None");
29+
30+
% Test instance creation methods
31+
personInstance = typeEnum.create();
32+
testCase.verifyClass(personInstance, "openminds.core.actors.Person");
33+
34+
personInstance2 = typeEnum.createInstance();
35+
testCase.verifyClass(personInstance2, "openminds.core.actors.Person");
36+
37+
% Test error for multiple objects
38+
multipleEnums = [openminds.enum.Types.Person, openminds.enum.Types.Dataset];
39+
testCase.verifyError(@() multipleEnums.createInstance(), '');
40+
41+
% Test ismissing method
42+
testCase.verifyFalse(typeEnum.ismissing());
43+
testCase.verifyTrue(noneEnum.ismissing());
44+
45+
% Test getSchemaName method
46+
testCase.verifyEqual(typeEnum.getSchemaName(), "Person");
47+
48+
% Test static fromClassName method
49+
fromClassNameEnum = openminds.enum.Types.fromClassName("openminds.core.actors.Person");
50+
testCase.verifyEqual(fromClassNameEnum, openminds.enum.Types.Person);
51+
52+
% Test static fromClassName with multiple inputs
53+
multipleClassNames = ["openminds.core.actors.Person", "openminds.core.products.Dataset"];
54+
multipleEnumsResult = openminds.enum.Types.fromClassName(multipleClassNames);
55+
testCase.verifyEqual(multipleEnumsResult, [openminds.enum.Types.Person, openminds.enum.Types.Dataset]);
56+
57+
% Test static fromAtType method
58+
% Note: This test assumes the base URI is consistent with the current version
59+
baseURI = openminds.constant.BaseURI;
60+
fromAtTypeEnum = openminds.enum.Types.fromAtType(baseURI + "/Person");
61+
testCase.verifyEqual(fromAtTypeEnum, openminds.enum.Types.Person);
62+
63+
% Test static fromAtType with multiple inputs
64+
multipleAtTypes = [baseURI + "/Person", baseURI + "/Dataset"];
65+
multipleEnumsFromAtType = openminds.enum.Types.fromAtType(multipleAtTypes);
66+
testCase.verifyEqual(multipleEnumsFromAtType, [openminds.enum.Types.Person, openminds.enum.Types.Dataset]);
67+
68+
% Test error for invalid AtType
69+
testCase.verifyError(@() openminds.enum.Types.fromAtType("invalid://uri"), ...
70+
'OPENMINDS_MATLAB:Types:InvalidAtType');
2271
end
2372
end
24-
end
73+
end

0 commit comments

Comments
 (0)