package course;

import static org.junit.Assert.*;

import org.junit.Before;
import org.junit.Test;

public class CourseTest {
	Course course1;
	Course course2;
	
	@Before
	public void setUp() throws Exception {
		course1 = new Course ("MTH");
		course2 = new Course ("CSC", 207, 4, "Algorithms and Object-oriented Design");
	}

	@Test
	public void testCourseString() {
		assertEquals ("CourseString 1 subject:", "MTH", course1.subject);
		assertEquals ("CourseString 1 number:", 0, course1.number);
		assertEquals ("CourseString 1 credits:", 0, course1.credits);
		assertEquals ("CourseString 1 subject:", "MTH", course1.subject);
	}

	@Test
	public void testCourseStringIntIntString() {
		assertEquals ("CourseString 2 subject:", "CSC", course2.subject);
		assertEquals ("CourseString 2 number:", 207, course2.number);
		assertEquals ("CourseString 2 credits:", 4, course2.credits);
		assertEquals ("CourseString 2: title:", "Algorithms and Object-oriented Design", course2.title);
	}

	@Test
	public void testGetSubject() {
		assertEquals ("getSubject 1:", "MTH", course1.getSubject());
		assertEquals ("getSubject 2:", "CSC", course2.getSubject());
	}

	@Test
	public void testGetNumber() {
		assertEquals ("getNumber 1:",   0, course1.getNumber());
		assertEquals ("getNumber 2:", 207, course2.getNumber());
	}

	@Test
	public void testGetCredits() {
		assertEquals ("getCredits 1:",   0, course1.getCredits());
		assertEquals ("getCredits 2:",   4, course2.getCredits());

	}

	@Test
	public void testGetTitle() {
		assertEquals ("CourseString 1:", "", course1.title);
		assertEquals ("CourseString 2:", "Algorithms and Object-oriented Design", course2.title);
	}

	@Test
	public void testSetNumTitle() {
		course1.setNumTitle(208, "Discrete Structures");
		assertEquals ("setNumTitle 1 (title):", "Discrete Structures", course1.title);
		assertEquals ("setNumTitle 1 (number:", 208, course1.number);
 	}

	@Test
	public void testSetCredits() {
		course1.setCredits(7);
		assertEquals ("setCredits 1:", 7, course1.credits);

	}

	@Test
	public void testToString() {
		assertEquals ("toString 1:", "MTH 0:  \n   Credits:  0\n", course1.toString());
	}

	
	public void testMain() {
		fail("Not yet implemented");
	}

}
