Beispiel #1
0
        public void UpdateTimeEntry_Success()
        {
            using (var transaction = _db.Connection.BeginTransaction())
            {
                var context   = _db.CreateContext(transaction);
                var tsService = new EFTimeSheetService(context, _mapper, new NullLogger <EFTimeSheetService>());

                int idOfUpdatedEntry = context.TimeEntries.FirstOrDefault().Id;

                var newStartTime  = DateTime.Now;
                var newEndTime    = DateTime.Now + new TimeSpan(3, 0, 0);
                var newMemberId   = context.Members.FirstOrDefault().Id + 1;
                var newPositionId = context.Positions.FirstOrDefault().Id + 1;

                var dto = new TimeEntryReadEditDto
                {
                    Id         = idOfUpdatedEntry,
                    MemberId   = newMemberId,
                    PositionId = newPositionId,
                    StartTime  = newStartTime,
                    EndTime    = newEndTime
                };

                var result = tsService.UpdateEntry(dto).Result;
                Assert.True(result.Successful);
                Assert.True(context.TimeEntries.FirstOrDefault().StartTime == newStartTime);
                Assert.True(context.TimeEntries.FirstOrDefault().EndTime == newEndTime);
                Assert.True(context.TimeEntries.FirstOrDefault().MemberId == newMemberId);
                Assert.True(context.TimeEntries.FirstOrDefault().PositionId == newPositionId);
            }
        }
Beispiel #2
0
        public void PunchClock_ClockIn()
        {
            using (var transaction = _db.Connection.BeginTransaction())
            {
                var context   = _db.CreateContext(transaction);
                var tsService = new EFTimeSheetService(context, _mapper, new NullLogger <EFTimeSheetService>());

                var createDto = new TimeEntryCreateDto
                {
                    MemberId   = context.Members.FirstOrDefault().Id,
                    PositionId = context.Positions.FirstOrDefault().Id,
                    StartTime  = DateTime.Now
                };

                var        existingMemberTimeEntryId  = context.TimeEntries.FirstOrDefault(t => t.MemberId == createDto.MemberId && t.EndTime == null).Id;
                List <int> existingMemberTimeEntryIds = new List <int>();
                existingMemberTimeEntryIds.Add(existingMemberTimeEntryId);
                var deleteMemberEntry = tsService.DeleteEntries(existingMemberTimeEntryIds).Result;

                var result = tsService.PunchClock(createDto).Result;

                Assert.True(result.Successful);
                Assert.True(context.TimeEntries.OrderBy(t => t.Id).LastOrDefault().EndTime == null);
            }
        }
Beispiel #3
0
        public void AddTimeEntry_OverlappingEntry5()
        {
            using (var transaction = _db.Connection.BeginTransaction())
            {
                var context   = _db.CreateContext(transaction);
                var tsService = new EFTimeSheetService(context, _mapper, new NullLogger <EFTimeSheetService>());

                var createDto1 = new TimeEntryCreateDto
                {
                    MemberId   = context.Members.FirstOrDefault().Id,
                    PositionId = context.Positions.FirstOrDefault().Id,
                    StartTime  = DateTime.Now,
                    EndTime    = DateTime.Now + new TimeSpan(4, 0, 0)
                };

                var createDto2 = new TimeEntryCreateDto
                {
                    MemberId   = context.Members.FirstOrDefault().Id,
                    PositionId = context.Positions.FirstOrDefault().Id,
                    StartTime  = DateTime.Now - new TimeSpan(1, 0, 0),
                    EndTime    = DateTime.Now + new TimeSpan(3, 0, 0)
                };

                var        existingMemberTimeEntryId  = context.TimeEntries.FirstOrDefault(t => t.MemberId == createDto2.MemberId && t.EndTime == null).Id;
                List <int> existingMemberTimeEntryIds = new List <int>();
                existingMemberTimeEntryIds.Add(existingMemberTimeEntryId);
                var deleteMemberEntry = tsService.DeleteEntries(existingMemberTimeEntryIds).Result;

                var result = tsService.AddFullEntry(createDto1).Result;
                Assert.True(result.Successful);

                result = tsService.AddFullEntry(createDto2).Result;
                Assert.False(result.Successful);
            }
        }
