public void AuditionProfileTable_WhenGivenValidData_StoresValidData() { /* Arrange */ /* Act */ AuditionProfile ap = new AuditionProfile() { AuditionId = 1, ProfileId = 11 }; /* Assert */ Assert.Equal(1, ap.AuditionId); Assert.Equal(11, ap.ProfileId); }
public async Task <IActionResult> addApplicant(AddProfiletoAudition addition) { AuditionProfile audprof = new AuditionProfile(); audprof.AuditionId = int.Parse(addition.AuditionId); audprof.Audition = _context.Auditions.Find(int.Parse(addition.AuditionId)); audprof.ProfileId = int.Parse(addition.ProfileId); audprof.Profile = _context.Profiles.Find(int.Parse(addition.ProfileId)); if (ModelState.IsValid) { _context.Add(audprof); await _context.SaveChangesAsync(); } return(NoContent()); }
public void ApplyAudition_WhenGivenValidData_CreatesNewProfileAuditionAndDisplaysAuditionView() { /* Arrange */ // Set active user parameters (For GetSessionInfo) var aUserId = 1; var aProfId = 11; var aLoggedIn = true; // Profile that is applying: var pData = new List <Profile> { new Profile { ProfileId = aProfId, First_Name = "Elijas", Last_Name = "Reshmi", UserId = aUserId }, new Profile { ProfileId = 12, First_Name = "Eugenia", Last_Name = "Cornelius", UserId = 2 } }.AsQueryable(); // Audition to be applied for: var appAud = new Audition { AuditionId = 1, Open_Date = System.DateTime.Now, Closed_Date = System.DateTime.Now, EnsembleId = 21, Audition_Location = "Galena, IL", Audition_Description = "Come audition with us", Instrument_Name = "Voice" }; var aData = new List <Audition> { appAud, new Audition { AuditionId = 2, Open_Date = System.DateTime.Now, Closed_Date = System.DateTime.Now, EnsembleId = 22, Audition_Location = "Galena, IL", Audition_Description = "Come audition with us", Instrument_Name = "Voice" }, }.AsQueryable(); var apData = new List <AuditionProfile> { }.AsQueryable(); // Create Mocked DB Sets var mockProfiles = new Mock <DbSet <Profile> >(); mockProfiles.As <IQueryable <Profile> >().Setup(u => u.Provider).Returns(pData.Provider); mockProfiles.As <IQueryable <Profile> >().Setup(m => m.Expression).Returns(pData.Expression); mockProfiles.As <IQueryable <Profile> >().Setup(m => m.ElementType).Returns(pData.ElementType); mockProfiles.As <IQueryable <Profile> >().Setup(m => m.GetEnumerator()).Returns(pData.GetEnumerator()); var mockAudition = new Mock <DbSet <Audition> >(); mockAudition.As <IQueryable <Audition> >().Setup(u => u.Provider).Returns(aData.Provider); mockAudition.As <IQueryable <Audition> >().Setup(m => m.Expression).Returns(aData.Expression); mockAudition.As <IQueryable <Audition> >().Setup(m => m.ElementType).Returns(aData.ElementType); mockAudition.As <IQueryable <Audition> >().Setup(m => m.GetEnumerator()).Returns(aData.GetEnumerator()); var mockAuditionProfile = new Mock <DbSet <AuditionProfile> >(); mockAuditionProfile.As <IQueryable <AuditionProfile> >().Setup(u => u.Provider).Returns(apData.Provider); mockAuditionProfile.As <IQueryable <AuditionProfile> >().Setup(m => m.Expression).Returns(apData.Expression); mockAuditionProfile.As <IQueryable <AuditionProfile> >().Setup(m => m.ElementType).Returns(apData.ElementType); mockAuditionProfile.As <IQueryable <AuditionProfile> >().Setup(m => m.GetEnumerator()).Returns(apData.GetEnumerator()); // Create a Mocked DB var mockDB = new Mock <PluggedContext>(); // Set up necessary Mocked DB methods mockDB.Setup(x => x.Profiles) .Returns(mockProfiles.Object); mockDB.Setup(x => x.Auditions) .Returns(mockAudition.Object); mockDB.Setup(x => x.AuditionProfiles) .Returns(mockAuditionProfile.Object); // Create the "Table" that will save the new AuditionProfile List <AuditionProfile> addedAuditionProfiles = new List <AuditionProfile>(); // Mock the behavior of adding the new AuditionProfile mockDB.Setup(x => x.Add(It.IsAny <AuditionProfile>())) .Callback <AuditionProfile>(addedAuditionProfiles.Add); // Create a Mocked hosting environment var mockHostEnv = new Mock <IHostingEnvironment>(); var controllerMock = new Mock <HomeController>(mockDB.Object, mockHostEnv.Object); // Mock the request object and the resulting login information SessionModel fakeSM = new SessionModel(); fakeSM.IsLoggedIn = aLoggedIn; fakeSM.UserID = aUserId; var controller = controllerMock.Object; controller.ControllerContext = new ControllerContext(); controller.ControllerContext.HttpContext = new DefaultHttpContext(); var mockReq = controller.ControllerContext.HttpContext.Request; controllerMock.Setup(x => x.GetSessionInfo(mockReq)).Returns(fakeSM); controllerMock.CallBase = true; // Create the AuditionModel to be passed AuditionModel mo = new AuditionModel() { Audition = appAud }; /* Act */ var result = controller.ApplyAudition(mo); /* Assert */ var redirectToActionResult = Assert.IsType <RedirectToActionResult>(result); Assert.Equal("Audition", redirectToActionResult.ActionName); AuditionProfile addedAuditon = addedAuditionProfiles.Last(); Assert.Equal(aProfId, addedAuditon.ProfileId); Assert.Equal(addedAuditon.AuditionId, appAud.AuditionId); }