예제 #1
0
        public void GetAllDepartmentHeadsClassTest()
        {
            QuizardDatabase db = null;

            Assert.DoesNotThrow(delegate
            {
                db = new QuizardDatabase();
                db.Open();
                if (!File.Exists("quizard.db"))
                {
                    int x = db.buildDB();
                    Assert.AreEqual(x, 0);
                }
            });
            Console.WriteLine("Database created");

            List <User> dps = db.GetAllUsers(UserTypes.DepartmentHead);

            Console.WriteLine("retrieved all DepartmentHead");
            Console.WriteLine("total users Count: " + dps.Count);
            foreach (User dp in dps)
            {
                Console.WriteLine("departmentHead name: " + dp.Name);
                List <Class> classes = db.GetDepartmentClasses(dp);
                Console.WriteLine("Retrieved all classes for DepartmentHead");
                Console.WriteLine("Total class count: " + classes.Count);
                foreach (Class iClass in classes)
                {
                    Assert.IsTrue(iClass.DepartmentHead.rowId == dp.rowId);
                    Console.WriteLine("Class does not contain the DepartmentHead");
                }
            }
        }
예제 #2
0
        public void EnsureDepartmentHeadTest()
        {
            List <User> users = null;

            Assert.DoesNotThrow(delegate
            {
                QuizardDatabase db = new QuizardDatabase();
                db.Open();
                if (!File.Exists("quizard.db"))
                {
                    int x = db.buildDB();
                    Assert.AreEqual(x, 0);
                }
                Console.WriteLine("database created");
                users = db.GetAllUsers(UserTypes.DepartmentHead);
                Console.WriteLine("Query successful");
                Console.WriteLine("all DepartmentHead count = " + users.Count);
            });

            Assert.IsNotNull(users);
            foreach (User user in users)
            {
                Console.WriteLine("Testing " + user.Name);
                Assert.AreEqual(UserTypes.DepartmentHead, user.Role);
                Console.WriteLine(user.Name + " is a DepartmentHead");
            }
        }
예제 #3
0
        public void GetAllTeachersClassTest()
        {
            QuizardDatabase db = null;

            Assert.DoesNotThrow(delegate
            {
                db = new QuizardDatabase();
                db.Open();
                if (!File.Exists("quizard.db"))
                {
                    int x = db.buildDB();
                    Assert.AreEqual(x, 0);
                }
            });
            Console.WriteLine("Database created");

            List <User> teachers = db.GetAllUsers(UserTypes.Teacher);

            Console.WriteLine("retrieved all students");
            Console.WriteLine("total users Count: " + teachers.Count);
            foreach (User teacher in teachers)
            {
                Console.WriteLine("teacher name: " + teacher.Name);
                List <Class> classes = db.GetTeachersClasses(teacher);
                Console.WriteLine("Retrieved all classes for teacher");
                Console.WriteLine("Total class count: " + classes.Count);
                foreach (Class iClass in classes)
                {
                    Assert.IsTrue(iClass.Teacher.rowId == teacher.rowId);
                    Console.WriteLine("Class does not contain the teacher");
                }
            }
        }
예제 #4
0
        public void loginFailTest()
        {
            List <User>     users = null;
            QuizardDatabase db    = null;

            Assert.DoesNotThrow(delegate
            {
                db = new QuizardDatabase();
                db.Open();
                if (!File.Exists("quizard.db"))
                {
                    int x = db.buildDB();
                    Assert.AreEqual(x, 0);
                }
                Console.WriteLine("database created");
                users = db.GetAllUsers();
                Console.WriteLine("Query successful");
                Console.WriteLine("all users count = " + users.Count);
            });

            foreach (User user in users)
            {
                Console.WriteLine("User: "******"email: " + user.Email);
                Console.WriteLine("password: INVALID");
                User logUser = db.loginCheck(user.Email, "INVALID");
                Console.WriteLine("query successful");
                Assert.IsNull(logUser);
                Console.WriteLine("--------Login Failed as expected!----------");
            }
        }
