package tests;

import java.util.Collection;
import users.User;
import questions.QuestionBank;

/**
 * Class contains a method to generate test, given a set of questions. 
 */

public abstract class GenerateTest {

	/**
 	* Generates a test given specific simple conditions.
 	* @param bank The question bank that the test generator draws from.
 	* @param questions The Collection of questions to place in the test.
 	* @param available Sets the date when the test becomes avilable to take.
 	* @param closed Sets the date when the test becomes closed.
 	* @param timeLimitMins Sets the time limit of the test in minutes.
 	* @param users The Collection of users that are allowed to take this test.
 	*/
	abstract Test generate(QuestionBank bank, Collection <TestQuestion> questions, Date available, Date closed, int timeLimitMins, Collection<User> users);

}