jtulach@343: package org.apidesign.singletons.usage; jtulach@343: jtulach@343: import org.apidesign.singletons.api.DialogDisplayer; jtulach@343: import org.junit.BeforeClass; jtulach@343: import org.junit.Test; jtulach@343: import org.netbeans.junit.MockServices; jtulach@343: import static org.junit.Assert.*; jtulach@343: jtulach@345: // BEGIN: singletons.injectable.test jtulach@343: public class MainTest { jtulach@343: @BeforeClass jtulach@343: public static void setUpClass() throws Exception { jtulach@343: MockServices.setServices(MockDialogDisplayer.class); jtulach@343: } jtulach@343: jtulach@343: @Test jtulach@343: public void testMainAsksAQuestion() { jtulach@345: assertNull( jtulach@345: "No question asked yet", MockDialogDisplayer.askedQuery jtulach@345: ); jtulach@343: Main.main(new String[0]); jtulach@345: assertNotNull( jtulach@345: "main code asked our Mock displayer", jtulach@345: MockDialogDisplayer.askedQuery jtulach@345: ); jtulach@343: } jtulach@343: jtulach@343: public static final class MockDialogDisplayer extends DialogDisplayer { jtulach@343: static String askedQuery; jtulach@343: jtulach@343: @Override jtulach@343: public boolean yesOrNo(String query) { jtulach@343: askedQuery = query; jtulach@343: return false; jtulach@343: } jtulach@343: } jtulach@345: } jtulach@345: // END: singletons.injectable.test