Exemplo n.º 1
0
        public async Task GetProjectsForCurrentUser_Assigned0Projects_ReturnsEmptyListAssignedProjects()
        {
            _client = new IntegrationWebApplicationFactory <Startup>().WithWebHostBuilder(builder =>
            {
                builder.ConfigureTestServices(services =>
                {
                    var serviceDesc = services.FirstOrDefault(desc => desc.ServiceType == typeof(ICurrentUserContext));
                    services.Remove(serviceDesc);
                    _currentUserContext = new CurrentUserContext()
                    {
                        UserId = 4
                    };
                    services.AddTransient <ICurrentUserContext>(x => _currentUserContext);
                    var sp     = services.BuildServiceProvider();
                    _dbContext = sp.GetRequiredService <TaskterDbContext>();
                });
            }).CreateClient();

            _dbContext.Users.Add(new User("test2", "test 2", "test lastName", "admin", "http://google.com")
            {
                Id = _currentUserContext.UserId
            });
            _dbContext.SaveChanges();

            var result = await _client.GetProjectsForCurrentUser();

            result.Count.Should().Be(0);
        }
Exemplo n.º 2
0
        public async Task AddProject_AddMultipleProjects_AddGivenNumberOfProjects()
        {
            _client = new IntegrationWebApplicationFactory <Startup>().WithWebHostBuilder(builder =>
            {
                builder.ConfigureTestServices(services =>
                {
                    var sp             = services.BuildServiceProvider();
                    _dbContext         = sp.GetRequiredService <TaskterDbContext>();
                    _projectRepository = sp.GetRequiredService <IProjectRepository>();
                });
            }).CreateClient();

            var seeds = new List <Project>()
            {
                new Project("Test1", 1),
                new Project("Test2", 1),
                new Project("Test3", 1)
            };

            foreach (var project in seeds)
            {
                await _projectRepository.AddProject(project);
            }

            _dbContext.SaveChanges();

            _dbContext.Projects.ToList().Count.Should().Be(3);
        }
Exemplo n.º 3
0
 public void SetUp()
 {
     _context = new TaskterDbContext(new DbContextOptionsBuilder <TaskterDbContext>()
                                     .UseInMemoryDatabase("InMemoryTaskterDB")
                                     .Options);
     _context.Database.EnsureCreated();
     _repository = new UserRepository(_context);
 }
Exemplo n.º 4
0
 public void SetUp()
 {
     _context = new TaskterDbContext(new DbContextOptionsBuilder <TaskterDbContext>()
                                     .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                     .Options);
     _context.Database.EnsureCreated();
     _userContext = new CurrentUserContext()
     {
         UserId = 4
     };
     _repository = new ProjectTaskEntryRepository(_context, _userContext);
 }
Exemplo n.º 5
0
        public void SetUp()
        {
            _context = new TaskterDbContext(new DbContextOptionsBuilder <TaskterDbContext>()
                                            .UseInMemoryDatabase("InMemoryTaskterDB")
                                            .Options);
            _context.Database.EnsureCreated();
            var _userContext = new CurrentUserContext()
            {
                UserId = 4
            };

            _repository = new ProjectRepository(_context, _userContext);
        }
