Beispiel #1
0
        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);
        }
Beispiel #2
0
        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());
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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());
        }
Beispiel #5
0
        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());
        }
Beispiel #6
0
        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());
        }
Beispiel #7
0
        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());
        }
Beispiel #8
0
        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);
        }
Beispiel #9
0
        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);
        }
Beispiel #10
0
        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);
        }
Beispiel #11
0
        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());
        }
Beispiel #12
0
        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);
        }
Beispiel #13
0
        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());
        }
Beispiel #14
0
        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);
        }
Beispiel #15
0
        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);
        }
Beispiel #16
0
        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());
        }
Beispiel #17
0
        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());
        }
Beispiel #18
0
        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);
        }
Beispiel #19
0
        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);
        }
Beispiel #20
0
        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);
        }
Beispiel #21
0
        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);
        }
Beispiel #22
0
        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);
        }
Beispiel #23
0
        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);
        }
Beispiel #24
0
        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());
        }
Beispiel #25
0
        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());
        }