@@ -91,6 +91,40 @@ TEST_CASE("Test advanced diagram filter anyof")
9191 CHECK_FALSE (filter.should_include (namespace_{" ns1::ns2::detail" }));
9292}
9393
94+ TEST_CASE (" Test advanced diagram filter anyof with paths" )
95+ {
96+ auto cfg =
97+ clanguml::config::load (" ./test_config_data/filters_advanced.yml" );
98+
99+ auto &config = *cfg.diagrams [" anyof_paths_test" ];
100+ clanguml::include_diagram::model::diagram diagram;
101+
102+ diagram.set_complete (true );
103+
104+ auto filter_ptr = diagram_filter_factory::create (diagram, config);
105+ diagram_filter &filter = *filter_ptr;
106+
107+ CHECK (config.filter_mode () == filter_mode_t ::advanced);
108+
109+ clanguml::common::model::element std_thread{{}};
110+ std_thread.set_namespace (namespace_{" std" });
111+ std_thread.set_name (" thread" );
112+ std_thread.set_file (" /usr/include/thread" );
113+ CHECK (filter.should_include (std_thread));
114+
115+ std_thread.set_name (" jthread" );
116+ CHECK_FALSE (filter.should_include (std_thread));
117+
118+ clanguml::common::model::element myclass{{}};
119+ myclass.set_namespace (namespace_{" myns" });
120+ myclass.set_name (" myclass" );
121+
122+ auto myclass_path = config.root_directory () / " include/myclass.h" ;
123+
124+ myclass.set_file (weakly_canonical (myclass_path).string ());
125+ CHECK (filter.should_include (myclass));
126+ }
127+
94128TEST_CASE (" Test advanced diagram filter modules" )
95129{
96130 auto cfg =
0 commit comments