/** Tests post construction callback. */ public void testPostConstruction() { Injector injector = new Injector(); injector.defineComponent( Guitar.class, new Provider<Guitar>() { @Override public Guitar provide() { return new Guitar(); } }); injector.defineComponent( Artist.class, new Provider<Artist>() { @Override public Artist provide() { return new Artist(); } }); injector.defineComponent( Body.class, new Provider<Body>() { @Override public Body provide() { return new Body(); } }); Guitar guitar = injector.getComponent(Guitar.class); assertNotNull(guitar); assertNotNull(guitar.isInitialized()); }
@Test public void testBuilderAngusGuitar() { GuitarMaker guitarMaker = new GuitarMaker(); guitarMaker.setGuitarBuilder(new AngusGuitarBuilder()); guitarMaker.buildGuitar(); Guitar guitar = guitarMaker.getGuitar(); assertEquals("SG;mahogany/rosewood;HH", guitar.toString()); }
@Test public void testBuilderStevieGuitar() { GuitarMaker guitarMaker = new GuitarMaker(); guitarMaker.setGuitarBuilder(new SteviesGuitarBuilder()); guitarMaker.buildGuitar(); Guitar guitar = guitarMaker.getGuitar(); assertEquals("Stratocaster;maple/Pau Ferro;SSS", guitar.toString()); }
public static void main(String[] args) { // Set up Rick's guitar inventory Inventory inventory = new Inventory(); initializeInventory(inventory); Guitar whatErinLikes = new Guitar("", 0, "fender", "Stratocastor", "electric", "Alder", "Alder"); Guitar guitar = inventory.search(whatErinLikes); if (guitar != null) { System.out.println( "Erin, you might like this " + guitar.getBuilder() + " " + guitar.getModel() + " " + guitar.getType() + " guitar:\n " + guitar.getBackWood() + " back and sides,\n " + guitar.getTopWood() + " top.\nYou can have it for only $" + guitar.getPrice() + "!"); } else { System.out.println("Sorry, Erin, we have nothing for you."); } }