/* * Copyright (c) 2005-2011 Grameen Foundation USA * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or * implied. See the License for the specific language governing * permissions and limitations under the License. * * See also http://www.apache.org/licenses/LICENSE-2.0.html for an * explanation of the license and how it is applied. */ package org.mifos.test.acceptance.framework.group; import org.mifos.test.acceptance.framework.MifosPage; import org.mifos.test.acceptance.framework.center.CenterViewDetailsPage; import org.mifos.test.acceptance.framework.customer.CustomerChangeStatusPage; import org.mifos.test.acceptance.framework.loan.AttachSurveyPage; import org.mifos.test.acceptance.framework.loan.ClosedAccountsPage; import org.mifos.test.acceptance.framework.questionnaire.ViewQuestionResponseDetailPage; import org.testng.Assert; import com.thoughtworks.selenium.Selenium; public class GroupViewDetailsPage extends MifosPage { public final static String STATUS_PENDING_APPROVAL = "Pending Approval"; public final static String STATUS_PARTIAL_APPLICATION = "Partial Application"; public final static String STATUS_ACTIVE = "Active"; public GroupViewDetailsPage() { super(); } public GroupViewDetailsPage(Selenium selenium) { super(selenium); verifyPage("ViewGroupDetails"); } @Deprecated public void verifyStatus(String status) { Assert.assertTrue(selenium.isTextPresent(status), "Expected string: " + status); } public String getGroupStatus(){ return selenium.getText("viewgroupdetails.text.status"); } public String getMeetingSchedule(){ return selenium.getText("viewgroupdetails.text.meetingSchedule"); } public String getMeetingPlace(){ return selenium.getText("viewgroupdetails.text.meetingPlace"); } public String getCancelCloseReason(){ return selenium.getText("viewgroupdetails.text.closeCancelReason"); } public String getNumberOfClientsInGroup(){ return selenium.getText("viewgroupdetails.text.numberOfClientsInGroup"); } public String getAvgIndyvidualLoanSize(){ return selenium.getText("viewgroupdetails.text.avgIndyvidualLoanSize"); } public String getTotalLoanPortfolio(){ return selenium.getText("viewgroupdetails.text.totalLoanPortfolio"); } public void verifyNumberOfClientsInGroup(String numberOfClientsInGroup){ Assert.assertEquals(getNumberOfClientsInGroup(),numberOfClientsInGroup); } public void verifyAvgIndyvidualLoanSize(String avgIndyvidualLoanSize){ Assert.assertEquals(getAvgIndyvidualLoanSize(),avgIndyvidualLoanSize); } public void verifyTotalLoanPortfolio(String totalLoanPortfolio){ Assert.assertEquals(getTotalLoanPortfolio(), totalLoanPortfolio); } public void verifyMeetingSchedule(String meetingShedule){ Assert.assertEquals(getMeetingSchedule(),meetingShedule); } public void verifyStatus(EditCustomerStatusParameters editCustomerStatusParameters) { Assert.assertEquals(getGroupStatus(), editCustomerStatusParameters.getGroupStatus().getStatusText()); if(editCustomerStatusParameters.getGroupStatus().equals(GroupStatus.CANCELLED)){ Assert.assertEquals(getCancelCloseReason(), editCustomerStatusParameters.getCancelReason().getPurposeText()); } else{ if(editCustomerStatusParameters.getGroupStatus().equals(GroupStatus.CLOSED)){ Assert.assertEquals(getCancelCloseReason(), editCustomerStatusParameters.getCloseReason().getPurposeText()); } } } public CenterSearchTransferGroupPage editCenterMembership() { selenium.click("viewgroupdetails.link.editCenterMembership"); waitForPageToLoad(); return new CenterSearchTransferGroupPage(selenium); } public void verifyLoanOfficer(String loanOfficer) { Assert.assertTrue(selenium.isTextPresent(loanOfficer), "Expected string: " + loanOfficer); } public ClosedAccountsPage navigateToClosedAccountsPage() { selenium.click("viewgroupdetails.link.viewAllClosedAccounts"); waitForPageToLoad(); return new ClosedAccountsPage(selenium); } public CustomerChangeStatusPage navigateToEditGroupStatusPage() { selenium.click("viewgroupdetails.link.editStatus"); waitForPageToLoad(); return new CustomerChangeStatusPage(selenium); } public HistoricalDataPage navigateToHistoricalDataPage() { selenium.click("viewgroupdetails.link.viewHistoricalData"); waitForPageToLoad(); return new HistoricalDataPage(selenium); } public ChangeLogPage navigateToChangeLogPage() { selenium.click("viewgroupdetails.link.viewChangeLog"); waitForPageToLoad(); return new ChangeLogPage(selenium); } public EditCenterMembershipSearchPage navigateToEditCenterMembership() { selenium.click("viewgroupdetails.link.editCenterMembership"); waitForPageToLoad(); return new EditCenterMembershipSearchPage(selenium); } public AttachSurveyPage navigateToAttachSurveyPage() { selenium.click("viewgroupdetails.link.attachSurvey"); waitForPageToLoad(); return new AttachSurveyPage(selenium); } public ViewQuestionResponseDetailPage navigateToViewAdditionalInformationPage() { selenium.click("groupdetail.link.questionGroups"); waitForPageToLoad(); return new ViewQuestionResponseDetailPage(selenium); } public void verifyLoanDoesntExist(String loanID) { Assert.assertFalse(selenium.isTextPresent(loanID)); } public CenterViewDetailsPage navigateToGroupsCenter(String centerName) { selenium.click("link="+centerName); waitForPageToLoad(); return new CenterViewDetailsPage(selenium); } public ViewGroupChargesDetailPage navigateToViewGroupChargesDetailPage(){ selenium.click("viewgroupdetails.link.viewDetails"); waitForPageToLoad(); return new ViewGroupChargesDetailPage(selenium); } public String getAmountDue(){ return selenium.getText("viewgroupdetails.text.amountDue"); } public void verifyAmountDue(String amountDue){ Assert.assertEquals(getAmountDue(), amountDue); } public ViewQuestionResponseDetailPage navigateToViewQuestionResponseDetailPage(String questionGroupName) { selenium.click("link="+questionGroupName); waitForPageToLoad(); return new ViewQuestionResponseDetailPage(selenium); } /** * Assert that number of blackflag images is equal to expected number. * @param expectedNumber expected number of blackflag images */ public void verifyNumberOfBlackFlags(int expectedNumber) { Assert.assertEquals(selenium.getXpathCount("//span[contains(@id,'viewgroupdetails.img.blackflag')]"),expectedNumber); } }