public void When_student_is_enrolled_in_one_school_should_not_have_access_from_other_school()
        {
            var studentUniqueId = Guid.NewGuid().ToString("N");

            Builder
            .AddSchool(9722)
            .AddSchool(9702)
            .AddStudent(studentUniqueId)
            .Execute();

            var studentUsi = AuthorizationViewHelper.GetStudentUsi(Connection, studentUniqueId);

            Builder
            .AddStudentEducationOrganizationAssociation(9702, studentUsi)
            .Execute();

            var expectedTuples = new[] { (9722, studentUsi) };
        public void When_student_is_enrolled_in_a_school_should_have_access_from_that_school()
        {
            var studentUniqueId = Guid.NewGuid().ToString("N");

            Builder
            .AddSchool(9701)
            .AddStudent(studentUniqueId)
            .Execute();

            var studentUsi = AuthorizationViewHelper.GetStudentUsi(Connection, studentUniqueId);

            Builder
            .AddStudentEducationOrganizationAssociation(9701, studentUsi)
            .Execute();

            AuthorizationViewHelper.ShouldContainTuples(Connection, ViewName, (9701, studentUsi));
        }
        public void When_student_is_enrolled_in_a_school_should_have_access_from_that_school()
        {
            var studentUniqueId = Guid.NewGuid().ToString("N");

            Builder
            .AddSchool(9701)
            .AddStudent(studentUniqueId)
            .Execute();

            var studentUsi = AuthorizationViewHelper.GetStudentUsi(Connection, studentUniqueId);

            Builder
            .AddStudentSchoolAssociation(9701, studentUsi, DateTime.UtcNow.Date)
            .Execute();

            AuthorizationViewHelper.ShouldContainTuples(
                Connection, PersonType.Student, (9701, studentUsi));
        }
        public void When_student_is_enrolled_in_school_that_belongs_to_a_district_should_not_return_duplicate_records()
        {
            var studentUniqueId = Guid.NewGuid().ToString("N");

            Builder
            .AddLocalEducationAgency(2200)
            .AddSchool(9705, 2200)
            .AddStudent(studentUniqueId)
            .Execute();

            var studentUsi = AuthorizationViewHelper.GetStudentUsi(Connection, studentUniqueId);

            Builder
            .AddStudentSchoolAssociation(9705, studentUsi, DateTime.UtcNow.Date)
            .Execute();

            AuthorizationViewHelper.ShouldNotContainDuplicate(Connection, PersonType.Student);
        }
        public void When_student_is_enrolled_in_school_that_belongs_to_a_district_should_not_return_duplicate_records()
        {
            var studentUniqueId = Guid.NewGuid().ToString("N");

            Builder
            .AddLocalEducationAgency(2200)
            .AddSchool(9705, 2200)
            .AddStudent(studentUniqueId)
            .Execute();

            var studentUsi = AuthorizationViewHelper.GetStudentUsi(Connection, studentUniqueId);

            Builder
            .AddStudentEducationOrganizationAssociation(9705, studentUsi)
            .Execute();

            AuthorizationViewHelper.HasDuplicateRecordsForAuthorizationView(Connection, ViewName).ShouldBeFalse();
        }
        public void When_student_is_enrolled_in_multiple_schools_should_not_return_duplicate_records_those_schools()
        {
            var studentUniqueId = Guid.NewGuid().ToString("N");

            Builder
            .AddSchool(9703)
            .AddSchool(9704)
            .AddStudent(studentUniqueId)
            .Execute();

            var studentUsi = AuthorizationViewHelper.GetStudentUsi(Connection, studentUniqueId);

            Builder
            .AddStudentSchoolAssociation(9703, studentUsi, DateTime.UtcNow.Date)
            .AddStudentSchoolAssociation(9704, studentUsi, DateTime.UtcNow.Date.AddYears(-1))
            .Execute();

            AuthorizationViewHelper.ShouldNotContainDuplicate(Connection, PersonType.Student);
        }
        public void When_student_is_enrolled_in_multiple_schools_should_not_return_duplicate_records()
        {
            var studentUniqueId = Guid.NewGuid().ToString("N");

            Builder
            .AddSchool(9703)
            .AddSchool(9704)
            .AddStudent(studentUniqueId)
            .Execute();

            var studentUsi = AuthorizationViewHelper.GetStudentUsi(Connection, studentUniqueId);

            Builder
            .AddStudentEducationOrganizationAssociation(9703, studentUsi)
            .AddStudentEducationOrganizationAssociation(9704, studentUsi)
            .Execute();

            AuthorizationViewHelper.HasDuplicateRecordsForAuthorizationView(Connection, ViewName).ShouldBeFalse();
        }
        public void When_parent_assigned_to_a_student_in_school_should_not_access_from_other_school()
        {
            var studentUniqueId = Guid.NewGuid().ToString("N");
            var parentUniqueId  = Guid.NewGuid().ToString("N");

            Builder
            .AddSchool(9902)
            .AddSchool(9802)
            .AddStudent(studentUniqueId)
            .AddParent(parentUniqueId)
            .Execute();

            var studentUsi = AuthorizationViewHelper.GetStudentUsi(Connection, studentUniqueId);
            var parentUsi  = AuthorizationViewHelper.GetParentUsi(Connection, parentUniqueId);

            Builder
            .AddStudentSchoolAssociation(9802, studentUsi, DateTime.UtcNow.Date)
            .AddStudentParentAssociation(parentUsi, studentUsi)
            .Execute();

            var expectedTuples = new[] { (9902, parentUsi) };