From 1f5e70b2fd1f017a748cc81a4de3564de6c24299 Mon Sep 17 00:00:00 2001
From: Francois Bleibel <fbleibel@gmail.com>
Date: Wed, 16 Jun 2010 18:33:24 +0900
Subject: [PATCH] Cast: Unit testing

Added unit test of the signal casting facility. Not exporting the SignalCastRegister class anymore (inlined in the .h).
---
 include/dynamic-graph/signal-caster.h | 9 +++++++--
 src/signal/signal-caster.cpp          | 6 ------
 unitTesting/CMakeLists.txt            | 3 ++-
 3 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/include/dynamic-graph/signal-caster.h b/include/dynamic-graph/signal-caster.h
index 2c2f6990..9d7037e7 100644
--- a/include/dynamic-graph/signal-caster.h
+++ b/include/dynamic-graph/signal-caster.h
@@ -65,12 +65,17 @@ private:
 extern SignalCaster g_caster;
 
 /*
- * The SignalCast registerer class. Can be used to automatically register a cast when instanced.
+ * The SignalCast registerer class. Can be used to automatically register a cast when
+ * instanced somewhere in a cpp file. Pass the typeid() of the type you want to
+ * register a cast to as the first argument.
+ * The code is provided here so the class does not need to be exported.
  */
 class SignalCastRegisterer {
 public:
 	SignalCastRegisterer(const std::type_info& type, SignalCaster::displayer_type displayer,
-			SignalCaster::caster_type caster, SignalCaster::tracer_type tracer);
+			SignalCaster::caster_type caster, SignalCaster::tracer_type tracer) {
+		g_caster.registerCast(type, displayer, caster, tracer);
+	}
 };
 
 /*!
diff --git a/src/signal/signal-caster.cpp b/src/signal/signal-caster.cpp
index 0ad45ffd..016f40bd 100644
--- a/src/signal/signal-caster.cpp
+++ b/src/signal/signal-caster.cpp
@@ -73,12 +73,6 @@ any SignalCaster::cast(const type_info& type, istringstream& iss) {
 /// The global instance of the caster class.
 DYNAMICGRAPH_EXPORT SignalCaster g_caster;
 
-SignalCastRegisterer::SignalCastRegisterer(const std::type_info& type, SignalCaster::displayer_type displayer,
-		SignalCaster::caster_type caster, SignalCaster::tracer_type tracer)
-{
-	g_caster.registerCast(type, displayer, caster, tracer);
-}
-
 /// Default casts, such as casts already supported by std::iostream
 template<typename T> class DefaultCastRegisterer : public SignalCastRegisterer {
 public:
diff --git a/unitTesting/CMakeLists.txt b/unitTesting/CMakeLists.txt
index 58ec67bf..b59119d6 100644
--- a/unitTesting/CMakeLists.txt
+++ b/unitTesting/CMakeLists.txt
@@ -7,7 +7,8 @@ SET(tests
 	test_shell
 	test_pool
 	test_depend
-	test_factory)
+	test_factory
+	test_signalcast)
 
 FOREACH(test_name ${tests})
 	SET(EXECUTABLE_NAME ${test_name})
-- 
GitLab