src/core/attribute-test.cc
changeset 2463 c77e43117673
parent 2462 93028d4474ba
child 2464 aafe5d5c2922
--- a/src/core/attribute-test.cc	Thu Feb 21 23:15:00 2008 +0100
+++ b/src/core/attribute-test.cc	Fri Feb 22 00:08:00 2008 +0100
@@ -9,6 +9,7 @@
 #include "double.h"
 #include "object-vector.h"
 #include "integer-trace-source.h"
+#include "trace-source-accessor.h"
 
 namespace ns3 {
 
@@ -18,6 +19,10 @@
   AttributeTest ();
   virtual bool RunTests (void);
 private:
+  void NotifySource1 (int64_t old, int64_t n) {
+    m_gotNew = n;
+  }
+  int64_t m_gotNew;
 };
 
 class Derived : public Object
@@ -104,6 +109,8 @@
 		     MakeIntegerTraceSourceAccessor (&AttributeObjectTest::DoSetIntSrc,
 						     &AttributeObjectTest::DoGetIntSrc),
 		     MakeIntegerChecker<int8_t> ())
+      .AddTraceSource ("Source1", "help test",
+		       MakeTraceSourceAccessor (&AttributeObjectTest::m_intSrc1))
       ;
         
     return tid;
@@ -385,6 +392,15 @@
   NS_TEST_ASSERT (p->SetAttribute ("IntegerTraceSource2", Integer (-128)));
   NS_TEST_ASSERT (!p->SetAttribute ("IntegerTraceSource2", Integer (-129)));
 
+  m_gotNew = -2;
+  NS_TEST_ASSERT (p->SetAttribute ("IntegerTraceSource1", Integer (-1)));
+  NS_TEST_ASSERT (p->TraceSourceConnect ("Source1", MakeCallback (&AttributeTest::NotifySource1, this)));
+  NS_TEST_ASSERT (p->SetAttribute ("IntegerTraceSource1", Integer (0)));
+  NS_TEST_ASSERT_EQUAL (m_gotNew, 0);
+  NS_TEST_ASSERT (p->TraceSourceDisconnect ("Source1", MakeCallback (&AttributeTest::NotifySource1, this)));
+  NS_TEST_ASSERT (p->SetAttribute ("IntegerTraceSource1", Integer (1)));
+  NS_TEST_ASSERT_EQUAL (m_gotNew, 0);
+
   return result;
 }