예제 #1
0
        public void GetEmployeeHoursForAnEmployee_ShouldReturnEmptyListWhenDBIsEmpty()
        {
            var dao  = new PostgresDataAccessObjectService(dbContext);
            var coll = dao.GetEmployeeHoursForAnEmployee(0);

            Assert.Empty(coll);
        }
예제 #2
0
        public async Task AddEmployeeHours_Fails_WhenAddedAlreadyWithTheSameTimePeriodEndEmployeeId()
        {
            await dbContext.Employees.AddAsync(new Employee { Name = "Ola AAA", Email = "*****@*****.**", EmployeeId = 4 });

            await dbContext.EmployeeHoursCollection.AddAsync(
                new EmployeeHours { EmployeeHoursId = 100, Value = 100f, TimePeriod = "02.01.2019_08.01.2019", EmployeeId = 4 });

            await dbContext.SaveChangesAsync();

            var eh = new EmployeeHours {
                EmployeeHoursId = 101, Value = 100f, TimePeriod = "02.01.2019_08.01.2019", EmployeeId = 4
            };

            var  dao      = new PostgresDataAccessObjectService(dbContext);
            bool exThrown = false;

            try {
                exThrown = true;
                dao.AddEmployeeHours(eh);
            } catch (Exception e) {
                Assert.Equal(typeof(ArgumentException), e.GetType());
                Assert.Equal("EmployeeHours with EmployeeId: 4 and TimePeriod 02.01.2019_08.01.2019 already exists", e.Message);
            }
            var coll = dao.GetEmployeeHoursForAnEmployee(4);

            Assert.Single(coll);
            Assert.True(exThrown);
        }
예제 #3
0
        public async Task AddEmployeeHours_WhenNotEmptyTable()
        {
            await dbContext.Employees.AddAsync(new Employee { Name = "Ola AAA", Email = "*****@*****.**", EmployeeId = 4 });

            await dbContext.EmployeeHoursCollection.AddAsync(
                new EmployeeHours { EmployeeHoursId = 100, Value = 100f, TimePeriod = "02.01.2019_08.01.2019", EmployeeId = 4 });

            await dbContext.SaveChangesAsync();

            var eh = new EmployeeHours();

            eh.EmployeeId = 4;
            eh.Value      = 90;
            eh.TimePeriod = "02.03.2019_08.03.2019";

            var dao = new PostgresDataAccessObjectService(dbContext);

            dao.AddEmployeeHours(eh);

            var coll = dao.GetEmployeeHoursForAnEmployee(4);

            Assert.Equal(2, coll.Count);
            Assert.Equal(100f, coll[0].Value);
            Assert.Equal(90f, coll[1].Value);
            Assert.Equal(100, coll[0].EmployeeHoursId);
            Assert.Equal(101, coll[1].EmployeeHoursId);
        }
예제 #4
0
        public async Task GetEmployeeHoursForAnEmployee_ShouldReturnAllEmployeesHoursWhenSomeInDB()
        {
            await dbContext.EmployeeHoursCollection.AddAsync(
                new EmployeeHours { EmployeeHoursId = 100, Value = 100f, TimePeriod = "02.01.2019_08.01.2019", EmployeeId = 0 });

            await dbContext.SaveChangesAsync();

            var dao  = new PostgresDataAccessObjectService(dbContext);
            var coll = dao.GetEmployeeHoursForAnEmployee(0);

            Assert.Single(coll);
        }
예제 #5
0
        public async Task DeleteEmployeeHours_WhenNotExists()
        {
            await dbContext.EmployeeHoursCollection.AddAsync(
                new EmployeeHours { EmployeeHoursId = 101, Value = 100f, TimePeriod = "02.01.2019_08.01.2019", EmployeeId = 4 });

            await dbContext.EmployeeHoursCollection.AddAsync(
                new EmployeeHours { EmployeeHoursId = 102, Value = 100f, TimePeriod = "02.01.2019_08.01.2019", EmployeeId = 4 });

            await dbContext.SaveChangesAsync();

            var dao = new PostgresDataAccessObjectService(dbContext);

            var coll = dao.GetEmployeeHoursForAnEmployee(4);

            Assert.Equal(2, coll.Count);

            dao.DeleteEmployeeHours(100);

            coll = dao.GetEmployeeHoursForAnEmployee(4);
            Assert.Equal(2, coll.Count);
        }
예제 #6
0
        public async Task AddEmployeeHours_WhenEmptyTable()
        {
            await dbContext.Employees.AddAsync(new Employee { Name = "Ola AAA", Email = "*****@*****.**", EmployeeId = 4 });

            await dbContext.SaveChangesAsync();

            var eh = new EmployeeHours();

            eh.EmployeeId = 4;
            eh.Value      = 90;
            eh.TimePeriod = "02.03.2019_08.03.2019";

            var dao = new PostgresDataAccessObjectService(dbContext);

            dao.AddEmployeeHours(eh);

            var coll = dao.GetEmployeeHoursForAnEmployee(4);

            Assert.Single(coll);
            Assert.Equal(90f, coll[0].Value);
            // apparently we must start from 1
            Assert.Equal(1, coll[0].EmployeeHoursId);
        }
예제 #7
0
        public async Task AddEmployeeHours_WhenNotEmptyTable_Many()
        {
            await dbContext.Employees.AddAsync(new Employee { Name = "Ola AAA", Email = "*****@*****.**", EmployeeId = 4 });

            await dbContext.Employees.AddAsync(new Employee { Name = "Ola 2", Email = "*****@*****.**", EmployeeId = 5 });

            await dbContext.EmployeeHoursCollection.AddAsync(
                new EmployeeHours { EmployeeHoursId = 100, Value = 100f, TimePeriod = "02.01.2019_08.01.2019", EmployeeId = 4 });

            await dbContext.EmployeeHoursCollection.AddAsync(
                new EmployeeHours { EmployeeHoursId = 101, Value = 100f, TimePeriod = "02.01.2019_08.01.2019", EmployeeId = 4 });

            await dbContext.EmployeeHoursCollection.AddAsync(
                new EmployeeHours { EmployeeHoursId = 102, Value = 100f, TimePeriod = "02.01.2019_08.01.2019", EmployeeId = 5 });

            await dbContext.SaveChangesAsync();

            var dao = new PostgresDataAccessObjectService(dbContext);

            // the EmployeeHoursId is generated anyways
            dao.AddEmployeeHours(
                new EmployeeHours {
                EmployeeHoursId = 100, Value = 100f, TimePeriod = "01.01.2019_02.01.2019", EmployeeId = 4
            });
            dao.AddEmployeeHours(
                new EmployeeHours {
                EmployeeHoursId = 100, Value = 100f, TimePeriod = "09.01.2019_13.01.2019", EmployeeId = 4
            });
            dao.AddEmployeeHours(
                new EmployeeHours {
                EmployeeHoursId = 100, Value = 100f, TimePeriod = "01.01.2019_02.01.2019", EmployeeId = 5
            });

            var coll = dao.GetEmployeeHoursForAnEmployee(4);

            Assert.Equal(4, coll.Count);
        }