package org.fluentlenium.adapter.testng.integration; import org.fluentlenium.adapter.testng.integration.localtest.IntegrationFluentTestNg; import org.fluentlenium.core.FluentPage; import org.fluentlenium.core.annotation.Page; import org.testng.annotations.Test; public class CyclicDependencyTest extends IntegrationFluentTestNg { @Page private MainPage mainPage; @Test public void simpleCyclicDependency() { mainPage. openDialog(). showPanel(). hide(). close(). done(); } @Test public void cyclicDependencyWithMultipleSteps() { mainPage. openDialog(). showPanel(). closeAll(). openDialog(); } } class MainPage extends FluentPage { @Page private Dialog dialog; public Dialog openDialog() { return dialog; } public MainPage done() { return this; } } class Dialog extends FluentPage { @Page private Panel panel; @Page private MainPage mainPage; public Panel showPanel() { return panel; } public MainPage close() { return mainPage; } } class Panel extends FluentPage { @Page private Dialog dialog; @Page private MainPage mainPage; public Dialog hide() { return dialog; } public MainPage closeAll() { return mainPage; } }