Skip to content
Snippets Groups Projects
GetVisitRemindersTest.java 7.25 KiB
package edu.ncsu.csc.itrust.selenium;

import static org.junit.Assert.*;

import java.util.List;
import java.util.concurrent.TimeUnit;

import org.junit.After;
import org.junit.Before;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.*;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;

import edu.ncsu.csc.itrust.DateUtil;
import edu.ncsu.csc.itrust.enums.TransactionType;
import edu.ncsu.csc.itrust.unit.DBBuilder;
import edu.ncsu.csc.itrust.unit.testutils.TestDAOFactory;

/**
 * Use Case 17, Selenium test conversion for HttpUnit GetVisitRemindersTest 
 */
@SuppressWarnings("unused")
public class GetVisitRemindersTest extends iTrustSeleniumTest {

	private WebDriver driver;

	@Before
	protected void setUp() throws Exception  {
		super.setUp();
		gen.hcp0();
		gen.standardData();
		driver = new Driver();
		// Implicitly wait at most 2 seconds for each element to load
		driver.manage().timeouts().implicitlyWait(DEFAULT_TIMEOUT, TimeUnit.SECONDS);
		driver.get("http://localhost:8080/iTrust/");
	}

	/*
	 * Test navigation to iTrust - Visit Reminders page
	 */
	public void testGetVisitReminders_TestInitialPage() throws Exception {
		
		WebElement element;
		
		driver.findElement(By.id("j_username")).sendKeys("9000000000");
		driver.findElement(By.id("j_password")).sendKeys("pw");
		
		driver.findElement(By.cssSelector("input[type='submit']")).click();
		driver.findElement(By.cssSelector("a[href= '/iTrust/auth/hcp/visitReminders.jsp']")).click();
		assertEquals("iTrust - Visit Reminders", driver.getTitle());
		
		element = driver.findElement(By.id("ReminderType"));
		assertTrue(element.getText().contains("Diagnosed Care Needers"));
		assertTrue(element.getText().contains("Flu Shot Needers"));
		assertTrue(element.getText().contains("Immunization Needers"));	
		
		element = driver.findElement(By.id("getReminders"));
		assertEquals(element.getAttribute(VALUE), "Get Reminders");
	}
	
	/*
	 * Test access to visit reminders for Diagnosed Care Needers
	 */
	public void testGetVisitReminders_DiagnosedCareNeeders() throws Exception {
	
		WebElement element;
	
		driver.findElement(By.id("j_username")).sendKeys("9000000000");
		driver.findElement(By.id("j_password")).sendKeys("pw");
		driver.findElement(By.cssSelector("input[type='submit']")).click();
		
		driver.findElement(By.cssSelector("a[href= '/iTrust/auth/hcp/visitReminders.jsp']")).click();
		assertEquals("iTrust - Visit Reminders", driver.getTitle());
		
		Select dropDown = new Select(driver.findElement(By.id("ReminderType")));
		dropDown.selectByVisibleText("Diagnosed Care Needers");
		driver.findElement(By.id("getReminders")).submit();
		
		assertEquals("iTrust - Visit Reminders", driver.getTitle());
		List<WebElement> tableList = driver.findElements(By.className("fTable"));
		assertEquals(7, tableList.size());
		
		element = driver.findElement(By.cssSelector("a[href='sendEmailNotification.jsp?mid=10']"));
		assertEquals("Zappic Clith", element.getText());
		element = tableList.get(2);
		assertTrue(element.getText().contains("Phone Number:919-555-9213"));
		
		element = driver.findElement(By.cssSelector("a[href='sendEmailNotification.jsp?mid=1']"));
		assertEquals("Random Person", element.getText());
		element = tableList.get(3);
		assertTrue(element.getText().contains("Phone Number:919-971-0000"));
		
		element = driver.findElement(By.cssSelector("a[href='sendEmailNotification.jsp?mid=100']"));
		assertEquals("Anakin Skywalker", element.getText());
		element = tableList.get(4);
		assertTrue(element.getText().contains("Phone Number:919-419-5555"));
		
		element = driver.findElement(By.cssSelector("a[href='sendEmailNotification.jsp?mid=99']"));
		assertEquals("Darryl Thompson", element.getText());
		element = tableList.get(5);		
		assertTrue(element.getText().contains("Phone Number:919-555-6709"));

	}
	
