Beispiel #1
0
        public void EnsembleModel_WhenGivenValidData_StoresValidData()
        {
            /* Arrange */
            // Create a Mocked IHostingEnviornment
            var mockHostEnv = new Mock <IHostingEnvironment>();

            //Create a Ensemble Model
            var model = new EnsembleModel();

            //create valid data
            var ensemble    = new Ensemble();
            var profiles    = new List <Profile>();
            var instruments = new List <SelectListItem>();
            var selected    = new List <string>();
            var auds        = new HashSet <Audition>();

            /* Act */
            model.Ensemble      = ensemble;
            model.Profiles      = profiles;
            model.Instruments   = instruments;
            model.SelectedInsId = selected;
            model.Audition      = auds;

            /* Assert */
            Assert.IsType <Ensemble>(model.Ensemble);
            Assert.IsType <List <Profile> >(model.Profiles);
            Assert.IsType <List <string> >(model.SelectedInsId);
            Assert.IsAssignableFrom <ICollection <Audition> >(model.Audition);
        }
Beispiel #2
0
        public void EditEnsemble_WhenCalledWithPost_UpdatesDatabase()
        {
            /* Arrange */

            var mockHostEnv = new Mock <IHostingEnvironment>();

            // Create DB data
            var uData = new List <User>
            {
                new User {
                    UserId = 1, Password = "******", Email = "*****@*****.**"
                },
                new User {
                    UserId = 2, Password = "******", Email = "*****@*****.**"
                },
                new User {
                    UserId = 3, Password = "******", Email = "*****@*****.**"
                },
                new User {
                    UserId = 4, Password = "******", Email = "*****@*****.**"
                },
                new User {
                    UserId = 5, Password = "******", Email = "*****@*****.**"
                }
            }.AsQueryable();

            var eData = new List <Ensemble>
            {
                new Ensemble {
                    EnsembleId = 21, Ensemble_Name = "Blue Group", UserId = 1
                },
                new Ensemble {
                    EnsembleId = 22, Ensemble_Name = "Red Group", UserId = 2
                }
            }.AsQueryable();


            // Create Mocked DB Sets
            var mockUsers = new Mock <DbSet <User> >();

            mockUsers.As <IQueryable <User> >().Setup(u => u.Provider).Returns(uData.Provider);
            mockUsers.As <IQueryable <User> >().Setup(m => m.Expression).Returns(uData.Expression);
            mockUsers.As <IQueryable <User> >().Setup(m => m.ElementType).Returns(uData.ElementType);
            mockUsers.As <IQueryable <User> >().Setup(m => m.GetEnumerator()).Returns(uData.GetEnumerator());

            var mockEnsemble = new Mock <DbSet <Ensemble> >();

            mockEnsemble.As <IQueryable <Ensemble> >().Setup(u => u.Provider).Returns(eData.Provider);
            mockEnsemble.As <IQueryable <Ensemble> >().Setup(m => m.Expression).Returns(eData.Expression);
            mockEnsemble.As <IQueryable <Ensemble> >().Setup(m => m.ElementType).Returns(eData.ElementType);
            mockEnsemble.As <IQueryable <Ensemble> >().Setup(m => m.GetEnumerator()).Returns(eData.GetEnumerator());

            // Create a Mocked DB
            var mockDB = new Mock <PluggedContext>();

            // Set up necessary Mocked DB methods
            mockDB.Setup(x => x.Users)
            .Returns(mockUsers.Object);

            mockDB.Setup(x => x.Ensembles)
            .Returns(mockEnsemble.Object);
            mockDB.Setup(x => x.Ensembles.Find(It.IsAny <int>()))
            .Returns(mockEnsemble.Object.FirstOrDefault(p => p.EnsembleId == 21));

            var controllerMock = new Mock <HomeController>(mockDB.Object, mockHostEnv.Object);

            // Mock the request object and the resulting login information
            SessionModel fakeSM = new SessionModel();

            fakeSM.IsLoggedIn = true;
            fakeSM.UserID     = 1;

            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;

            EnsembleModel model    = new EnsembleModel();
            var           ensemble = new Ensemble();

            model.Ensemble = ensemble;
            model.Ensemble.Ensemble_Name  = "Purple Group";
            model.Ensemble.Formed_Date    = new System.DateTime(2015, 4, 13);
            model.Ensemble.Disbanded_Date = new System.DateTime(2020, 4, 13);
            model.Ensemble.City           = "Prospit";
            model.Ensemble.State          = "HS";
            model.Ensemble.Type           = "Brass Band";
            model.Ensemble.Genre          = "Jazz";
            model.Ensemble.Bio            = "Here is an about us";

            /* Act */
            var result = controller.EditEnsemble(21, model);

            /* Assert */

            Assert.IsType <RedirectToActionResult>(result.Result);
            RedirectToActionResult redirect = (RedirectToActionResult)result.Result;

            Assert.Equal("Ensemble", redirect.ActionName);
            var editedensemble = mockDB.Object.Ensembles.Find(21);

            Assert.Equal("Purple Group", editedensemble.Ensemble_Name);
            Assert.Equal(new System.DateTime(2015, 4, 13), editedensemble.Formed_Date);
            Assert.Equal(new System.DateTime(2020, 4, 13), editedensemble.Disbanded_Date);
            Assert.Equal("Brass Band", editedensemble.Type);
            Assert.Equal("Jazz", editedensemble.Genre);
            Assert.Equal("Here is an about us", editedensemble.Bio);
            Assert.Equal("Prospit", editedensemble.City);
            Assert.Equal("HS", editedensemble.State);
        }
