-
Notifications
You must be signed in to change notification settings - Fork 20
/
disable_io_inclusion_manager_spec.patch
66 lines (64 loc) · 2.61 KB
/
disable_io_inclusion_manager_spec.patch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
diff --git a/projects/generator/spec/inclusion_manager_spec.cpp b/projects/generator/spec/inclusion_manager_spec.cpp
index 8f011ab..8a583d8 100644
--- a/projects/generator/spec/inclusion_manager_spec.cpp
+++ b/projects/generator/spec/inclusion_manager_spec.cpp
@@ -26,6 +26,7 @@
#include "dogen/utility/test_data/validating_resolver.hpp"
#include "dogen/utility/test_data/tds_test_good.hpp"
#include "dogen/utility/test/logging.hpp"
+#include "dogen/utility/test/macros.hpp"
#include "dogen/generator/backends/cpp/cpp_location_manager.hpp"
#include "dogen/generator/backends/cpp/cpp_location_request.hpp"
#include "dogen/generator/test/mock_settings_factory.hpp"
@@ -116,6 +117,15 @@ inclusion_manager_with_no_keys(const dogen::sml::model& m) {
return cpp_inclusion_manager(m, lm, no_keys, integrated_io, no_io);
}
+cpp_inclusion_manager
+inclusion_manager_with_integrated_io(const dogen::sml::model& m) {
+ cpp_location_manager lm(m.name(), mock_settings());
+ bool no_keys(false);
+ bool integrated_io(true);
+ bool no_io(false);
+ return cpp_inclusion_manager(m, lm, no_keys, integrated_io, no_io);
+}
+
typedef std::function<
cpp_inclusion_manager
(const dogen::sml::model&)
@@ -406,4 +416,37 @@ BOOST_AUTO_TEST_CASE(processing_one_pod_model_with_no_keys_configuration_generat
}
}
+BOOST_IGNORE_AUTO_TEST_CASE(processing_one_pod_model_with_integrated_io_configuration_generates_expected_includes) {
+ SETUP_TEST_LOG_SOURCE("processing_one_pod_model_with_integrated_io_configuration_generates_expected_includes");
+
+ const auto f(inclusion_manager_with_integrated_io);
+ const auto i(includes_for_one_pod_model(cpp_facet_types::domain, f));
+ BOOST_REQUIRE(i.size() == 4);
+
+ // header
+ // FIXME: no iosfwd, expected with current impl
+ const auto hs(i[header_system]);
+ BOOST_LOG_SEV(lg, debug) << "header system dependencies: " << hs;
+ BOOST_CHECK(hs.size() == 1);
+
+ // implementation
+ const auto iu(i[implementation_user]);
+ BOOST_LOG_SEV(lg, debug) << "implementation user dependencies: " << iu;
+ BOOST_CHECK(iu.size() == 2);
+ std::string a(iu.front()), b(iu.back());
+ if (!boost::ends_with(b, io_postfix))
+ std::swap(a,b);
+
+ BOOST_CHECK(asserter::assert_contains(pod_name, a));
+ BOOST_CHECK(asserter::assert_contains(domain, a));
+
+ BOOST_CHECK(asserter::assert_contains(versioned_key, b));
+ BOOST_CHECK(asserter::assert_contains(domain, b));
+
+ const auto is(i[implementation_system]);
+ BOOST_LOG_SEV(lg, debug) << "implementation system dependencies: " << is;
+ BOOST_CHECK(is.empty());
+
+}
+
BOOST_AUTO_TEST_SUITE_END()