jtulach@312: package org.apidesign.exceptions.trycatchredo.api; jtulach@312: jtulach@312: jtulach@312: import org.apidesign.exceptions.trycatchredo.usage.MemoryURL; jtulach@312: import java.awt.EventQueue; jtulach@312: import java.awt.event.ActionEvent; jtulach@312: import java.net.URL; jtulach@312: import javax.swing.Action; jtulach@312: import javax.swing.JOptionPane; jaroslav@411: import javax.swing.UIManager; jaroslav@411: import javax.swing.UnsupportedLookAndFeelException; jaroslav@411: import javax.swing.plaf.metal.MetalLookAndFeel; jtulach@312: import org.apidesign.exceptions.trycatchredo.usage.QueryStream; jtulach@312: import org.junit.After; jtulach@312: import org.junit.Before; jtulach@312: import org.junit.Test; jtulach@312: import static org.junit.Assert.*; jaroslav@411: import org.junit.BeforeClass; jtulach@312: jtulach@312: /** jtulach@312: * jtulach@312: * @author Jaroslav Tulach jtulach@312: */ jtulach@312: public class IOManagerTest { jtulach@312: jtulach@312: public IOManagerTest() { jtulach@312: } jtulach@312: jaroslav@411: @BeforeClass jaroslav@411: public static void useMetalLaF() throws UnsupportedLookAndFeelException { jaroslav@411: UIManager.setLookAndFeel(new MetalLookAndFeel()); jaroslav@411: } jaroslav@411: jtulach@312: @Before jtulach@312: public void setUp() { jtulach@312: MemoryURL.initialize(); jtulach@312: } jtulach@312: jtulach@312: @After jtulach@312: public void tearDown() { jtulach@312: } jtulach@312: jtulach@312: @Test jtulach@312: public void simpleWrite() throws Exception { jtulach@312: URL u = new URL("memory://simpleWrite.txt"); jtulach@312: MemoryURL.registerURL(u.toExternalForm(), "", null); jtulach@312: final Action a = IOManager.createSaveAction(u, "Hello World!"); jtulach@312: EventQueue.invokeAndWait(new Runnable() { jtulach@312: public void run() { jtulach@312: a.actionPerformed(new ActionEvent(this, 0, "")); jtulach@312: } jtulach@312: }); jtulach@312: String out = MemoryURL.getOutputForURL(u.toExternalForm()); jtulach@312: assertEquals("Hello World!", out); jtulach@312: } jtulach@312: jtulach@312: @Test jtulach@312: public void writeWithAQuestion() throws Exception { jtulach@312: URL u = new URL("memory://queryEncoding.txt"); jtulach@312: jtulach@312: MemoryURL.registerURL(u.toExternalForm(), "", new QueryStream()); jtulach@312: final Action a = IOManager.createSaveAction(u, "Ask a Question"); jtulach@312: // simulate that the user clicks Yes to the reverse question in the dialog jtulach@312: IOManager.setVisibleOption = JOptionPane.YES_OPTION; jtulach@312: EventQueue.invokeAndWait(new Runnable() { jtulach@312: public void run() { jtulach@312: a.actionPerformed(new ActionEvent(this, 0, "")); jtulach@312: } jtulach@312: }); jtulach@312: String out = MemoryURL.getOutputForURL(u.toExternalForm()); jtulach@312: assertEquals("Text is reversed", "noitseuQ a ksA", out); jtulach@312: } jtulach@312: }