public void can_create_find_update_and_delete_class()
        {
            ClassGateway sut   = new ClassGateway(TestHelpers.ConnectionString);
            string       name  = TestHelpers.RandomTestName();
            string       level = TestHelpers.RandomLevel();

            sut.Create(name, level);
            Class c;

            {
                c = sut.FindByName(name);
                CheckClass(c, name, level);
            }

            {
                c = sut.FindById(c.ClassId);
                CheckClass(c, name, level);
            }

            {
                name  = TestHelpers.RandomTestName();
                level = TestHelpers.RandomLevel();
                sut.Update(c.ClassId, name, level);

                c = sut.FindById(c.ClassId);
                CheckClass(c, name, level);
            }

            {
                sut.Delete(c.ClassId);
                c = sut.FindById(c.ClassId);
                Assert.That(c, Is.Null);
            }
        }
        public void can_assign_class()
        {
            ClassGateway classGateway = new ClassGateway(TestHelpers.ConnectionString);
            string       className1   = TestHelpers.RandomTestName();
            string       level1       = TestHelpers.RandomLevel();

            classGateway.Create(className1, level1);
            Class c1 = classGateway.FindByName(className1);

            StudentGateway sut       = new StudentGateway(TestHelpers.ConnectionString);
            string         firstName = TestHelpers.RandomTestName();
            string         lastName  = TestHelpers.RandomTestName();
            DateTime       birthDate = TestHelpers.RandomBirthDate(_random.Next(5, 10));

            sut.Create(firstName, lastName, birthDate, string.Empty, c1.ClassId);

            Student student;

            {
                student = sut.FindByName(firstName, lastName);
                CheckStudent(student, firstName, lastName, birthDate, c1.ClassId);
            }

            {
                string className2 = TestHelpers.RandomTestName();
                string level2     = "CP";
                classGateway.Create(className2, level2);
                Class c2 = classGateway.FindByName(className2);
                sut.AssignClass(student.StudentId, c2.ClassId);
                student = sut.FindById(student.StudentId);
                CheckStudent(student, firstName, lastName, birthDate, c2.ClassId);

                sut.AssignClass(student.StudentId, 0);
                student = sut.FindById(student.StudentId);
                CheckStudent(student, firstName, lastName, birthDate, 0);

                classGateway.Delete(c2.ClassId);
            }

            sut.Delete(student.StudentId);
            classGateway.Delete(c1.ClassId);
        }
Пример #3
0
        public Result <Class> CreateClass(string name, string level)
        {
            if (!IsNameValid(name))
            {
                return(Result.Failure <Class>(Status.BadRequest, "The class name is not valid."));
            }
            if (!IsLevelValid(level))
            {
                return(Result.Failure <Class>(Status.BadRequest, "The class level is not valid."));
            }
            if (_classGateway.FindByName(name) != null)
            {
                return(Result.Failure <Class>(Status.BadRequest, "A class with this name already exists."));
            }

            _classGateway.Create(name, level);
            Class c = _classGateway.FindByName(name);

            return(Result.Success(Status.Created, c));
        }
        public void can_assign_teacher()
        {
            TeacherGateway teacherGateway = new TeacherGateway(TestHelpers.ConnectionString);
            string         firstName      = TestHelpers.RandomTestName();
            string         lastName       = TestHelpers.RandomTestName();

            teacherGateway.Create(firstName, lastName);
            Teacher teacher1 = teacherGateway.FindByName(firstName, lastName);

            ClassGateway sut   = new ClassGateway(TestHelpers.ConnectionString);
            string       name  = TestHelpers.RandomTestName();
            string       level = TestHelpers.RandomLevel();

            sut.Create(name, level, teacher1.TeacherId);

            Class c;

            {
                c = sut.FindByName(name);
                CheckClass(c, name, level, teacher1.TeacherId);
            }

            {
                string firstName2 = TestHelpers.RandomTestName();
                string lastName2  = TestHelpers.RandomTestName();
                teacherGateway.Create(firstName2, lastName2);
                Teacher teacher2 = teacherGateway.FindByName(firstName2, lastName2);
                sut.AssignTeacher(c.ClassId, teacher2.TeacherId);
                c = sut.FindById(c.ClassId);
                CheckClass(c, name, level, teacher2.TeacherId);

                sut.AssignTeacher(c.ClassId, 0);
                c = sut.FindById(c.ClassId);
                CheckClass(c, name, level, 0);

                teacherGateway.Delete(teacher2.TeacherId);
            }

            sut.Delete(c.ClassId);
            teacherGateway.Delete(teacher1.TeacherId);
        }