[arquillian-issues] [JBoss JIRA] (ARQGRA-481) generic attribute injection doesn't work

Robert Hoeppner (JIRA) issues at jboss.org
Thu Oct 1 08:37:00 EDT 2015


     [ https://issues.jboss.org/browse/ARQGRA-481?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Robert Hoeppner updated ARQGRA-481:
-----------------------------------
    Description: 
I have an abstract PageObject like these:

{code:java}
public abstract class AbstractBenutzerdatenPageWithEdit<EDITDLG extends AbstractEditDialogFragment> extends
        AbstractBenutzerdatenPage {

    @FindBy(id = "browser:editDialog:dlg_container")
    private EDITDLG editDialog;

    public EDITDLG getEditDialog() {
        return editDialog;
    }

}
{code}

AbstractEditDialogFragment has three concrete implementations and there are three implementations of AbstractBenutzerdatenPageWithEdit like the following:

{code:java}
@Location("pages/benutzerdaten/fehlzeit/frist.xhtml")
public class FristenPage extends AbstractBenutzerdatenPageWithEdit<FristenEditDialogFragment> {
.....
}
{code}

at which FristenEditDialogFragment is one concrete implementation of AbstractEditDialogFragment

{code:java}
public class FristenEditDialogFragment extends AbstractEditDialogFragment {
...
}
{code}

The test looking like these:

{code:java}
@RunWith(Arquillian.class)
@RunAsClient
public class FristenTest extends TestDeployments {

    @ArquillianResource
    private URL contextPath;
    @Drone
    private WebDriver driver;
    @Page
    private LoginPage loginPage;
    @Page
    private HomePage homePage;
    @Page
    private BenutzerdatenHomePage benutzerdatenHomePage;
    @Page
    private FristenPage fristenPage;

    @Test
    public void PageAccessTest(@InitialPage LoginPage loginP) {
        loginP.loginWithCredentials("admin", "gip123");
        homePage.getNavigationBar().navigateToUserData();
        benutzerdatenHomePage.getMenu().openFristen();
        assertThat(fristenPage.getBreadCrumbText()).isEqualTo("» Benutzerdaten »Fehlzeiten » Fristen");
    }
{code}

And if i run this test, i get a PageObjectInitializationException
{code}
org.jboss.arquillian.graphene.enricher.exception.PageObjectInitializationException: Can not instantiate Page Object 
class de.gipmbh.absenz.web.pageModel.benutzerdaten.FristenPage
 declared in: 
de.gipmbh.absenz.web.uitests.benutzerdaten.FristenTest
{code}

  was:
I have an abstract PageObject like these:

{code:java}
public abstract class AbstractBenutzerdatenPageWithEdit<EDITDLG extends AbstractEditDialogFragment> extends
        AbstractBenutzerdatenPage {

    @FindBy(id = "browser:editDialog:dlg_container")
    private EDITDLG editDialog;

    public EDITDLG getEditDialog() {
        return editDialog;
    }

}
{code}

AbstractEditDialogFragment has three concrete implementations and there are three implementations of AbstractBenutzerdatenPageWithEdit like the following:

{code:java}
@Location("pages/benutzerdaten/fehlzeit/frist.xhtml")
public class FristenPage extends AbstractBenutzerdatenPageWithEdit<FristenEditDialogFragment> {
.....
}
{code}

at which FristenEditDialogFragment is one concrete implementation of AbstractEditDialogFragment

{code:java}
public class FristenEditDialogFragment extends AbstractEditDialogFragment {
...
}
{code}

The test looking like these:

{code:java}
@RunWith(Arquillian.class)
@RunAsClient
public class FristenTest extends TestDeployments {

    @ArquillianResource
    private URL contextPath;
    @Drone
    private WebDriver driver;
    @Page
    private LoginPage loginPage;
    @Page
    private HomePage homePage;
    @Page
    private BenutzerdatenHomePage benutzerdatenHomePage;
    @Page
    private FristenPage fristenPage;

    @Test
    public void PageAccessTest(@InitialPage LoginPage loginP) {
        loginP.loginWithCredentials("admin", "gip123");
        homePage.getNavigationBar().navigateToUserData();
        benutzerdatenHomePage.getMenu().openFristen();
        assertThat(fristenPage.getBreadCrumbText()).isEqualTo("» Benutzerdaten »Fehlzeiten » Fristen");
    }
{code}

And if i run this test, i get a PageObjectInitializationException



> generic attribute injection doesn't work
> ----------------------------------------
>
>                 Key: ARQGRA-481
>                 URL: https://issues.jboss.org/browse/ARQGRA-481
>             Project: Arquillian Graphene
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 2.0.3.Final
>         Environment: OS: Win7
> Java: 1.7.0_17
> AS: Wildfly 8.2.0.final
>            Reporter: Robert Hoeppner
>         Attachments: stacktrace.txt
>
>
> I have an abstract PageObject like these:
> {code:java}
> public abstract class AbstractBenutzerdatenPageWithEdit<EDITDLG extends AbstractEditDialogFragment> extends
>         AbstractBenutzerdatenPage {
>     @FindBy(id = "browser:editDialog:dlg_container")
>     private EDITDLG editDialog;
>     public EDITDLG getEditDialog() {
>         return editDialog;
>     }
> }
> {code}
> AbstractEditDialogFragment has three concrete implementations and there are three implementations of AbstractBenutzerdatenPageWithEdit like the following:
> {code:java}
> @Location("pages/benutzerdaten/fehlzeit/frist.xhtml")
> public class FristenPage extends AbstractBenutzerdatenPageWithEdit<FristenEditDialogFragment> {
> .....
> }
> {code}
> at which FristenEditDialogFragment is one concrete implementation of AbstractEditDialogFragment
> {code:java}
> public class FristenEditDialogFragment extends AbstractEditDialogFragment {
> ...
> }
> {code}
> The test looking like these:
> {code:java}
> @RunWith(Arquillian.class)
> @RunAsClient
> public class FristenTest extends TestDeployments {
>     @ArquillianResource
>     private URL contextPath;
>     @Drone
>     private WebDriver driver;
>     @Page
>     private LoginPage loginPage;
>     @Page
>     private HomePage homePage;
>     @Page
>     private BenutzerdatenHomePage benutzerdatenHomePage;
>     @Page
>     private FristenPage fristenPage;
>     @Test
>     public void PageAccessTest(@InitialPage LoginPage loginP) {
>         loginP.loginWithCredentials("admin", "gip123");
>         homePage.getNavigationBar().navigateToUserData();
>         benutzerdatenHomePage.getMenu().openFristen();
>         assertThat(fristenPage.getBreadCrumbText()).isEqualTo("» Benutzerdaten »Fehlzeiten » Fristen");
>     }
> {code}
> And if i run this test, i get a PageObjectInitializationException
> {code}
> org.jboss.arquillian.graphene.enricher.exception.PageObjectInitializationException: Can not instantiate Page Object 
> class de.gipmbh.absenz.web.pageModel.benutzerdaten.FristenPage
>  declared in: 
> de.gipmbh.absenz.web.uitests.benutzerdaten.FristenTest
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)



More information about the arquillian-issues mailing list