public async Task GetProjectTaskEntriesByDate_AddedTimeEntryForGivenDate_ShouldAddOnlyOneEntry() { this._context.Users.Add(new User("UserTest", "User2", "User2", "Admin", "jkjkjk") { Id = _userContext.UserId }); this._context.Clients.Add(new Client("testclient1") { Id = 1 }); this._context.Projects.Add(new Project("testProject1", 1, "examplecode") { Id = 1 }); this._context.ProjectTasks.Add(new ProjectTask("testTask1", 1, true) { Id = 1 }); _context.SaveChanges(); var firstResult = await _repository.GetProjectTaskEntriesForCurrentUserByDate(2019, 2, 10); int numOfEnries = firstResult.ToList().Count; var newEntry = new ProjectTaskEntry(_userContext.UserId, 1, 50, new DateTime(2019, 2, 10), "Nasa nota") { Id = 50 }; await _repository.AddTimeEntry(newEntry); var result = await _repository.GetProjectTaskEntriesForCurrentUserByDate(2019, 2, 10); result.ToList().Count.Should().Be(numOfEnries + 1); }
public async Task GetProjectTaskEntriesByDate_AddedTimeEntryForGivenDate_ReturnNonEmptyResult() { this._context.Users.Add(new User("UserTest", "User2", "User2", "Admin", "jkjkjk") { Id = _userContext.UserId }); this._context.Clients.Add(new Client("testclient1") { Id = 1 }); this._context.Projects.Add(new Project("testProject1", 1, "examplecode") { Id = 1 }); this._context.ProjectTasks.Add(new ProjectTask("testTask1", 1, true) { Id = 1 }); _context.SaveChanges(); var newEntry = new ProjectTaskEntry(_userContext.UserId, 1, 50, new DateTime(2019, 2, 10), "Nasa nota") { Id = 50 }; await _repository.AddTimeEntry(newEntry); var result = await _repository.GetProjectTaskEntriesForCurrentUserByDate(2019, 2, 10); result.Should().NotBeEmpty(); }
public async Task UpdateTaskEntry_AddedTaskEntryAndChangedValues_ReturnsTaskEntryWithUpdatedValues() { // Arrange this._context.Users.Add(new User("UserTest", "User2", "User2", "Admin", "jkjkjk") { Id = _userContext.UserId }); this._context.Clients.Add(new Client("testclient1") { Id = 1 }); this._context.Projects.Add(new Project("testProject1", 1, "examplecode") { Id = 1 }); this._context.ProjectTasks.Add(new ProjectTask("testTask1", 1, true) { Id = 1 }); var entry = new ProjectTaskEntry(_userContext.UserId, 1, 50, new DateTime(2019, 8, 3), "Note") { Id = 55 }; _context.ProjectTaskEntries.Add(entry); _context.SaveChanges(); entry.DurationInMin = 100; // Act _repository.UpdateTaskEntry(entry); var updatedEntry = await _repository.GetProjectTaskEntryByIdAsync(55); // Assert updatedEntry.DurationInMin.Should().Be(100); }
public async Task GetProjectTaskEntryById_ProjectTaskEntryIdIs10_ReturnsProjectTaskEntryWithId10() { this._context.Users.Add(new User("UserTest", "User2", "User2", "Admin", "jkjkjk") { Id = _userContext.UserId }); this._context.Clients.Add(new Client("testclient1") { Id = 1 }); this._context.Projects.Add(new Project("testProject1", 1, "examplecode") { Id = 1 }); this._context.ProjectTasks.Add(new ProjectTask("testTask1", 1, true) { Id = 1 }); _context.SaveChanges(); var entry = new ProjectTaskEntry(_userContext.UserId, 1, 50, new DateTime(2019, 8, 3), "Note") { Id = 10 }; await _repository.AddTimeEntry(entry); var result = await _repository.GetProjectTaskEntryByIdAsync(10); var projectTaskEntryInDb = _context.ProjectTaskEntries.Find(10); result.Should().NotBeNull(); result.Id.Should().Be(10); result.Should().BeEquivalentTo(projectTaskEntryInDb); }
public void Constructor_ZeroOrNegativeProjectTaskId_ThrowArgumentException(int projectTaksId) { ProjectTaskEntry _entry1; Action act = () => _entry1 = new ProjectTaskEntry(1, projectTaksId, 20, DateTime.Now, "Notee"); act.Should().Throw <ArgumentException>().WithMessage("Id field can not be set to negative value or zero!"); }
public void Constructor_NegativeOrZeroUserId_ThrowArgumentException(int userId) { ProjectTaskEntry _entry1; Action act = () => _entry1 = new ProjectTaskEntry(userId, 1, 20, DateTime.Now, "Notee"); act.Should().Throw <ArgumentException>(); }
public void Constructor_OverOneDayDurationInMin_ThrowArgumentException() { ProjectTaskEntry _entry1; Action act = () => _entry1 = new ProjectTaskEntry(1, 1, 2000, DateTime.Now, "Notee"); act.Should().Throw <ArgumentException>(); }
public void Constructor_NegativeOrZeroDurationInMin_ThrowArgumentException(int durationInMin) { ProjectTaskEntry _entry1; Action act = () => _entry1 = new ProjectTaskEntry(1, 1, durationInMin, DateTime.Now, "Notee"); act.Should().Throw <ArgumentException>().WithMessage("Duration can not be <=0!"); }
public async Task <ProjectTaskEntry> AddTimeEntry(ProjectTaskEntry newProjectTaskEntry) { await _context.ProjectTaskEntries.AddAsync(newProjectTaskEntry); await _context.SaveChangesAsync(); return(newProjectTaskEntry); }
public static ProjectTaskEntryUpdateDTO ToUpdateDTO(this ProjectTaskEntry pte) { return(new ProjectTaskEntryUpdateDTO() { Id = pte.Id, ProjectId = pte.ProjectTask.ProjectId, ProjectTaskId = pte.ProjectTaskId, durationInMin = pte.DurationInMin, Note = pte.Note }); }
public static ProjectTaskEntryDTO ToDTO(this ProjectTaskEntry pte) { return(new ProjectTaskEntryDTO() { Id = pte.Id, ProjectName = pte.ProjectTask.Project.Name, ProjectCode = pte.ProjectTask.Project.Code, ProjectTask = pte.ProjectTask.Name, ClientName = pte.ProjectTask.Project.Client.Name, durationInMin = pte.DurationInMin, Note = pte.Note }); }
public static async Task PostNewTimeEntry(this HttpClient client, ProjectTaskEntry model) { var insertModel = new ProjectTaskEntryInsertDTO() { UserId = model.UserId, ProjectTaskId = model.ProjectTaskId, DurationInMin = model.DurationInMin, Day = model.Date.Day, Month = model.Date.Month, Year = model.Date.Year, Note = model.Note }; var response = await client.PostAsJsonAsync("api/entries", insertModel); response.EnsureSuccessStatusCode(); }
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 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 static ProjectTaskEntry ToEntity(this ProjectTaskEntryInsertDTO pte) { var newEntry = new ProjectTaskEntry(pte.UserId, pte.ProjectTaskId, pte.DurationInMin, new DateTime(pte.Year, pte.Month, pte.Day), pte.Note); return(newEntry); }
public void UpdateTaskEntry(ProjectTaskEntry projectTaskEntry) { _context.SaveChanges(); }