Exemplo n.º 6
0
        public async Task PostProjectTaskEntry_AssignTwoTaskEntriesToCurrentUser_ReturnsAListOfTwoAAssignedEntries()
        {
            _client = new IntegrationWebApplicationFactory <Startup>().WithWebHostBuilder(builder =>
            {
                builder.ConfigureTestServices(services =>
                {
                    var serviceDesc = services.FirstOrDefault(desc => desc.ServiceType == typeof(ICurrentUserContext));
                    services.Remove(serviceDesc);
                    _currentUserContext = new CurrentUserContext()
                    {
                        UserId = 3
                    };
                    services.AddTransient <ICurrentUserContext>(x => _currentUserContext);
                    var sp     = services.BuildServiceProvider();
                    _dbContext = sp.GetRequiredService <TaskterDbContext>();
                });
            }).CreateClient();

            _dbContext.Users.Add(new User("test", "user1", "user1", "Admin", "http://google.com")
            {
                Id = _currentUserContext.UserId
            });
            _dbContext.Clients.Add(new Client("Client")
            {
                Id = 100
            });
            _dbContext.Projects.Add(new Project("Project 1", 100, null)
            {
                Id = 101
            });
            _dbContext.ProjectTasks.Add(new ProjectTask("ProjectTask1", 101, true)
            {
                Id = 102
            });
            _dbContext.ProjectTaskEntries.RemoveRange(_dbContext.ProjectTaskEntries.ToList());
            _dbContext.SaveChanges();
            ProjectTaskEntry newEntry  = new ProjectTaskEntry(3, 102, 30, DateTime.Now, "Notee");
            ProjectTaskEntry newEntry2 = new ProjectTaskEntry(3, 102, 55, DateTime.Now, "Notee2");

            await _client.PostNewTimeEntry(newEntry);

            await _client.PostNewTimeEntry(newEntry2);

            var listOfEntries = _dbContext.ProjectTaskEntries.ToList();

            listOfEntries.Count.Should().Be(2);
        }
Exemplo n.º 7
0
        public async Task AllClients_WhenDBNotEmpty_ReturnNonEmptyResult()
        {
            _client = new IntegrationWebApplicationFactory <Startup>().WithWebHostBuilder(builder =>
            {
                builder.ConfigureTestServices(services =>
                {
                    var sp            = services.BuildServiceProvider();
                    _clientRepository = sp.GetRequiredService <IClientRepository>();
                    _dbContext        = sp.GetRequiredService <TaskterDbContext>();
                });
            }).CreateClient();

            _dbContext.Clients.Add(new Client("Test1"));
            _dbContext.SaveChanges();

            var result = await _clientRepository.GetAllClients();

            result.Should().NotBeNullOrEmpty();
        }
Exemplo n.º 8
0
        public async Task AddProject_AddOneProject_AddGivenProjectToDB()
        {
            _client = new IntegrationWebApplicationFactory <Startup>().WithWebHostBuilder(builder =>
            {
                builder.ConfigureTestServices(services =>
                {
                    var sp             = services.BuildServiceProvider();
                    _dbContext         = sp.GetRequiredService <TaskterDbContext>();
                    _projectRepository = sp.GetRequiredService <IProjectRepository>();
                });
            }).CreateClient();

            var seed = new Project("Test1", 1);

            var id = await _projectRepository.AddProject(seed);

            _dbContext.SaveChanges();

            _dbContext.Projects.Find(id).Should().NotBeNull();
        }
Exemplo n.º 9
0
        public async Task AddClients_AddOneClient_AddOneClientToDBAndReturnOneRecorddMore()
        {
            _client = new IntegrationWebApplicationFactory <Startup>().WithWebHostBuilder(builder =>
            {
                builder.ConfigureTestServices(services =>
                {
                    var sp            = services.BuildServiceProvider();
                    _dbContext        = sp.GetRequiredService <TaskterDbContext>();
                    _clientRepository = sp.GetRequiredService <IClientRepository>();
                });
            }
                                                                                          ).CreateClient();

            var CurrentClientList = await _clientRepository.GetAllClients() as ICollection;

            var CurrentClientListLength = CurrentClientList.Count;

            _dbContext.Clients.Add(new Client("TestClient"));
            _dbContext.SaveChanges();
            var UpdatedClientList = await _clientRepository.GetAllClients() as ICollection;

            UpdatedClientList.Should().HaveCountGreaterThan(CurrentClientListLength);
        }
Exemplo n.º 10
0
 public ProjectRepository(TaskterDbContext context, ICurrentUserContext currentUserContext)
 {
     _context            = context;
     _currentUserContext = currentUserContext;
 }
