package take;

import java.util.Collection;
import tests.Date;
import tests.Test;
import tests.Time;
import users.User;

/**
 * A TestAttempt contains the user that is making the attempt, the test 
 * that the user is attempting, the question attempts that the user
 * has made that align with the test, and the date and time of the attempt.
 */
public abstract class TestAttempt
{
    Test test;
    Collection<QuestionAttempt> attempts; 
    User user;
    Date date;
    Time time;

    /**
     * Sets the parameters for a TestAttempt object
     * @param test the test that is being attempted
     * @param attempts the question attempts
     * @param user the user attempting the test
     * @param date the date of the attempt
     * @param time the time of the attempt
     *                                        <pre>
       pre:
        //
        // Make sure the parameters are not null
        //
        test != null && attempts != null && attempts.size() > 0 &&
        user != null && date != null && time != null
     */
    public TestAttempt(Test test, Collection<QuestionAttempt> attempts, User user, Date date, Time time) {}
}