public async void UpdateSession_StudentSession_CompletelyChangeClassesAndReasons_ShouldSaveSelectedIntoDatabase() { var classes = new List <Class>() { new Class() { Name = "Into to Excel", ShortName = "CS 101", CRN = 24668, Department = new Department() { Code = 134, Name = "STEM" } }, new Class() { Name = "Advanced Datastructures", ShortName = "CS 387", CRN = 546789, Department = new Department() { Code = 134, Name = "STEM" } } }; var reasons = new List <Reason>() { new Reason() { Id = 1, Name = "Bone Use" }, new Reason() { Id = 2, Name = "Computer Use" } }; var person = new Person() { Email = "*****@*****.**", FirstName = "Tom", LastName = "Betty", Id = 4697, PersonType = PersonType.Student }; var semester = new Semester() { Code = 201903 }; var session = new Session() { InTime = DateTime.Now, OutTime = DateTime.Now.Add(new TimeSpan(5)), PersonId = person.Id, SemesterCode = semester.Code, SessionClasses = new List <SessionClass>() { new SessionClass() { ClassId = 24668 } }, SessionReasons = new List <SessionReason>() { new SessionReason() { ReasonId = 1 } } }; db.Classes.AddRange(classes); db.People.Add(person); db.Semesters.Add(semester); db.Sessions.Add(session); db.SaveChanges(); var sessionUpdate = new SessionPostOrPutDTO() { InTime = session.InTime, OutTime = session.OutTime.Value, PersonId = session.PersonId, Id = session.Id, SemesterCode = session.SemesterCode, Tutoring = session.Tutoring, SelectedClasses = new List <int>() { 546789 }, SelectedReasons = new List <int>() { 2 } }; await sessionController.UpdateSession(sessionUpdate.Id, sessionUpdate); var sessionClasses = db.SessionClasses.Where(x => x.SessionId == session.Id); var sessionReasons = db.SessionReasons.Where(x => x.SessionId == session.Id); Assert.Equal(sessionUpdate.SelectedClasses, sessionClasses.Select(x => x.ClassId).ToList()); Assert.Equal(sessionUpdate.SelectedReasons, sessionReasons.Select(x => x.ReasonId).ToList()); }
public async void Session_DeletedIsFalse_DeletedSetToTrueAfterCallingRemove() { var classes = new List <Class>() { new Class() { Name = "Into to Excel", ShortName = "CS 101", CRN = 24668, Department = new Department() { Code = 134, Name = "STEM" } }, new Class() { Name = "Advanced Datastructures", ShortName = "CS 387", CRN = 546789, Department = new Department() { Code = 134, Name = "STEM" } } }; var reasons = new List <Reason>() { new Reason() { Id = 1, Name = "Bone Use" }, new Reason() { Id = 2, Name = "Computer Use" } }; var person = new Person() { Email = "*****@*****.**", FirstName = "Tom", LastName = "Betty", Id = 4697, PersonType = PersonType.Student }; var semester = new Semester() { Code = 201903 }; var session = new Session() { InTime = DateTime.Now, OutTime = DateTime.Now.Add(new TimeSpan(5)), PersonId = person.Id, SemesterCode = semester.Code, SessionClasses = new List <SessionClass>() { new SessionClass() { ClassId = 24668 } }, SessionReasons = new List <SessionReason>() { new SessionReason() { ReasonId = 1 } }, Deleted = false }; db.Classes.AddRange(classes); db.People.Add(person); db.Semesters.Add(semester); db.Sessions.Add(session); db.SaveChanges(); var deletedSession = await sessionRepo.Remove(x => x.Id == session.Id); Assert.True(deletedSession.Deleted); }
public async void GetPersonInfo_StudentExistsButHasOldSchedule_ShouldReturnStudentInfoAndSaveToDatabase(string identifier) { var email = identifier; var id = Utils.ParseOrDefault(identifier, 54321687); var person = new Person() { Id = id, Email = email, FirstName = "Billy", LastName = "Joe" }; var semester = new Semester() { Code = 201901 }; var newSemesterId = 201902; var oldCourses = new List <Class>() { new Class() { CRN = 13465, Name = "Intro to Computers", Department = new Department() { Code = 13465, Name = "STEM" } } }; var bannerPersonInfo = new BannerPersonInfo() { WVUPID = person.Id, EmailAddress = person.Email, Courses = new List <BannerClass>() { new BannerClass() { CRN = 11112, CourseName = "Intro to Excel", ShortName = "CS 101", Department = new BannerDepartment() { Code = 1234, Name = "STEM" } } }, FirstName = person.FirstName, LastName = person.LastName, TermCode = newSemesterId }; db.People.Add(person); db.Semesters.Add(semester); db.Classes.AddRange(oldCourses); db.SaveChanges(); mockBannerService.Setup(x => x.GetBannerInfo(It.IsAny <string>())).ReturnsAsync(() => bannerPersonInfo); var personInfo = await unitPerson.GetPersonInfo(identifier); mockBannerService.Verify(x => x.GetBannerInfo(It.Is <string>(a => a == person.Email || a == person.Id.ToString())), Times.Once()); Assert.Equal(personInfo.Schedule.Select(x => x.CRN), bannerPersonInfo.Courses.Select(x => x.CRN)); var addedSemester = db.Semesters.SingleOrDefault(x => x.Code == newSemesterId); Assert.NotNull(addedSemester); Assert.Equal(personInfo.Schedule.Select(x => x.CRN), db.Schedules.Where(x => x.Person.Email == person.Email).Select(x => x.ClassCRN)); }