コード例 #1
0
        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);
        }
コード例 #2
0
        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());
        }
コード例 #3
0
        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);
        }