Exemplo n.º 11
0
        public async Task GetProjectTaskEntriesByDate_AddedTwoEntries_ReturnsAListOfTwoAddedEntries()
        {
            _client = new IntegrationWebApplicationFactory <Startup>().WithWebHostBuilder(builder =>
            {
                builder.ConfigureTestServices(services =>
                {
                    var serviceDesc = services.FirstOrDefault(desc => desc.ServiceType == typeof(ICurrentUserContext));
                    services.Remove(serviceDesc);
                    _currentUserContext = new CurrentUserContext()
                    {
                        UserId = 3
                    };
                    services.AddTransient(x => _currentUserContext);
                    var sp     = services.BuildServiceProvider();
                    _dbContext = sp.GetRequiredService <TaskterDbContext>();
                });
            }).CreateClient();

            _dbContext.Users.Add(new User("test1", "test 1", "test lastName", "admin", "http://google.com")
            {
                Id = _currentUserContext.UserId
            });
            var clientSeed = new Client("testClient")
            {
                Id = 20
            };

            _dbContext.Clients.Add(clientSeed);
            var seedProjectsList = new List <Project>()
            {
                new Project("test project 1", 20, null)
                {
                    Id = 10, Client = clientSeed
                },
                new Project("test project 2", 20, null)
                {
                    Id = 11, Client = clientSeed
                }
            };

            _dbContext.AddRange(seedProjectsList);
            var seedProjectsTaskList = new List <ProjectTask>()
            {
                new ProjectTask("testTask1", 10, false)
                {
                    Id = 20, Project = seedProjectsList[0]
                },
                new ProjectTask("testTask2", 10, false)
                {
                    Id = 21, Project = seedProjectsList[1]
                }
            };
            var seedProjectsTaskEntryList = new List <ProjectTaskEntry>()
            {
                new ProjectTaskEntry(3, 20, 30, DateTime.Now, "Notee")
                {
                    Id = 10, ProjectTask = seedProjectsTaskList[0]
                },
                new ProjectTaskEntry(3, 21, 50, DateTime.Now, "Notee")
                {
                    Id = 11, ProjectTask = seedProjectsTaskList[1]
                }
            };

            _dbContext.ProjectTaskEntries.AddRange(seedProjectsTaskEntryList);
            _dbContext.SaveChanges();

            var result = await _client.GetProjectTaskEntriesByDate(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);

            var seedsDto = seedProjectsTaskEntryList.ToDTOList();

            result.Should().BeEquivalentTo(seedsDto);
        }
Exemplo n.º 12
0
        public async Task UpdateEntry_AddedOneEntryChangedValuesOfEntry_ReturnsNoContentAndUpdatedEntry()
        {
            _client = new IntegrationWebApplicationFactory <Startup>().WithWebHostBuilder(builder =>
            {
                builder.ConfigureTestServices(services =>
                {
                    var serviceDesc = services.FirstOrDefault(desc => desc.ServiceType == typeof(ICurrentUserContext));
                    services.Remove(serviceDesc);
                    _currentUserContext = new CurrentUserContext()
                    {
                        UserId = 3
                    };
                    services.AddTransient <ICurrentUserContext>(x => _currentUserContext);
                    var sp     = services.BuildServiceProvider();
                    _dbContext = sp.GetRequiredService <TaskterDbContext>();
                });
            }).CreateClient();

            _dbContext.Users.Add(new User("test1", "test 1", "test lastName", "admin", "http://google.com")
            {
                Id = _currentUserContext.UserId
            });
            var clientSeed = new Client("testClient")
            {
                Id = 20
            };

            _dbContext.Clients.Add(clientSeed);
            var seedProjectsList = new List <Project>()
            {
                new Project("test project 1", 20, null)
                {
                    Id = 10, Client = clientSeed
                },
                new Project("test project 2", 20, null)
                {
                    Id = 11, Client = clientSeed
                }
            };

            _dbContext.AddRange(seedProjectsList);
            var seedProjectsTaskList = new List <ProjectTask>()
            {
                new ProjectTask("testTask1", 10, false)
                {
                    Id = 20, Project = seedProjectsList[0]
                },
                new ProjectTask("testTask2", 10, false)
                {
                    Id = 21, Project = seedProjectsList[1]
                }
            };

            var taskEntry = new ProjectTaskEntry(3, 20, 30, DateTime.Now, "Notee")
            {
                Id = 10, ProjectTask = seedProjectsTaskList[0]
            };

            _dbContext.ProjectTaskEntries.Add(taskEntry);
            _dbContext.SaveChanges();

            taskEntry.DurationInMin = 100;
            var result = await _client.UpdateTaskEntry(taskEntry.ToUpdateDTO());

            var updatedTaskEntry = await _client.GetProjectTaskEntriesByIdAsync(10);

            updatedTaskEntry.durationInMin.Should().Be(100);
            result.StatusCode.Should().BeEquivalentTo(System.Net.HttpStatusCode.NoContent);
        }
