package org.mifos.test.acceptance.admin;
import org.mifos.test.acceptance.framework.MifosPage;
import org.mifos.test.acceptance.framework.UiTestCaseBase;
import org.mifos.test.acceptance.framework.admin.ClientDataImportReviewPage;
import org.mifos.test.acceptance.framework.admin.ClientDataImportSaveSummaryPage;
import org.mifos.test.acceptance.framework.testhelpers.AdminTestHelper;
import org.mifos.test.acceptance.remote.DateTimeUpdaterRemoteTestingService;
import org.springframework.test.context.ContextConfiguration;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
@ContextConfiguration(locations = {"classpath:ui-test-context.xml"})
@SuppressWarnings("PMD.SignatureDeclareThrowsException")
@Test(singleThreaded = true, groups = { "client", "acceptance", "import" })
public class ClientDataImportTest extends UiTestCaseBase {
private AdminTestHelper adminTestHelper;
String[] arrayOfErrors;
@Override
@BeforeMethod
public void setUp() throws Exception {
super.setUp();
adminTestHelper = new AdminTestHelper(selenium);
initRemote.dataLoadAndCacheRefresh(dbUnitUtilities, "acceptance_dbunit.xml", dataSource, selenium);
}
@AfterMethod
public void logOut() {
(new MifosPage(selenium)).logout();
new DateTimeUpdaterRemoteTestingService(selenium).resetDateTime();
}
@Test(enabled = true)
public void importSavingAccountsToClientTest() {
String importFile = this.getClass().getResource("/ClientDataImportTest.xls").toString();
String succesNumber = "4";
String errorNumber = "4";
arrayOfErrors = buildArrayOfErrorsForImportSavingsTest();
ClientDataImportReviewPage reviewPage = adminTestHelper.loadClientDataImportFileAndSubmitForReview(importFile);
reviewPage.validateErrors(arrayOfErrors);
reviewPage.validateSuccesText(succesNumber);
ClientDataImportSaveSummaryPage summaryPage = reviewPage.saveSuccessfullRows();
summaryPage.verifySuccesString(succesNumber);
summaryPage.verifyErrorString(errorNumber);
}
private String[] buildArrayOfErrorsForImportSavingsTest() {
String[] arrayString = { "Error in row 5, Column Recruited by: Empty mandatory field",
"Error in row 8, Column Activation date: Activation Date can be set only for Active status",
"Error in row 9, Column Loan Officer: Loan officer cannot be specified for a client being added to a group",
"Error in row 12, Column Activation date: Activation Date can be set only for Active status" };
return arrayString;
}
}