public TimeEntryTests() { timeEntryController = new TimeEntryController(database, new AuthHelper()); projectController = new ProjectController(database, new AuthHelper()); TestAuthHelpers.LogInUser(database, configuration, new List <ControllerBase>() { timeEntryController, projectController }).GetAwaiter().GetResult(); }
public async Task StartAndStopTimerTest() { await TestAuthHelpers.LogInUser(database, configuration, controllers); GenericResponseDTO <int> projectCreationResponse = await projectController.CreateProject(new ProjectCreateDTO { ProjectName = "A Cool Project", ClientName = "Misha", Tags = new List <string>(), Description = "A very cool Project" }); Project project = (await database.Projects .AsQueryable() .FirstOrDefaultAsync(p => p.Id == projectCreationResponse.Data)); project.Students .Add(project.Teacher); await database.SaveChangesAsync(); int projectId = projectCreationResponse.Data; GenericResponseDTO <TimerDTO> startTimerResponse = await timerController.StartTimer(new TimerCreateDTO { Notes = "Working on stuff", ProjectId = projectId }); Assert.IsTrue(startTimerResponse.Success); Assert.AreEqual(startTimerResponse.Data.Notes, "Working on stuff"); Assert.AreEqual(startTimerResponse.Data.ProjectId, projectId); GenericResponseDTO <List <TimerDTO> > getTimersResponse = await timerController.GetAllTimers(); List <TimerDTO> timers = getTimersResponse.Data; Assert.AreEqual(timers.Count, 1); Assert.AreEqual(timers[0].ProjectId, projectId); Assert.IsTrue(timers[0].Notes.SequenceEqual("Working on stuff")); Assert.AreEqual(timers[0].StartTime, startTimerResponse.Data.StartTime); GenericResponseDTO <TimeEntryDTO> stopTimerResponse = await timerController.StopTimer(timers[0].Id); DateTime responseGottenTime = DateTime.UtcNow; Assert.IsTrue(stopTimerResponse.Success); Assert.IsTrue(stopTimerResponse.Data.ProjectId == projectId); Assert.AreEqual(stopTimerResponse.Data.Notes, "Working on stuff"); Assert.AreEqual((responseGottenTime - stopTimerResponse.Data.Day).Minutes, 0); getTimersResponse = await timerController.GetAllTimers(); Assert.AreEqual(getTimersResponse.Data.Count, 0); }
public async Task AddUserToProjectOnLogin() { await TestAuthHelpers.LogInUser(database, configuration, projectController); ProjectCreateDTO projectInfo = new ProjectCreateDTO { ProjectName = "Soup Delivery Website", ClientName = "Soup Delivery LLC" }; GenericResponseDTO <int> createProjectResponse = await projectController.CreateProject(projectInfo); Assert.IsTrue(createProjectResponse.Success); int projectID = createProjectResponse.Data; Project project = await database.Projects .AsNoTracking() .FirstOrDefaultAsync(p => p.Id == projectID); string projectInviteCode = project.InviteCode; UserDTO registrationInfo = new UserDTO { Email = "*****@*****.**", Password = "******", FirstName = "Suzuya", LastName = "Z." }; GenericResponseDTO <int> registerResponse = await authController.Register(registrationInfo); Assert.IsTrue(registerResponse.Success); UserDTO loginInfo = new UserDTO { Email = "*****@*****.**", Password = "******", InviteCode = projectInviteCode }; await authController.Login(loginInfo); User user = await database.Users .Include(x => x.Projects) .FirstOrDefaultAsync(u => u.Id == registerResponse.Data); Assert.IsTrue(user.Projects.Count == 1); Assert.IsTrue(user.Projects[0].Id == project.Id); }
public async Task GetTimerWithinDateRangeTest() { await TestAuthHelpers.LogInUser(database, configuration, controllers); GenericResponseDTO <int> projectCreationResponse = await projectController.CreateProject(new ProjectCreateDTO { ProjectName = "One MORE Cool Project", ClientName = "Benjamin", Tags = new List <string>(), Description = "Not a very cool project" }); Project project = (await database.Projects .AsQueryable() .FirstOrDefaultAsync(p => p.Id == projectCreationResponse.Data)); project.Students .Add(project.Teacher); await database.SaveChangesAsync(); int projectId = projectCreationResponse.Data; GenericResponseDTO <TimerDTO> startTimerResponse = await timerController.StartTimer(new TimerCreateDTO { Notes = "Didn't really do anything", ProjectId = projectId }); Assert.IsTrue(startTimerResponse.Success); GenericResponseDTO <List <TimerDTO> > getTimerByIdResponse = await timerController.GetTimersWithinDateRange(DateTime.UtcNow, DateTime.UtcNow); Assert.IsTrue(getTimerByIdResponse.Success); Assert.AreEqual(getTimerByIdResponse.Data[0].Id, startTimerResponse.Data.Id); Assert.AreEqual(getTimerByIdResponse.Data[0].Notes, "Didn't really do anything"); Assert.AreEqual(getTimerByIdResponse.Data[0].ProjectId, projectId); Assert.AreEqual(getTimerByIdResponse.Data[0].StartTime, startTimerResponse.Data.StartTime); DateTime tomorrow = DateTime.UtcNow + new TimeSpan(24, 0, 0); getTimerByIdResponse = await timerController.GetTimersWithinDateRange(tomorrow, tomorrow); Assert.AreEqual(getTimerByIdResponse.Data.Count, 0); }
public async Task GetTimerByIdTest() { await TestAuthHelpers.LogInUser(database, configuration, controllers); GenericResponseDTO <int> projectCreationResponse = await projectController.CreateProject(new ProjectCreateDTO { ProjectName = "Another Cool Project", ClientName = "Tristam", Tags = new List <string>(), Description = "An even COOLER project :)" }); Project project = (await database.Projects .AsQueryable() .FirstOrDefaultAsync(p => p.Id == projectCreationResponse.Data)); project.Students .Add(project.Teacher); await database.SaveChangesAsync(); int projectId = projectCreationResponse.Data; GenericResponseDTO <TimerDTO> startTimerResponse = await timerController.StartTimer(new TimerCreateDTO { Notes = "Working on things", ProjectId = projectId }); Assert.IsTrue(startTimerResponse.Success); GenericResponseDTO <TimerDTO> getTimerByIdResponse = await timerController.GetTimerById(startTimerResponse.Data.Id); Assert.IsTrue(getTimerByIdResponse.Success); Assert.AreEqual(getTimerByIdResponse.Data.Id, startTimerResponse.Data.Id); Assert.AreEqual(getTimerByIdResponse.Data.Notes, "Working on things"); Assert.AreEqual(getTimerByIdResponse.Data.ProjectId, projectId); Assert.AreEqual(getTimerByIdResponse.Data.StartTime, startTimerResponse.Data.StartTime); }
private async Task <int> setupTest() { // Create a project and time entry var mainProject = await projectController.CreateProject(new ProjectCreateDTO() { ClientName = "Spongebob Squarepants", Description = "Eat spongebob's pineapple house", ProjectName = "Eat Pineapple", Tags = new List <string>() { "Food" } }); var timeEntries = new List <TimeEntryDTO>() { new TimeEntryDTO() { CreatedTime = DateTime.Now, Day = new DateTime(1999, 1, 10), Length = 5, Notes = "Consumed leafs", ProjectId = mainProject.Data }, new TimeEntryDTO() { CreatedTime = DateTime.Now, Day = new DateTime(1999, 1, 10), Length = 2, Notes = "Consumed Door", ProjectId = mainProject.Data }, new TimeEntryDTO() { CreatedTime = DateTime.Now, Day = new DateTime(1999, 1, 10), Length = 3, Notes = "Consumed back of pineapple", ProjectId = mainProject.Data } }; foreach (var entry in timeEntries) { await timeEntryController.CreateTime(entry); } // Get project invite code var projectDetails = await projectController.GetProjectById(mainProject.Data); // Login as 2nd user TestAuthHelpers.LogInUser(database, configuration, new List <ControllerBase>() { timeEntryController, projectController, reportController }, projectDetails.Data.InviteCode).GetAwaiter().GetResult(); var timeEntries2 = new List <TimeEntryDTO>() { new TimeEntryDTO() { CreatedTime = DateTime.Now, Day = new DateTime(2000, 1, 10), Length = 1, Notes = "Consumed left window", ProjectId = mainProject.Data }, new TimeEntryDTO() { CreatedTime = DateTime.Now, Day = new DateTime(2000, 1, 10), Length = 1, Notes = "Consumed right window", ProjectId = mainProject.Data } }; foreach (var entry in timeEntries2) { await timeEntryController.CreateTime(entry); } return(mainProject.Data); }
public ProjectTests() { projectController = new ProjectController(database, new AuthHelper()); TestAuthHelpers.LogInUser(database, configuration, projectController).GetAwaiter().GetResult(); }