public void ChangeManagerTest() { //Refer : https://github.com/csparpa/gof-design-patterns/blob/master/java/src/tk/csparpa/gofdp/observer/variants/Demo.java var manager = new ChangeManager(); var commander = new Commander("Golden", manager); var soldierOne = new Soldier("Harry", manager); var soldierTwo = new Soldier("Paul", manager); manager.RegisterPublisher("solider", soldierOne); manager.RegisterPublisher("solider", soldierTwo); manager.RegisterSubscriber("solider", commander); manager.RegisterPublisher("commander", commander); manager.RegisterSubscriber("commander", soldierOne); manager.RegisterSubscriber("commander", soldierTwo); commander.SendCmd(new MapPoint(100, 100)); Assert.AreEqual(2, commander.Soldiers.Count); }