Beispiel #3
0
        public void EditEnsemble_WhenCalledWithGet_ReturnsValidView()
        {
            /* Arrange */

            var mockHostEnv = new Mock <IHostingEnvironment>();

            // Create DB data
            var uData = new List <User>
            {
                new User {
                    UserId = 1, Password = "******", Email = "*****@*****.**"
                },
                new User {
                    UserId = 2, Password = "******", Email = "*****@*****.**"
                },
                new User {
                    UserId = 3, Password = "******", Email = "*****@*****.**"
                },
                new User {
                    UserId = 4, Password = "******", Email = "*****@*****.**"
                },
                new User {
                    UserId = 5, Password = "******", Email = "*****@*****.**"
                }
            }.AsQueryable();

            var eData = new List <Ensemble>
            {
                new Ensemble {
                    EnsembleId = 21, Ensemble_Name = "Blue Group", UserId = 1
                },
                new Ensemble {
                    EnsembleId = 22, Ensemble_Name = "Red Group", UserId = 2
                }
            }.AsQueryable();


            // Create Mocked DB Sets
            var mockUsers = new Mock <DbSet <User> >();

            mockUsers.As <IQueryable <User> >().Setup(u => u.Provider).Returns(uData.Provider);
            mockUsers.As <IQueryable <User> >().Setup(m => m.Expression).Returns(uData.Expression);
            mockUsers.As <IQueryable <User> >().Setup(m => m.ElementType).Returns(uData.ElementType);
            mockUsers.As <IQueryable <User> >().Setup(m => m.GetEnumerator()).Returns(uData.GetEnumerator());

            var mockEnsemble = new Mock <DbSet <Ensemble> >();

            mockEnsemble.As <IQueryable <Ensemble> >().Setup(u => u.Provider).Returns(eData.Provider);
            mockEnsemble.As <IQueryable <Ensemble> >().Setup(m => m.Expression).Returns(eData.Expression);
            mockEnsemble.As <IQueryable <Ensemble> >().Setup(m => m.ElementType).Returns(eData.ElementType);
            mockEnsemble.As <IQueryable <Ensemble> >().Setup(m => m.GetEnumerator()).Returns(eData.GetEnumerator());

            // Create a Mocked DB
            var mockDB = new Mock <PluggedContext>();

            // Set up necessary Mocked DB methods
            mockDB.Setup(x => x.Users)
            .Returns(mockUsers.Object);

            mockDB.Setup(x => x.Ensembles)
            .Returns(mockEnsemble.Object);
            mockDB.Setup(x => x.Ensembles.Find(It.IsAny <int>()))
            .Returns(mockEnsemble.Object.FirstOrDefault(p => p.EnsembleId == 21));

            var controllerMock = new Mock <HomeController>(mockDB.Object, mockHostEnv.Object);

            // Mock the request object and the resulting login information
            SessionModel fakeSM = new SessionModel();

            fakeSM.IsLoggedIn = true;
            fakeSM.UserID     = 1;

            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;

            /* Act */
            var result = controller.EditEnsemble(21);

            /* Assert */
            Assert.IsType <ViewResult>(result.Result);
            ViewResult    view  = (ViewResult)result.Result;
            EnsembleModel model = (EnsembleModel)view.Model;

            Assert.Equal(21, model.Ensemble.EnsembleId);
        }