@Test
  public void allows() {
    Animal a = new Animal();
    Cat c = new Cat();
    Dog d = new Dog();
    PersianCat pc = new PersianCat();

    PetCage cage = new PetCage();
    assertTrue(cage.allows(a));
    assertTrue(cage.allows(c));
    assertTrue(cage.allows(d));
    assertTrue(cage.allows(pc));

    PetCage catCage = new CatCage();
    assertTrue(catCage.allows(c));
    assertTrue(catCage.allows(pc));
    assertFalse(catCage.allows(a));
    assertFalse(catCage.allows(d));
  }