public void Compound_Observer() { DuckSimulator sim = new DuckSimulator(); Flock flockDucks = new Flock(); IDuckFactory duckFactory = new DuckCounterFactory(); flockDucks.Add(duckFactory.CreateMallardDuck()); flockDucks.Add(duckFactory.CreateRubberDuck()); flockDucks.Add(duckFactory.CreateRedheadDuck()); flockDucks.Add(duckFactory.CreateDuckCall()); flockDucks.Add(new GooseAdapter(new Goose())); flockDucks.RegisterObservers(new QuackologistObserver()); sim.Simulate(flockDucks); Assert.AreEqual(4, QuackCounter.GetQuackCount()); }