예제 #5
0
        public void NegativeStudentsClassTest()
        {
            QuizardDatabase db = null;

            Assert.DoesNotThrow(delegate
            {
                db = new QuizardDatabase();
                db.Open();
                if (!File.Exists("quizard.db"))
                {
                    int x = db.buildDB();
                    Assert.AreEqual(x, 0);
                }
            });
            Console.WriteLine("Database created");

            List <User> students = db.GetAllUsers();

            Console.WriteLine("retrieved all students");
            Console.WriteLine("total users Count: " + students.Count);
            foreach (User student in students)
            {
                if (student.Role != UserTypes.Student)
                {
                    Console.WriteLine("student name: " + student.Name);
                    List <Class> classes = db.GetStudentsClasses(student);
                    Console.WriteLine("Retrieved all classes for student");
                    Console.WriteLine("Total class count: " + classes.Count);
                    foreach (Class iClass in classes)
                    {
                        Console.WriteLine("Testing class: " + iClass.Name);
                        bool found = false;
                        foreach (User cStud in iClass.Students)
                        {
                            if (cStud.rowId == student.rowId)
                            {
                                found = true;
                            }
                        }
                        Assert.IsFalse(found);
                        Console.WriteLine("Class does not contain the student");
                    }
                }
            }
        }
예제 #6
0
 public void BuildTest()
 {
     Assert.DoesNotThrow(delegate
     {
         QuizardDatabase Database = new QuizardDatabase();
         Database.Open();
         Console.WriteLine("DB opened");
         if (File.Exists("quizard.db"))
         {
             File.Delete("quizard.db");
             Console.WriteLine("DB deleted");
         }
         int x = Database.buildDB();
         Console.WriteLine("DB built");
         Assert.Greater(x, 0);
         Assert.IsTrue(File.Exists("quizard.db"));
         Console.WriteLine("DB built correctly");
     });
 }
예제 #7
0
        public void GetAllSTAslassTest()
        {
            QuizardDatabase db = null;

            Assert.DoesNotThrow(delegate
            {
                db = new QuizardDatabase();
                db.Open();
                if (!File.Exists("quizard.db"))
                {
                    int x = db.buildDB();
                    Assert.AreEqual(x, 0);
                }
            });
            Console.WriteLine("Database created");

            List <User> tas = db.GetAllUsers(UserTypes.TeachingAssistant);

            Console.WriteLine("retrieved all TeachingAssistant");
            Console.WriteLine("total TeachingAssistant Count: " + tas.Count);
            foreach (User ta in tas)
            {
                Console.WriteLine("TeachingAssistant name: " + ta.Name);
                List <Class> classes = db.GetTAClasses(ta);
                Console.WriteLine("Retrieved all classes for TeachingAssistant");
                Console.WriteLine("Total class count: " + classes.Count);
                foreach (Class iClass in classes)
                {
                    Console.WriteLine("Testing class: " + iClass.Name);
                    bool found = false;
                    foreach (User cStud in iClass.AssistantTeachers)
                    {
                        if (cStud.rowId == ta.rowId)
                        {
                            found = true;
                        }
                    }
                    Assert.IsTrue(found);
                    Console.WriteLine("Class does contain the TeachingAssistant");
                }
            }
        }
예제 #8
0
        public void GetAllAssignmentsTest()
        {
            QuizardDatabase db = null;

            Assert.DoesNotThrow(delegate
            {
                db = new QuizardDatabase();
                db.Open();
                if (!File.Exists("quizard.db"))
                {
                    int x = db.buildDB();
                    Assert.AreEqual(x, 0);
                }
            });
            Console.WriteLine("Database created");

            List <Class> classes = db.GetAllClasses();

            Console.WriteLine("Retrieved All Classes");
            Console.WriteLine("Total Class count: " + classes.Count);
            foreach (Class iClass in classes)
            {
                Console.WriteLine("CLass Name: " + iClass.Name);
                List <string> names = db.getAssignments(iClass.rowId);
                Console.WriteLine("Total Names count for " + iClass.Name + ": " + names.Count);

                using (SQLiteConnection database = new SQLiteConnection("Data Source = quizard.db"))
                {
                    database.Open();
                    using (SQLiteCommand command = database.CreateCommand())
                    {
                        command.CommandText = "SELECT COUNT(*) FROM quizzes WHERE class_ID = " + iClass.rowId + ";";
                        Console.WriteLine("SELECT COUNT(*) FROM quizzes WHERE class_ID = " + iClass.rowId + ";");
                        long allUassignmentsCount = (long)command.ExecuteScalar();
                        Console.WriteLine("current user count: " + allUassignmentsCount);
                        Assert.AreEqual(names.Count, allUassignmentsCount);
                        Console.WriteLine("Counts match with " + allUassignmentsCount);
                    }
                }
            }
        }
