public function testNoConstructor()
 {
     $obj = Singleton::getInstance();
     $refl = new \ReflectionObject($obj);
     $meth = $refl->getMethod('__construct');
     $this->assertTrue($meth->isPrivate());
 }
 public function testUniqueness()
 {
     $firstCall = Singleton::getInstance();
     $secondCall = Singleton::getInstance();
     $this->assertInstanceOf('DesignPatterns\\Creational\\Singleton\\Singleton', $firstCall);
     $this->assertSame($firstCall, $secondCall);
 }
 public function test()
 {
     $firstCall = Singleton::getInstance();
     $secondCall = Singleton::getInstance();
     $thirdCall = Singleton::getInstance();
     $fourthCall = new Singleton();
     // FATAL ERROR;
 }
 /**
  * @expectedException \DesignPatterns\Creational\Singleton\SingletonPatternViolationException
  * @return void
  */
 public function testNoSerializationAllowed()
 {
     $obj1 = Singleton::getInstance();
     $serialized = serialize($obj1);
     $obj2 = unserialize($serialized);
 }