public void testParameterCanBePrimitive() throws Exception {
    DefaultPicoContainer pico = new DefaultPicoContainer();
    pico.addComponent(Animal.class, Dino2.class, new ConstantParameter(22));

    Animal animal = pico.getComponent(Animal.class);
    assertNotNull("Component not null", animal);
    assertEquals("22", animal.getFood());
  }
  public void testParameterCanBePassedToConstructor() throws Exception {
    DefaultPicoContainer pico = new DefaultPicoContainer();
    pico.addComponent(Animal.class, Dino.class, new ConstantParameter("bones"));

    Animal animal = pico.getComponent(Animal.class);
    assertNotNull("Component not null", animal);
    assertEquals("bones", animal.getFood());
  }
  public void testMultipleParametersCanBePassed() throws Exception {
    DefaultPicoContainer pico = new DefaultPicoContainer();
    pico.addComponent(
        Animal.class, Dino3.class, new ConstantParameter("a"), new ConstantParameter("b"));

    Animal animal = pico.getComponent(Animal.class);
    assertNotNull("Component not null", animal);
    assertEquals("ab", animal.getFood());
  }
  public void testParametersCanBeMixedWithComponentsCanBePassed() throws Exception {
    DefaultPicoContainer pico = new DefaultPicoContainer();
    pico.addComponent(Touchable.class, SimpleTouchable.class);
    pico.addComponent(
        Animal.class,
        Dino4.class,
        new ConstantParameter("a"),
        new ConstantParameter(3),
        new ConstantParameter("b"),
        ComponentParameter.DEFAULT);

    Animal animal = pico.getComponent(Animal.class);
    assertNotNull("Component not null", animal);
    assertEquals("a3b org.picocontainer.testmodel.SimpleTouchable", animal.getFood());
  }