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); }
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); }
public void SetUp() { _context = new TaskterDbContext(new DbContextOptionsBuilder <TaskterDbContext>() .UseInMemoryDatabase("InMemoryTaskterDB") .Options); _context.Database.EnsureCreated(); _repository = new UserRepository(_context); }
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); }
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); }
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); }
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(); }
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(); }
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); }
public ProjectRepository(TaskterDbContext context, ICurrentUserContext currentUserContext) { _context = context; _currentUserContext = currentUserContext; }
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); }
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); }
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); }
public ClientRepository(TaskterDbContext context) { _context = context; }
public UserRepository(TaskterDbContext context) { _context = context; }
public ProjectTaskRepository(TaskterDbContext context) { _context = context; }
public ProjectTaskEntryRepository(TaskterDbContext context, ICurrentUserContext userContext) { _context = context; _userContext = userContext; }