diff --git a/src/lib/diff/test-mutation-target.hpp b/src/lib/diff/test-mutation-target.hpp index 4940d632b..b0ee081f2 100644 --- a/src/lib/diff/test-mutation-target.hpp +++ b/src/lib/diff/test-mutation-target.hpp @@ -47,6 +47,7 @@ #include "lib/error.hpp" #include "lib/symbol.hpp" +#include "lib/iter-adapter-stl.hpp" #include "lib/diff/record.hpp" #include "lib/diff/tree-mutator.hpp" #include "lib/idi/genfunc.hpp" @@ -267,6 +268,15 @@ namespace diff{ } + using const_iterator = typename iter_stl::_SeqT::Range; + + const_iterator begin() const { return iter_stl::eachElm(content_); } + const_iterator end() const { return const_iterator(); } + + friend const_iterator begin (TestMutationTarget const& target) { return target.begin(); } + friend const_iterator end (TestMutationTarget const& target) { return target.end(); } + + private: }; diff --git a/tests/library/diff/tree-manipulation-binding-test.cpp b/tests/library/diff/tree-manipulation-binding-test.cpp index e4e2fd574..bdd26517a 100644 --- a/tests/library/diff/tree-manipulation-binding-test.cpp +++ b/tests/library/diff/tree-manipulation-binding-test.cpp @@ -28,6 +28,7 @@ #include "lib/diff/test-mutation-target.hpp" #include "lib/time/timevalue.hpp" #include "lib/format-cout.hpp" +#include "lib/format-util.hpp" #include "lib/util.hpp" //#include @@ -107,6 +108,7 @@ namespace test{ void mutateDummy() { + MARK_TEST_FUN; TestMutationTarget target; auto mutator = TreeMutator::build() @@ -119,6 +121,25 @@ namespace test{ CHECK (target.contains("α = 1")); CHECK (target.verifyEvent("injectNew","α = 1") .after("attachMutator")); + + mutator.injectNew (ATTRIB3); + mutator.injectNew (ATTRIB3); + mutator.injectNew (CHILD_B); + mutator.injectNew (CHILD_B); + mutator.injectNew (CHILD_T); + CHECK (target.verify("attachMutator") + .beforeEvent("injectNew","α = 1") + .beforeEvent("injectNew","γ = 3.45") + .beforeEvent("injectNew","γ = 3.45") + .beforeEvent("injectNew","b") + .beforeEvent("injectNew","b") + .beforeEvent("injectNew","78:56:34.012") + ); + cout << "Content after population; " + << util::join(target) <