public void FavoriteUpdater_UserCreatesNewFavoriteWithCompensationRate_NewFavoriteIsCreatedCompensationRateIsUnchanged() { var context = new AlvTimeDbContextBuilder() .WithTasks() .WithProjects() .WithCustomers() .CreateDbContext(); var previousNumberOfFavorites = context.TaskFavorites .Where(tf => tf.UserId == 1) .ToList().Count(); var storage = new TaskStorage(context); var updater = new FavoriteUpdater(storage); var previousCompensationRate = context.Task.FirstOrDefault(x => x.Id == 2).CompensationRate; updater.UpdateFavoriteTasks(new UpdateTasksDto { Id = 2, Favorite = true, }, 1); var task = context.Task.FirstOrDefault(x => x.Id == 2); Assert.Equal(previousCompensationRate, task.CompensationRate); }
public void FavoriteUpdater_UserCreatesNewFavorite_NewFavoriteIsCreated() { var context = new AlvTimeDbContextBuilder() .WithTasks() .WithProjects() .WithCustomers() .CreateDbContext(); var previousNumberOfFavorites = context.TaskFavorites .Where(tf => tf.UserId == 1) .ToList().Count(); var storage = new TaskStorage(context); var updater = new FavoriteUpdater(storage); updater.UpdateFavoriteTasks(new UpdateTasksDto { Id = 2, Favorite = true }, 1); var userFavorites = context.TaskFavorites .Where(tf => tf.UserId == 1) .ToList(); Assert.Equal(previousNumberOfFavorites + 1, userFavorites.Count()); }
public void UpdateTimeEntry_ExistingTimeEntry_TimeEntryUpdated() { var context = new AlvTimeDbContextBuilder() .WithTimeEntries() .WithTasks() .WithUsers() .CreateDbContext(); var storage = new TimeEntryStorage(context); storage.UpdateTimeEntry(new CreateTimeEntryDto { Date = new DateTime(2020, 05, 02), TaskId = 1, Value = 10 }, 1); var timeEntry = storage.GetTimeEntry(new TimeEntryQuerySearch { UserId = 1, FromDateInclusive = new DateTime(2020, 05, 02), ToDateInclusive = new DateTime(2020, 05, 02), TaskId = 1 }); Assert.True(timeEntry.Value == 10); }
public void GetUsers_NoCriterias_AllUsers() { var context = new AlvTimeDbContextBuilder().CreateDbContext(); var storage = new UserStorage(context); var users = storage.GetUser(new UserQuerySearch()).ToList(); Assert.Equal(context.User.Count(), users.Count()); }
public void GetHourRates_NoCriterias_AllHourRates() { var context = new AlvTimeDbContextBuilder().CreateDbContext(); var storage = new HourRateStorage(context); var hourRates = storage.GetHourRates(new HourRateQuerySearch()); Assert.Equal(context.HourRate.Count(), hourRates.Count()); }
public void GetActiveAccessTokens_UserSpecified_ActiveTokensForUser() { var context = new AlvTimeDbContextBuilder() .WithUsers() .CreateDbContext(); var storage = new AccessTokenStorage(context); var tokens = storage.GetActiveTokens(1); Assert.Equal(context.AccessTokens.Where(x => x.UserId == 1).ToList().Count(), tokens.Count()); }
public void GetTasks_NoCriterias_AllTasks() { var context = new AlvTimeDbContextBuilder() .WithTasks() .WithProjects() .WithCustomers() .CreateDbContext(); var storage = new TaskStorage(context); var tasks = storage.GetUsersTasks(new TaskQuerySearch(), 1); Assert.Equal(context.Task.Count(), tasks.Count()); }
public void GetUsers_EmailIsGiven_AllUsersWithSpecifiedEmail() { var context = new AlvTimeDbContextBuilder() .WithUsers() .CreateDbContext(); var storage = new UserStorage(context); var users = storage.GetUser(new UserQuerySearch { Email = "*****@*****.**", }).ToList(); Assert.Equal("*****@*****.**", users.Single().Email); }
public void GetUsers_NameIsGiven_AllUsersWithSpecifiedName() { var context = new AlvTimeDbContextBuilder() .WithUsers() .CreateDbContext(); var storage = new UserStorage(context); var users = storage.GetUser(new UserQuerySearch { Name = "Someone" }).ToList(); Assert.Equal("Someone", users.Single().Name); }
public void DeleteToken_TokenIdSpecified_TokenWithIdDeleted() { var context = new AlvTimeDbContextBuilder() .WithPersonalAccessTokens() .WithUsers() .CreateDbContext(); var storage = new AccessTokenStorage(context); storage.DeleteActiveTokens(1, 1); var tokens = storage.GetActiveTokens(1); Assert.Empty(tokens); }
public void CreateLifetimeToken_FriendlyNameSpecified_TokenWithFriendlyNameCreated() { var context = new AlvTimeDbContextBuilder() .WithPersonalAccessTokens() .WithUsers() .CreateDbContext(); var storage = new AccessTokenStorage(context); storage.CreateLifetimeToken("new token", 1); var tokens = storage.GetActiveTokens(1); Assert.Equal(context.AccessTokens.Where(x => x.UserId == 1).ToList().Count(), tokens.Count()); }
public void GetTasks_ProjectIsGiven_AllTasksWithSpecifiedProject() { var context = new AlvTimeDbContextBuilder() .WithTasks() .WithProjects() .WithCustomers() .CreateDbContext(); var storage = new TaskStorage(context); var tasks = storage.GetUsersTasks(new TaskQuerySearch { Project = 1 }, 1); Assert.True(1 == tasks.Single().Project.Id); }
public void GetHourRates_RateSpecified_AllHourRatesWithSpecifiedRate() { var context = new AlvTimeDbContextBuilder().CreateDbContext(); var storage = new HourRateStorage(context); var hourRates = storage.GetHourRates(new HourRateQuerySearch { Rate = 1000 }); var contextHourRatesWithRate = context.HourRate .Where(hr => hr.Rate == 1000) .ToList(); Assert.Equal(contextHourRatesWithRate.Count(), hourRates.Count()); }
public void UserCreator_UserAlreadyExists_NoUserIsCreated() { var context = new AlvTimeDbContextBuilder() .WithUsers() .CreateDbContext(); var storage = new UserStorage(context); var creator = new UserCreator(storage, new AlvHoursCalculator()); creator.CreateUser(new CreateUserDto { Email = "*****@*****.**", Name = "Someone", StartDate = DateTime.UtcNow }); Assert.True(context.User.Count() == 2); }
public void CreateCustomer_NameSpecified_CustomerWithNameIsCreated() { var context = new AlvTimeDbContextBuilder().CreateDbContext(); var storage = new CustomerStorage(context); var creator = new CustomerCreator(storage); var previousCustomersAmount = context.Customer.ToList().Count(); creator.CreateCustomer(new CustomerDto { Name = "Test" }); var newCustomersAmount = context.Customer.ToList().Count(); Assert.Equal(previousCustomersAmount + 1, newCustomersAmount); }
public void GetTimeEntries_TaskSpecified_AllEntriesWithSpecifiedTask() { var context = new AlvTimeDbContextBuilder().CreateDbContext(); var storage = new TimeEntryStorage(context); var timeEntries = storage.GetTimeEntries(new TimeEntryQuerySearch { UserId = 1, TaskId = 2 }); var contextEntriesWithTask = context.Hours .Where(x => x.TaskId == 2 && x.User == 1) .ToList(); Assert.Equal(contextEntriesWithTask.Count(), timeEntries.Count()); }
public void GetTimeEntries_DatesSpecified_AllEntriesBetweenDates() { var context = new AlvTimeDbContextBuilder().CreateDbContext(); var storage = new TimeEntryStorage(context); var timeEntries = storage.GetTimeEntries(new TimeEntryQuerySearch { UserId = 1, FromDateInclusive = new DateTime(2019, 01, 01), ToDateInclusive = new DateTime(2020, 01, 01) }); var contextCountInPeriod = context.Hours .Where(x => x.Date.Date <= new DateTime(2020, 01, 01) && x.Date.Date >= new DateTime(2019, 01, 01) && x.User == 1) .ToList(); Assert.Equal(contextCountInPeriod.Count(), timeEntries.Count()); }
public void CreateProject_NameSpecified_CustomerWithNameIsCreated() { var context = new AlvTimeDbContextBuilder().CreateDbContext(); var storage = new ProjectStorage(context); var creator = new ProjectCreator(storage); var previousProjectAmount = context.Project.ToList().Count(); creator.CreateProject(new CreateProjectDto { Name = "Test", Customer = 1 }); var newProjectAmount = context.Project.ToList().Count(); Assert.Equal(previousProjectAmount + 1, newProjectAmount); }
public void CreateHourRate_HourRateExists_RateIsUpdated() { var context = new AlvTimeDbContextBuilder().WithCustomers().WithProjects().WithTasks().CreateDbContext(); var storage = new HourRateStorage(context); var creator = new HourRateCreator(storage); creator.CreateHourRate(new CreateHourRateDto { FromDate = new DateTime(2019, 01, 01), Rate = 800, TaskId = 1 }); var hourRate = context.HourRate .Where(hr => hr.FromDate == new DateTime(2019, 01, 01) && hr.TaskId == 1) .FirstOrDefault(); Assert.Equal(800, hourRate.Rate); }
public void CreateHourRate_NewHourRate_HourRateIsCreated() { var context = new AlvTimeDbContextBuilder().WithCustomers().WithProjects().WithTasks().CreateDbContext(); var storage = new HourRateStorage(context); var creator = new HourRateCreator(storage); var previousCountOfHourRates = context.HourRate.Count(); creator.CreateHourRate(new CreateHourRateDto { FromDate = new DateTime(2019, 05, 01), Rate = 500, TaskId = 2 }); var newCountOfHourRates = context.HourRate.Count(); Assert.Equal(previousCountOfHourRates + 1, newCountOfHourRates); }
public void UpdateCustomer_ContactPersonProvided_UpdatesContactPerson() { var context = new AlvTimeDbContextBuilder() .WithCustomers() .CreateDbContext(); var storage = new CustomerStorage(context); var creator = new CustomerCreator(storage); creator.UpdateCustomer(new CustomerDto { Id = 1, InvoiceAddress = "Testveien 1" }); var customer = storage.GetCustomers(new CustomerQuerySearch { Id = 1 }).Single(); Assert.Equal("Testveien 1", customer.InvoiceAddress); }
public void UserCreator_UpdateExistingUser_UserIsUpdated() { var context = new AlvTimeDbContextBuilder() .WithUsers() .CreateDbContext(); var storage = new UserStorage(context); var creator = new UserCreator(storage, new AlvHoursCalculator()); creator.UpdateUser(new CreateUserDto { Id = 1, Email = "*****@*****.**", Name = "SomeoneElse", StartDate = DateTime.UtcNow }); var user = context.User.FirstOrDefault(u => u.Id == 1); Assert.Equal("*****@*****.**", user.Email); Assert.Equal("SomeoneElse", user.Name); }
public void TaskCreator_UpdateBothLockedAndName_LockedAndNameIsUpdated() { var context = new AlvTimeDbContextBuilder() .WithTasks() .WithProjects() .WithCustomers() .CreateDbContext(); var storage = new TaskStorage(context); var creator = new TaskCreator(storage); creator.UpdateTask(new UpdateTasksDto { Id = 1, Locked = true, Name = "MyExampleTask" }); var task = context.Task.FirstOrDefault(x => x.Id == 1); Assert.Equal("MyExampleTask", task.Name); Assert.True(task.Locked == true); }
public void TaskCreator_CreateNewTaskAlreadyExists_NoNewTaskIsCreated() { var context = new AlvTimeDbContextBuilder() .WithTasks() .WithProjects() .WithCustomers() .CreateDbContext(); var storage = new TaskStorage(context); var creator = new TaskCreator(storage); var previousNumberOfTasks = context.Task.Count(); creator.CreateTask(new CreateTaskDto { Name = "ExampleTask", Description = "", Locked = false, Project = 1 }); Assert.Equal(previousNumberOfTasks, context.Task.Count()); }
public void CreateTimeEntry_NewTimeEntry_TimeEntryCreated() { var context = new AlvTimeDbContextBuilder().WithUsers().CreateDbContext(); var storage = new TimeEntryStorage(context); var previousAmountOfEntries = context.Hours.Count(); storage.CreateTimeEntry(new CreateTimeEntryDto { Date = new DateTime(2020, 01, 01), TaskId = 2, Value = 7.5M }, 1); var timeEntries = storage.GetTimeEntries(new TimeEntryQuerySearch { UserId = 1, FromDateInclusive = new DateTime(2010, 01, 01), ToDateInclusive = new DateTime(2030, 01, 01) }); Assert.Equal(previousAmountOfEntries + 1, timeEntries.Count()); }