package tests;

import java.util.Collection;
import take.TestAttempt;
import users.User;

/**
 * A Test contains the questions on the test as well as the dates range
 * of when it is available, the time limit, and the users that it is available
 * to.
 */
public abstract class Test 
{
    public Collection<TestQuestion> questions;
    Date available;
    Date closed;
    int timeLimitMins;
    Collection<User> users;

    /**
     * Allows the user to take the test and returns
     * the TestAttempt.
     * @return the test attempt
     */
    public abstract TestAttempt takeTest();
}