Exemplo n.º 13
0
        public async Task GetProjectsForCurrentUser_AssignedTwoProjects_ReturnsAListOfTwoAssignedProjects()
        {
            _client = new IntegrationWebApplicationFactory <Startup>().WithWebHostBuilder(builder =>
            {
                builder.ConfigureTestServices(services =>
                {
                    var serviceDesc = services.FirstOrDefault(desc => desc.ServiceType == typeof(ICurrentUserContext));
                    services.Remove(serviceDesc);
                    _currentUserContext = new CurrentUserContext()
                    {
                        UserId = 3
                    };
                    services.AddTransient <ICurrentUserContext>(x => _currentUserContext);
                    var sp     = services.BuildServiceProvider();
                    _dbContext = sp.GetRequiredService <TaskterDbContext>();
                });
            }).CreateClient();

            _dbContext.Users.Add(new User("test1", "test 1", "test lastName", "admin", "http://google.com")
            {
                Id = _currentUserContext.UserId
            });
            var clientSeed = new Client("testClient")
            {
                Id = 20
            };

            _dbContext.Clients.Add(clientSeed);
            var seedProjectsList = new List <Project>()
            {
                new Project("test project 1", 20, null)
                {
                    Id = 10, Client = clientSeed
                },
                new Project("test project 2", 20, null)
                {
                    Id = 11, Client = clientSeed
                }
            };

            var seedProjectsTaskList = new List <ProjectTask>()
            {
                new ProjectTask("testTask1", 10, false)
                {
                    Id = 20
                },
                new ProjectTask("testTask2", 10, false)
                {
                    Id = 21
                },
                new ProjectTask("testTask1", 11, false)
                {
                    Id = 22
                },
                new ProjectTask("testTask2", 11, false)
                {
                    Id = 23
                }
            };

            _dbContext.Projects.AddRange(seedProjectsList);
            _dbContext.ProjectTasks.AddRange(seedProjectsTaskList);
            _dbContext.UsersProjects.Add(new UserProject(3, 10));
            _dbContext.UsersProjects.Add(new UserProject(3, 11));
            _dbContext.SaveChanges();

            var result = await _client.GetProjectsForCurrentUser();

            var seedsDto = seedProjectsList.ToDTOList();

            result.Should().BeEquivalentTo(seedsDto);
        }
Exemplo n.º 14
0
 public ClientRepository(TaskterDbContext context)
 {
     _context = context;
 }
Exemplo n.º 15
0
 public UserRepository(TaskterDbContext context)
 {
     _context = context;
 }
Exemplo n.º 16
0
 public ProjectTaskRepository(TaskterDbContext context)
 {
     _context = context;
 }
Exemplo n.º 17
0
 public ProjectTaskEntryRepository(TaskterDbContext context, ICurrentUserContext userContext)
 {
     _context     = context;
     _userContext = userContext;
 }