Beispiel #4
0
        public void AddTimeEntry_Success()
        {
            using (var transaction = _db.Connection.BeginTransaction())
            {
                var context        = _db.CreateContext(transaction);
                int initNumEntries = context.TimeEntries.Where(t => t.EndTime != null).Count();
                var tsService      = new EFTimeSheetService(context, _mapper, new NullLogger <EFTimeSheetService>());

                var createDto = new TimeEntryCreateDto
                {
                    MemberId   = context.Members.FirstOrDefault().Id,
                    PositionId = context.Positions.FirstOrDefault().Id,
                    StartTime  = DateTime.Now.AddDays(1),
                    EndTime    = DateTime.Now.AddDays(1) + new TimeSpan(4, 0, 0)
                };

                var        existingMemberTimeEntryId  = context.TimeEntries.FirstOrDefault(t => t.MemberId == createDto.MemberId && t.EndTime == null).Id;
                List <int> existingMemberTimeEntryIds = new List <int>();
                existingMemberTimeEntryIds.Add(existingMemberTimeEntryId);
                var deleteMemberEntry = tsService.DeleteEntries(existingMemberTimeEntryIds).Result;

                var result = tsService.AddFullEntry(createDto).Result;

                Assert.True(result.Successful);
                Assert.True(result.Data.Count > initNumEntries);
            }
        }
Beispiel #5
0
        public void GetTimeEntries_Success()
        {
            using (var transaction = _db.Connection.BeginTransaction())
            {
                var context   = _db.CreateContext(transaction);
                var tsService = new EFTimeSheetService(context, _mapper, new NullLogger <EFTimeSheetService>());

                var result = tsService.GetArchivedTimeEntries().Result;

                Assert.True(result.Successful);
                Assert.True(result.Data.Count > 0);
            }
        }
Beispiel #6
0
        public void DeleteTimeEntry_Multiple_Success()
        {
            using (var transaction = _db.Connection.BeginTransaction())
            {
                var context        = _db.CreateContext(transaction);
                int initNumEntries = context.TimeEntries.Count();

                var tsService = new EFTimeSheetService(context, _mapper, new NullLogger <EFTimeSheetService>());

                var idsOfDeletedEntry = context.TimeEntries.Take(3).Select(t => t.Id);

                var result = tsService.DeleteEntries(idsOfDeletedEntry).Result;
                Assert.True(result.Successful);
                Assert.Equal(initNumEntries - 3, context.TimeEntries.Count());
            }
        }
Beispiel #7
0
        public void DeleteTimeEntry_Single_Success()
        {
            using (var transaction = _db.Connection.BeginTransaction())
            {
                var context        = _db.CreateContext(transaction);
                int initNumEntries = context.TimeEntries.Count();

                var tsService = new EFTimeSheetService(context, _mapper, new NullLogger <EFTimeSheetService>());

                int idOfDeletedEntry = context.TimeEntries.FirstOrDefault().Id;

                List <int> deletedEntryIds = new List <int>();
                deletedEntryIds.Add(idOfDeletedEntry);

                var result = tsService.DeleteEntries(deletedEntryIds).Result;
                Assert.True(result.Successful);
                Assert.Equal(initNumEntries - 1, context.TimeEntries.Count());
            }
        }
Beispiel #8
0
        public void AddTimeEntry_EntryMissingEndTime()
        {
            using (var transaction = _db.Connection.BeginTransaction())
            {
                var context   = _db.CreateContext(transaction);
                var tsService = new EFTimeSheetService(context, _mapper, new NullLogger <EFTimeSheetService>());

                var createDto = new TimeEntryCreateDto
                {
                    MemberId   = context.Members.FirstOrDefault().Id,
                    PositionId = context.Positions.FirstOrDefault().Id,
                    StartTime  = DateTime.Now,
                };

                var result = tsService.AddFullEntry(createDto).Result;

                Assert.False(result.Successful);
            }
        }
Beispiel #9
0
        public void PunchClock_InvalidEntry()
        {
            using (var transaction = _db.Connection.BeginTransaction())
            {
                var context   = _db.CreateContext(transaction);
                var tsService = new EFTimeSheetService(context, _mapper, new NullLogger <EFTimeSheetService>());

                var clockInDto = new TimeEntryCreateDto
                {
                    MemberId   = context.Members.FirstOrDefault().Id,
                    PositionId = context.Positions.FirstOrDefault().Id,
                    StartTime  = DateTime.Now,
                    EndTime    = DateTime.Now,
                };

                var clockOutResult = tsService.PunchClock(clockInDto).Result;

                Assert.False(clockOutResult.Successful);
            }
        }