public void ProjectRepository_Delete_ShouldRemoveAProjectFromTheDB()
        {
            var project = new Project();
            project.DateStarted = DateTime.Now;
            project.Name = "test";
            project.Owner = user;
            project.OwnerID = user.UserId;

            var repo = new ProjectRepository();
            repo.Create(project);

            Assert.IsNotNull(repo.FindProjectByID(project.ID));

            repo.Delete(project);
            Assert.IsNull(repo.FindProjectByID(project.ID));
        }
 /// <summary>
 /// removes existing proejcts from teh database so we can count the projects correctly
 /// </summary>
 /// <param name="userID"></param>
 private void removeExistingProjectsFromUser(int userID)
 {
     var projects = new ProjectRepository();
     var ownedProjects = projects.FindProjectsOwnedByUser(userID);
     foreach (var project in ownedProjects)
     {
         var foundProject = projects.FindProjectByID(project.ID);
         projects.Delete(foundProject);
     }
 }
        public void ProjectRepository_Find_ShouldReturnNull_IftheProjectDoesntExist()
        {
            var repo = new ProjectRepository();
            var foundProject = repo.FindProjectByID(Guid.NewGuid());

            Assert.IsNull(foundProject);
        }
        public void ProjectRepository_Find_ShouldReturnOneProjectFromTheDB_IfItExists()
        {
            var project = new Project();
            project.DateStarted = DateTime.Now;
            project.Name = "test";
            project.Owner = user;
            project.OwnerID = user.UserId;

            var repo = new ProjectRepository();
            repo.Create(project);

            var foundProject = repo.FindProjectByID(project.ID);

            Assert.IsNotNull(foundProject);
            Assert.AreEqual(project.DateStarted, foundProject.DateStarted);
            Assert.AreEqual(project.Name, foundProject.Name);
            Assert.AreEqual(project.OwnerID, foundProject.OwnerID);
        }
        public void ProjectRepository_Edit_ShouldUpdateTheDB()
        {
            var project = new Project();
            project.DateStarted = DateTime.Now;
            project.Name = "test";
            project.Owner = user;
            project.OwnerID = user.UserId;

            var repo = new ProjectRepository();
            repo.Create(project);

            var foundProject = repo.FindProjectByID(project.ID);

            Assert.IsNotNull(foundProject);
            Assert.AreEqual(project.DateStarted, foundProject.DateStarted);
            Assert.AreEqual(project.Name, foundProject.Name);
            Assert.AreEqual(project.OwnerID, foundProject.OwnerID);

            foundProject.Name = "other";

            repo.Update(project);

            var newFoundProject = repo.FindProjectByID(foundProject.ID);
            Assert.IsNotNull(newFoundProject);
            Assert.AreEqual(foundProject.DateStarted, newFoundProject.DateStarted);
            Assert.AreEqual(foundProject.Name, newFoundProject.Name);
            Assert.AreEqual(foundProject.OwnerID, newFoundProject.OwnerID);
        }