@@ -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