@@ -41,6 +41,40 @@ public function test_that_module_classes_are_loaded() {
4141 });
4242 }
4343
44+ public function test_that_parent_classes_are_known () {
45+ // GIVEN a compiler configured to compile a sample app
46+ $ compiler = Compiler::new (['app_class_name ' => App::class]);
47+
48+ Apps::run ($ compiler , function (Compiler $ compiler ) {
49+ // WHEN you check reflections of module classes
50+ // THEN only classes of loaded modules are there
51+ $ this ->assertArrayHasKey (\Osm \Core \Samples \Some \Some::class,
52+ $ compiler ->app ->classes );
53+
54+ // AND each class has a module class name assigned
55+ $ this ->assertTrue ($ compiler ->app ->classes
56+ [\Osm \Core \Samples \Some \Some::class]->parent_class_name ==
57+ \Osm \Core \Object_::class);
58+ });
59+ }
60+
61+ public function test_that_child_classes_are_known () {
62+ // GIVEN a compiler configured to compile a sample app
63+ $ compiler = Compiler::new (['app_class_name ' => App::class]);
64+
65+ Apps::run ($ compiler , function (Compiler $ compiler ) {
66+ // WHEN you check reflections of module classes
67+ // THEN only classes of loaded modules are there
68+ $ this ->assertArrayHasKey (\Osm \Core \Samples \Some \Some::class,
69+ $ compiler ->app ->classes );
70+
71+ // AND each class has a module class name assigned
72+ $ this ->assertTrue (in_array (\Osm \Core \Samples \Some \Other::class,
73+ $ compiler ->app ->classes [\Osm \Core \Samples \Some \Some::class]
74+ ->child_class_names ));
75+ });
76+ }
77+
4478 public function test_that_external_classes_are_loaded () {
4579 // GIVEN a compiler configured to compile a sample app
4680 $ compiler = Compiler::new (['app_class_name ' => App::class]);
0 commit comments