public void TestAnimalShelter() { var shelter = new AnimalShelter(); Assert.Throws <Exception>(() => shelter.TakeCat(), "No more cats."); Assert.Throws <Exception>(() => shelter.TakeDog(), "No more dogs."); Assert.Throws <Exception>(() => shelter.TakeAnimal(), "No more animal."); shelter.AddCat(new Cat("cat1")); shelter.AddCat(new Cat("cat2")); shelter.AddDog(new Dog("dog1")); shelter.AddDog(new Dog("dog2")); shelter.AddCat(new Cat("cat3")); Assert.AreEqual("cat1", shelter.TakeCat().Name); Assert.AreEqual("dog1", shelter.TakeDog().Name); Assert.AreEqual("cat2", shelter.TakeAnimal().Name); Assert.AreEqual("dog2", shelter.TakeAnimal().Name); Assert.AreEqual("cat3", shelter.TakeCat().Name); }