예제 #1
0
        public void EnsureICanDeleteAProjectFromAnInventory()
        {
            //Begin Arrange
            var data = my_projects.AsQueryable();

            string ProjectName = "ToDo";

            mock_Projects.As<IQueryable<Project>>().Setup(m => m.Provider).Returns(data.Provider);
            mock_Projects.As<IQueryable<Project>>().Setup(m => m.GetEnumerator()).Returns(data.GetEnumerator());
            mock_Projects.As<IQueryable<Project>>().Setup(m => m.ElementType).Returns(data.ElementType);
            mock_Projects.As<IQueryable<Project>>().Setup(m => m.Expression).Returns(data.Expression);

            mock_Projects.Setup(m => m.Add(It.IsAny<Project>())).Callback((Project p) => my_projects.Add(p));
            mock_Projects.Setup(m => m.Remove(It.IsAny<Project> ())).Callback((Project p) => my_projects.Remove(p));
            mock_context.Setup(m => m.Projects).Returns(mock_Projects.Object);

            InventoryRepository repo = new InventoryRepository(mock_context.Object);
            //End Arrange

            //Begin First Act
            Project NewProject = repo.CreateProject("ToDo", owner);

            // Begin first assert
            Assert.IsNotNull(NewProject);
            Assert.AreEqual(1, repo.GetProjectCount());

            // Begin second act
            Project removed_project = repo.DeleteProject("ToDo", owner);

            //Begin second Assert
            mock_Projects.Verify(m => m.Add(It.IsAny<Project>()));
            mock_context.Verify(x => x.SaveChanges(), Times.Exactly(2));
            repo.DeleteProject(removed_project);
            mock_Projects.Verify(x => x.Remove(It.IsAny<Project>()));
            mock_context.Verify(x => x.SaveChanges(), Times.Exactly(3));
            Assert.AreEqual(0, repo.GetProjectCount());
            //End Assert
        }
예제 #2
0
        public void ListEnsureICanEditAProject()
        {
            //Begin Arrange
            var data = my_projects.AsQueryable();
               // InventoryRepository repo = new InventoryRepository(mock_context.Object);
               // Project list = new Project { ProjectName = "ToDo", ProjectId = 1 };
               // my_projects.Remove(new Project { ProjectName = "My First Project", Owner = user1, ProjectId = 1 });

            mock_Projects.As<IQueryable<Project>>().Setup(m => m.Provider).Returns(data.Provider);
            mock_Projects.As<IQueryable<Project>>().Setup(m => m.GetEnumerator()).Returns(data.GetEnumerator());
            mock_Projects.As<IQueryable<Project>>().Setup(m => m.ElementType).Returns(data.ElementType);
            mock_Projects.As<IQueryable<Project>>().Setup(m => m.Expression).Returns(data.Expression);

            mock_Projects.Setup(m => m.Add(It.IsAny<Project>())).Callback((Project p) => my_projects.Add(p));

            mock_context.Setup(m => m.Projects).Returns(mock_Projects.Object);

            InventoryRepository repo = new InventoryRepository(mock_context.Object);

            //End Arrange

            Project projectToChange = repo.CreateProject("ToDo", owner);
            //Begin Act

            // Begin Assert
            Assert.IsNotNull(projectToChange);
            Assert.AreEqual(1, repo.GetProjectCount());

            projectToChange.ProjectName = "blah blah";
            // my_projects.Add(new Project { ProjectName = "My Next Board", Owner = user1, ProjectId = 1 });

            repo.UpdateProject(projectToChange);

            //End Act

            //Begin Assert
            var updatedProject = repo.GetProjectById(projectToChange.ProjectId);

            Assert.AreEqual(updatedProject.ProjectName, "blah blah");
            //End Assert
        }