package com.pennapps.labs.pennmobile;
import android.content.Intent;
import android.support.design.widget.NavigationView;
import android.test.ActivityUnitTestCase;
import android.view.ContextThemeWrapper;
import com.pennapps.labs.pennmobile.api.Labs;
import com.pennapps.labs.pennmobile.classes.Course;
import com.pennapps.labs.pennmobile.classes.DiningHall;
import com.pennapps.labs.pennmobile.classes.Person;
import com.pennapps.labs.pennmobile.classes.Venue;
import java.util.List;
/**
* Unit testing for MainActivity
* Created by Adel on 12/9/14.
*/
public class MainActivityTest extends ActivityUnitTestCase<MainActivity> {
private MainActivity activity;
private Labs mLabs;
public MainActivityTest() {
super(MainActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
ContextThemeWrapper context = new ContextThemeWrapper(getInstrumentation().getTargetContext(), R.style.AppTheme);
setActivityContext(context);
Intent intent = new Intent(getInstrumentation().getTargetContext(),
MainActivity.class);
startActivity(intent, null, null);
activity = getActivity();
mLabs = MainActivity.getLabsInstance();
}
public void testMainLayout() {
assertNotNull(activity.findViewById(R.id.navigation));
}
public void testMainDrawerLayout() {
assertTrue(activity.findViewById(R.id.navigation) instanceof NavigationView);
}
public void testLabsCoursesAPI() {
List<Course> courses = mLabs.courses("CIS 110").toList().toBlocking().single().get(0);
assertEquals(110, courses.get(0).course_number);
}
public void testLabsCoursesInstructors() {
List<Course> courses = mLabs.courses("CIS 110").toList().toBlocking().single().get(0);
assertEquals("Benedict Brown", courses.get(0).instructors.get(0).name);
}
public void testCourseMeetings() {
List<Course> courses = mLabs.courses("CIS 110").toList().toBlocking().single().get(0);
// Course locations not announced yet
assertEquals("", courses.get(0).meetings.get(0).building_name);
}
public void testDirectorySearch() {
List<Person> people = mLabs.people("adel").toList().toBlocking().single().get(0);
assertEquals("ADELMAN, STEPHEN R", people.get(0).name);
}
public void testDirectorySearchGetName() {
List<Person> people = mLabs.people("adel").toList().toBlocking().single().get(0);
assertEquals("Stephen R Adelman", people.get(0).getName());
}
public void testCourseMeetingSection() {
List<Course> courses = mLabs.courses("BIBB 109").toList().toBlocking().single().get(0);
assertEquals("BIBB109401", courses.get(0).meetings.get(0).section_id);
}
public void testDiningVenues() {
List<Venue> venues = mLabs.venues().toList().toBlocking().single().get(0);
assertEquals("1920 Commons", venues.get(0).name);
}
public void testDiningMenuMeals() {
List<Venue> venues = mLabs.venues().toList().toBlocking().single().get(0);
DiningHall commons = mLabs.daily_menu(venues.get(0).id).toList().toBlocking().single().get(0);
assertTrue(commons.menus.size() > 0);
}
public void testDiningMenu() {
List<Venue> venues = mLabs.venues().toList().toBlocking().single().get(0);
DiningHall commons = mLabs.daily_menu(venues.get(0).id).toList().toBlocking().single().get(0);
DiningHall.Menu menu = commons.menus.get(0);
assertTrue(menu.name.equals("Brunch") || menu.name.equals("Breakfast"));
}
public void testDiningMenuStation() {
List<Venue> venues = mLabs.venues().toList().toBlocking().single().get(0);
DiningHall commons = mLabs.daily_menu(venues.get(0).id).toList().toBlocking().single().get(0);
DiningHall.Menu menu = commons.menus.get(0);
DiningHall.DiningStation station = menu.stations.get(0);
assertTrue(station.items.size() > 1);
}
}