package com.framsticks.gui; import static org.fest.assertions.Assertions.assertThat; import org.fest.swing.fixture.JPanelFixture; import org.testng.annotations.Test; import com.framsticks.core.Instance; import com.framsticks.core.ObjectInstance; import com.framsticks.params.AccessInterface; import com.framsticks.params.FramsClass; import com.framsticks.params.ReflectionAccess; import com.framsticks.params.types.StringParam; import com.framsticks.parsers.XmlLoader; import com.framsticks.test.TestClass; import com.framsticks.util.dispatching.RunAt; import static com.framsticks.core.InstanceUtils.*; @Test public class ProcedureBrowserTest extends BrowserBaseTest { ObjectInstance instance; @Override protected void configureBrowser() { browser = new XmlLoader().load(Browser.class, getClass().getResourceAsStream("/configs/ProcedureBrowserTest.xml")); assertThat(browser.getInstances().size()).isEqualTo(1); assertThat(browser.getInstances().get("test")).isInstanceOf(ObjectInstance.class); instance = (ObjectInstance) browser.getInstances().get("test"); } @Test(timeOut = 10000) public void testShow() { instance.dispatch(new RunAt() { @Override public void run() { assertThat(instance.getRootObject()).isInstanceOf(TestClass.class); } }); clickAndExpandPath("test"); instance.dispatch(new RunAt() { @Override public void run() { assertThat(bindAccess(instance, "/").getFramsClass().getParam("history")).isInstanceOf(StringParam.class); } }); // monitor.useFor(4.0); instance.dispatch(new RunAt() { @Override public void run() { AccessInterface access = bindAccess(instance, "/"); assertThat(access).isInstanceOf(ReflectionAccess.class); FramsClass framsClass = access.getFramsClass(); assertThat(framsClass.getParamCount()).isEqualTo(4); assertThat(framsClass.getParam(0).getId()).isEqualTo("name"); assertThat(framsClass.getParam(1).getId()).isEqualTo("history"); assertThat(framsClass.getParam(2).getId()).isEqualTo("appendHistory"); assertThat(framsClass.getParam(3).getId()).isEqualTo("resetHistory"); assertThat(access.get("history", String.class)).isEqualTo(""); } }); // frame.panel("TestClass"); JPanelFixture appendHistory = frame.panel("TestClass").panel("appendHistory"); appendHistory.panel("arg0").textBox("value").enterText("argument"); appendHistory.button("call").click(); waitForIdle(); instance.dispatch(new RunAt() { @Override public void run() { assertThat(bindAccess(instance, "/").get("history", String.class)).isEqualTo("argument|"); } }); frame.panel("TestClass").panel("resetHistory").button("call").click(); waitForIdle(); instance.dispatch(new RunAt() { @Override public void run() { assertThat(bindAccess(instance, "/").get("history", String.class)).isEqualTo(""); } }); } }