예제 #9
0
        public void GetAllClassesTest()
        {
            QuizardDatabase db = null;

            Assert.DoesNotThrow(delegate
            {
                db = new QuizardDatabase();
                db.Open();
                if (!File.Exists("quizard.db"))
                {
                    int x = db.buildDB();
                    Assert.AreEqual(x, 0);
                }
            });
            Console.WriteLine("Database created");

            List <Class> allClasses = db.GetAllClasses();

            Console.WriteLine("Query successful");

            Console.WriteLine("Class count = " + allClasses.Count);
            Assert.DoesNotThrow(delegate
            {
                using (SQLiteConnection database = new System.Data.SQLite.SQLiteConnection("Data Source = quizard.db"))
                {
                    database.Open();
                    using (SQLiteCommand command = database.CreateCommand())
                    {
                        Console.WriteLine("SELECT COUNT(*) FROM classes;");
                        command.CommandText = "SELECT COUNT(*) FROM classes;";
                        Assert.AreEqual(command.ExecuteScalar(), allClasses.Count);

                        Console.WriteLine("Count was equal");
                    }
                }
            });
        }
예제 #10
0
        public void GetALlUsersTest()
        {
            QuizardDatabase db = null;

            Assert.DoesNotThrow(delegate
            {
                db = new QuizardDatabase();
                db.Open();
                if (!File.Exists("quizard.db"))
                {
                    int x = db.buildDB();
                    Assert.AreEqual(x, 0);
                }
            });
            Console.WriteLine("Database created");

            List <User> allCUsers = db.GetAllUsers();

            Console.WriteLine("Query successful");
            Console.WriteLine("users count  = " + allCUsers.Count);

            //Assert.DoesNotThrow(delegate
            //{
            using (SQLiteConnection database = new SQLiteConnection("Data Source = quizard.db"))
            {
                database.Open();
                using (SQLiteCommand command = database.CreateCommand())
                {
                    command.CommandText = "SELECT COUNT(*) FROM users;";
                    Console.WriteLine("SELECT COUNT(*) FROM users;");
                    Assert.AreEqual(command.ExecuteScalar(), allCUsers.Count);
                    Console.WriteLine("counts are equal!");
                }
            }
            //});
        }
예제 #11
0
        public void userAddAndRemoveTest()
        {
            QuizardDatabase db = null;

            Assert.DoesNotThrow(delegate
            {
                db = new QuizardDatabase();
                db.Open();
                if (!File.Exists("quizard.db"))
                {
                    int x = db.buildDB();
                    Assert.AreEqual(x, 0);
                }
            });

            long allUsersCount = 0;

            using (SQLiteConnection database = new SQLiteConnection("Data Source = quizard.db"))
            {
                database.Open();
                using (SQLiteCommand command = database.CreateCommand())
                {
                    command.CommandText = "SELECT COUNT(*) FROM users;";
                    Console.WriteLine("SELECT COUNT(*) FROM users;");
                    allUsersCount = (long)command.ExecuteScalar();
                    Console.WriteLine("current user count: " + allUsersCount);
                }
            }

            Console.WriteLine("Database opened correctly");
            Console.WriteLine("name: testName");
            Console.WriteLine("email: testEmail");
            Console.WriteLine("password: testPassword");
            Console.WriteLine("role: " + UserTypes.Teacher.ToString());
            int result = db.CreateUser("testName", "testEmail", "testPassword", UserTypes.Teacher.ToString());

            Assert.AreEqual(result, 1);

            using (SQLiteConnection database = new SQLiteConnection("Data Source = quizard.db"))
            {
                database.Open();
                using (SQLiteCommand command = database.CreateCommand())
                {
                    command.CommandText = "SELECT COUNT(*) FROM users;";
                    Console.WriteLine("SELECT COUNT(*) FROM users;");
                    long other = (long)command.ExecuteScalar();
                    Assert.Greater(other, allUsersCount);
                    allUsersCount = other;
                    Console.WriteLine("current user count: " + allUsersCount);
                }
            }
            Console.WriteLine("The user was inserted correctly");

            List <User> toRemove = db.GetAllUsers(UserTypes.Teacher);

            foreach (User user in toRemove)
            {
                if (user.Name == "testName")
                {
                    db.RemoveUser(user);
                    Console.WriteLine("deleted user");
                }
            }

            using (SQLiteConnection database = new SQLiteConnection("Data Source = quizard.db"))
            {
                database.Open();
                using (SQLiteCommand command = database.CreateCommand())
                {
                    command.CommandText = "SELECT COUNT(*) FROM users;";
                    Console.WriteLine("SELECT COUNT(*) FROM users;");
                    long other = (long)command.ExecuteScalar();
                    Assert.Less(other, allUsersCount);
                    allUsersCount = other;
                    Console.WriteLine("current user count: " + allUsersCount);
                }
            }
            Console.WriteLine("The user was deleted properly correctly");
        }