	/*
	 * Test access to visit reminders for Flu Shot Needers
	 */
	public void testGetVisitReminders_FluShotNeeders() throws Exception {

		WebElement element;
		
		driver.findElement(By.id("j_username")).sendKeys("9000000000");
		driver.findElement(By.id("j_password")).sendKeys("pw");
		
		driver.findElement(By.cssSelector("input[type='submit']")).click();
		driver.findElement(By.cssSelector("a[href= '/iTrust/auth/hcp/visitReminders.jsp']")).click();
		assertEquals("iTrust - Visit Reminders", driver.getTitle());
		
		Select dropDown = new Select(driver.findElement(By.id("ReminderType")));
		dropDown.selectByVisibleText("Flu Shot Needers");
		driver.findElement(By.id("getReminders")).submit();
		
		assertEquals("iTrust - Visit Reminders", driver.getTitle());
		List<WebElement> tableList = driver.findElements(By.className("fTable"));
		
		boolean thisYear = DateUtil.currentlyInMonthRange(8, 11);
		String pretext = "Missed";
		if (thisYear)
			pretext = "Currently Missing";
		
		element = driver.findElement(By.cssSelector("a[href='sendEmailNotification.jsp?mid=4']"));
		assertEquals("NoRecords Has", element.getText());
		element = tableList.get(1);

		assertTrue(element.getText().contains("Phone Number:919-971-0000"));
		assertTrue(element.getText().contains(pretext + " Medication:    Flu Shot"));
		
		element = driver.findElement(By.cssSelector("a[href='sendEmailNotification.jsp?mid=42']"));
		assertEquals("Bad Horse", element.getText());
		element = tableList.get(2);
		assertTrue(element.getText().contains("Phone Number:919-123-4567"));
		assertTrue(element.getText().contains(pretext + " Medication:    Flu Shot"));
		
		element = driver.findElement(By.cssSelector("a[href='sendEmailNotification.jsp?mid=3']"));
		assertEquals("Care Needs", element.getText());
		element = tableList.get(3);
		assertTrue(element.getText().contains("Phone Number:919-971-0000"));
		assertTrue(element.getText().contains(pretext + " Medication:    Flu Shot"));
		
		element = driver.findElement(By.cssSelector("a[href='sendEmailNotification.jsp?mid=1']"));
		assertEquals("Random Person", element.getText());
		element = tableList.get(4);
		assertTrue(element.getText().contains("Phone Number:919-971-0000"));
		assertTrue(element.getText().contains(pretext + " Medication:    Flu Shot"));
	}
	
	/*
	 * Test access to visit reminders for Immunization Needers
	 */
	public void testGetVisitReminders_ImmunizationNeeders() throws Exception {
		
		WebElement element;
		
		driver.findElement(By.id("j_username")).sendKeys("9000000000");
		driver.findElement(By.id("j_password")).sendKeys("pw");
		
		driver.findElement(By.cssSelector("input[type='submit']")).click();
		driver.findElement(By.cssSelector("a[href= '/iTrust/auth/hcp/visitReminders.jsp']")).click();
		assertEquals("iTrust - Visit Reminders", driver.getTitle());
		
		driver.findElement(By.cssSelector("input[type='submit']")).click();
		driver.findElement(By.cssSelector("a[href= '/iTrust/auth/hcp/visitReminders.jsp']")).click();
		assertEquals("iTrust - Visit Reminders", driver.getTitle());
	
		Select dropDown = new Select(driver.findElement(By.id("ReminderType")));
		dropDown.selectByVisibleText("Immunization Needers");
		driver.findElement(By.id("getReminders")).submit();
		
		assertEquals("iTrust - Visit Reminders", driver.getTitle());
		List<WebElement> tableList = driver.findElements(By.className("fTable"));
		assertEquals(0, tableList.size());
	}
	
	@After
	public void tearDown() throws Exception {
		driver.quit();
	}


}