diff options
| author | crupest <crupest@outlook.com> | 2021-03-24 19:14:19 +0800 |
|---|---|---|
| committer | crupest <crupest@outlook.com> | 2021-03-24 19:14:19 +0800 |
| commit | 7f15a1ff9a2007e119798053083a0a87d042990a (patch) | |
| tree | cb35c01a7eaee867376d959b96c9bbd15df939e5 /test/common | |
| parent | 74956951ee663012df0c3fe4ebe29799cb2f7732 (diff) | |
| parent | 7703063a5816b089483e78ccd74bb9902ccfbea8 (diff) | |
| download | cru-7f15a1ff9a2007e119798053083a0a87d042990a.tar.gz cru-7f15a1ff9a2007e119798053083a0a87d042990a.tar.bz2 cru-7f15a1ff9a2007e119798053083a0a87d042990a.zip | |
Merge branch 'master' of https://github.com/crupest/CruUI
Diffstat (limited to 'test/common')
| -rw-r--r-- | test/common/HandlerRegistryTest.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/test/common/HandlerRegistryTest.cpp b/test/common/HandlerRegistryTest.cpp new file mode 100644 index 00000000..d1792c7c --- /dev/null +++ b/test/common/HandlerRegistryTest.cpp @@ -0,0 +1,36 @@ +#include "cru/common/HandlerRegistry.hpp" + +#include <gtest/gtest.h> +#include <algorithm> + +TEST(HandlerRegistry, Work) { + using namespace cru; + HandlerRegistry<void()> registry; + + int counter = 1; + + auto tag1 = registry.AddHandler([&counter] { counter++; }); + auto tag2 = registry.AddHandler([&counter] { counter++; }); + + for (const auto& handler : registry) { + handler(); + } + + ASSERT_EQ(counter, 3); + + registry.RemoveHandler(tag1); + + for (const auto& handler : registry) { + handler(); + } + + ASSERT_EQ(counter, 4); + + registry.RemoveHandler(tag2); + + for (const auto& handler : registry) { + handler(); + } + + ASSERT_EQ(counter, 4); +} |
