package org.lightadmin.page;
import org.junit.Before;
import org.junit.Test;
import org.lightadmin.LoginOnce;
import org.lightadmin.RunWithConfiguration;
import org.lightadmin.SeleniumIntegrationTest;
import org.lightadmin.config.CustomerTestEntityConfiguration;
import org.lightadmin.config.FilterTestEntityConfiguration;
import org.lightadmin.config.OrderTestEntityConfiguration;
import org.lightadmin.data.Domain;
import java.util.List;
import static com.google.common.collect.Lists.newArrayList;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.lightadmin.data.Domain.*;
@RunWithConfiguration( {
OrderTestEntityConfiguration.class, CustomerTestEntityConfiguration.class,
FilterTestEntityConfiguration.class
} )
@LoginOnce( domain = Domain.TEST_CUSTOMERS )
public class DashboardPageTest extends SeleniumIntegrationTest {
private final List<Domain> expectedDomains = newArrayList( TEST_ORDERS.setExpectedRecordCount( 8 ), TEST_CUSTOMERS.setExpectedRecordCount( 29 ), FILTER_TEST_DOMAIN.setExpectedRecordCount( 11 ) );
private DashboardPage dashboardPage;
@Before
public void setup() throws Exception {
//todo: ikostenko: test should navigate to dashboard only once, shouldn't navigate to domain
dashboardPage = getStartPage().navigateToDashboard();
}
@Test
public void allDomainLinksLoaded() throws Exception {
for ( Domain domain : expectedDomains ) {
assertTrue( String.format( "Link to domain \'%s\' is not displayed", domain.getLinkText() ), dashboardPage.domainLinkDisplayed( domain ) );
}
assertEquals( String.format( "Unexpected domain links are displayed:" ), expectedDomains.size(), dashboardPage.getDomainLinksCount() );
}
@Test
public void domainRecordStatisticsIsDisplayed() {
for ( Domain domain : expectedDomains ) {
assertEquals( String.format( "Incorrect record count for domain \'%s\':", domain.getLinkText() ), domain.getExpectedRecordsCount(), dashboardPage.getDomainRecordsCount( domain ) );
}
}
}