From 1d04c20f2581487e11d9e3c292c9ba5fac96f913 Mon Sep 17 00:00:00 2001 From: Trismegiste Date: Sat, 24 Aug 2013 00:20:47 +0200 Subject: [PATCH] unit testing with PHPUnit --- Tests/Observer/ObserverTest.php | 53 +++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 Tests/Observer/ObserverTest.php diff --git a/Tests/Observer/ObserverTest.php b/Tests/Observer/ObserverTest.php new file mode 100644 index 0000000..79bf61a --- /dev/null +++ b/Tests/Observer/ObserverTest.php @@ -0,0 +1,53 @@ +observer = new UserObserver(); + } + + public function testNotify() + { + $this->expectOutputString('DesignPatterns\Observer\User has been updated'); + $subject = new User(); + + $subject->attach($this->observer); + $subject->property = 123; + } + + public function testAttachDetach() + { + $subject = new User(); + $this->assertAttributeEmpty('_observers', $subject); + $subject->attach($this->observer); + $this->assertAttributeNotEmpty('_observers', $subject); + $subject->detach($this->observer); + $this->assertAttributeEmpty('_observers', $subject); + } + + public function testUpdateCalling() + { + $subject = new User(); + $observer = $this->getMock('SplObserver'); + $subject->attach($observer); + + $observer->expects($this->once()) + ->method('update') + ->with($subject); + + $subject->notify(); + } + +} \ No newline at end of file