Example #1
0
        public void WhenNoDatesPassedIn_WeDefaultToTodayAndOneWeekFromToday()
        {
            // Arrange
            var now = DateTime.Now;
            var expectedStartDate = now.Date;
            var expectedEndDate   = now.Date.AddDays(7);

            var mockLogger = this.GetMockLogger <SchedulesController>();

            var mockScheduleService = new Mock <IScheduleService>();

            mockScheduleService.Setup(r => r.GetSchedules(It.IsAny <DateTime>(), It.IsAny <DateTime>()))
            .Returns(new List <Schedule>());

            var dateTimeProvider = new UnitTestDateTimeProvider(now);

            SchedulesController controller = new SchedulesController(mockLogger.Object, mapper,
                                                                     mockScheduleService.Object, dateTimeProvider);


            // Act
            var response = controller.Get(new GetSchedulesParameters());

            // Assert
            mockScheduleService.Verify(r => r.GetSchedules(expectedStartDate, expectedEndDate), Times.Once());
        }
Example #2
0
        public void WhenDatesPassedIn_PassedInDatesAreUsed()
        {
            // Arrange
            var expectedStartDate = new DateTime(2018, 4, 1);
            var expectedEndDate   = new DateTime(2018, 4, 15);

            var mockLogger          = this.GetMockLogger <SchedulesController>();
            var mockScheduleService = new Mock <IScheduleService>();

            mockScheduleService.Setup(r => r.GetSchedules(It.IsAny <DateTime>(), It.IsAny <DateTime>()))
            .Returns(new List <Schedule>());
            var mockDateTimeProvider = new Mock <IDateTimeProvider>();

            SchedulesController controller = new SchedulesController(mockLogger.Object, mapper,
                                                                     mockScheduleService.Object, mockDateTimeProvider.Object);

            // Act
            var response = controller.Get(new GetSchedulesParameters()
            {
                StartDate = expectedStartDate, EndDate = expectedEndDate
            });

            // Assert
            mockScheduleService.Verify(r => r.GetSchedules(expectedStartDate, expectedEndDate), Times.Once());
            mockDateTimeProvider.Verify(p => p.CurrentDateTime, Times.Never);
            mockDateTimeProvider.Verify(p => p.Today, Times.Never);
        }
        public async void Test_Delete_Schedule()
        {
            //Arrange
            var db       = DbSource.CreateDbSource();
            var c        = new SchedulesController(db);
            var schedule = new Schedule
            {
                ScheduleId    = 3,
                HomeTeamScore = 31,
                AwayTeamScore = 13,
                GameDate      = new DateTime(2019, 05, 05, 13, 50, 22),
                Time          = "05:30",
                TeamInfoId    = 1
            };

            //Act
            await c.Create(schedule);

            var r = await c.Delete(3);

            //Assert
            var result = Assert.IsType <ViewResult>(r);
            var model  = Assert.IsAssignableFrom <Schedule>(result.ViewData.Model);

            Assert.Equal(db.Schedule.Find(3), model);
        }
        public async void Test_Create_Invalid_Schedule_GameDate()
        {
            //Arrange
            var db = DbSource.CreateDbSource();
            var c  = new SchedulesController(db);

            var schedule = new Schedule
            {
                ScheduleId    = 2,
                HomeTeamScore = 3,
                AwayTeamScore = 1,
                Time          = "05:30",
                TeamInfoId    = 1
            };

            c.ModelState.AddModelError("GameDate", "Required");

            //Act
            var r = await c.Create(schedule);

            //Assert
            var result = Assert.IsType <ViewResult>(r);
            var model  = Assert.IsAssignableFrom <Schedule>(result.ViewData.Model);

            Assert.Equal(schedule, model);
        }
        public async Task PostScheduleReturnsCreaterAtActionResultTest()
        {
            // Arrange
            int      testId     = 1;
            Schedule schedule   = GetTestSchedules().FirstOrDefault(p => p.Id == testId);
            var      mockLogger = new Mock <ILogger <SchedulesController> >();
            var      mockRepo   = new Mock <IVenuesRepository>();

            mockRepo.Setup(c => c.AddSchedule(schedule)).Verifiable();
            mockRepo.Setup(c => c.SaveChanges())
            .Returns(Task.CompletedTask);
            var controller = new SchedulesController(mockRepo.Object, mockLogger.Object);

            // Act
            var result = await controller.PostSchedule(schedule);

            // Assert
            var requestResult = Assert.IsType <CreatedAtActionResult>(result);
            var model         = Assert.IsType <Schedule>(requestResult.Value);

            Assert.Equal(schedule.Id, model.Id);
            Assert.Equal(schedule.VenueId, model.VenueId);
            Assert.Equal(schedule.ConcertId, model.ConcertId);
            Assert.Equal(schedule.Date, model.Date);
        }
        public async void Test_Create_Schedule()
        {
            //Arrange
            var db = DbSource.CreateDbSource();
            var c  = new SchedulesController(db);

            var schedule = new Schedule
            {
                ScheduleId    = 2,
                HomeTeamScore = 3,
                AwayTeamScore = 1,
                GameDate      = new DateTime(2019, 05, 05, 13, 50, 22),
                Time          = "05:30",
                TeamInfoId    = 1
            };
            //Act
            var r = await c.Create(schedule);

            //Assert
            var result = Assert.IsType <RedirectToActionResult>(r);

            Assert.Equal("Index", result.ActionName);
            Assert.Equal(1, db.Schedule.Where(x => x.ScheduleId == schedule.ScheduleId && x.HomeTeamScore == schedule.HomeTeamScore &&
                                              x.AwayTeamScore == schedule.AwayTeamScore && x.GameDate == schedule.GameDate &&
                                              x.Time == schedule.Time && x.TeamInfoId == schedule.TeamInfoId).Count());
        }
Example #7
0
        public async Task PutScheduleThrowsDbUpdateExceptionTest()
        {
            // Arrange
            var mock    = new Mock <IUpdateEntry>();
            var entries = new List <IUpdateEntry>();

            entries.Add(mock.Object);

            int      testId     = 1;
            Schedule schedule   = GetTestSchedules().FirstOrDefault(p => p.Id == testId);
            var      mockLogger = new Mock <ILogger <SchedulesController> >();
            var      mockRepo   = new Mock <IVenuesRepository>();

            mockRepo.Setup(c => c.FirstSchedule(testId)).Returns(schedule);
            mockRepo.Setup(c => c.ChangeState(schedule, schedule, EntityState.Modified))
            .Verifiable();
            mockRepo.Setup(c => c.SaveChanges()).Throws(
                new DbUpdateConcurrencyException(It.IsNotNull <string>(), entries));
            mockRepo.Setup(c => c.ScheduleExists(testId)).Returns(true);
            var controller = new SchedulesController(mockRepo.Object, mockLogger.Object);

            // Act Assert
            await Assert.ThrowsAsync <DbUpdateConcurrencyException>(() =>
                                                                    controller.PutSchedule(schedule));
        }
        public void scheduledControl()
        {
            //GetScheduleList
            SchedulesController  schedulesController = new SchedulesController();
            List <ScheduleModel> scheduleModels      = schedulesController.GetScheduleList();

            foreach (ScheduleModel sm in scheduleModels)
            {
                var      roomID = sm.Location;
                DateTime sdate  = DateTime.Parse(sm.Date + " " + sm.Time);

                var dftmp = calGoodTemp(roomID);

                sdate = sdate.AddMinutes(-8);
                String scheduleTime = sdate.ToString("dd/MM/yyyy HH:mm");
                Debug.WriteLine("scheduleTime: " + scheduleTime);
                String now = DateTime.Now.ToString("dd/MM/yyyy HH:mm");
                Debug.WriteLine("DateTime.Now: " + now);
                //TimeSpan timeSpan = now - sdate;
                if (now == scheduleTime)
                {
                    Boolean success = apUtil.setAcCurrentAndTurnON(roomID, dftmp);
                    if (success)
                    {
                        Debug.WriteLine("scheduledControl: ready to have a booking: roomID = " + roomID);
                    }
                    else
                    {
                        Debug.WriteLine("scheduledControl: booked room turn on fail = " + roomID);
                    }
                }
            }
        }
        private void ManageFlightSchedules_Load(object sender, EventArgs e)
        {
            SchedulesController sc = new SchedulesController();
            List <Schedules>    ls = new SchedulesController().getAll();
            AirportsController  ap = new AirportsController();

            dataGrDisplay.DataSource = ls;
        }
 public void CanGet()
 {
     try
     {
         //Arrange
         //Repository
         Mock <IScheduleRepository> mockRepo = new Mock <IScheduleRepository>();
         var schedules = new List <Schedule>()
         {
             new Schedule()
             {
                 Id = 1, Title = "Schedule1"
             },
             new Schedule()
             {
                 Id = 2, Title = "Schedule2"
             },
             new Schedule()
             {
                 Id = 3, Title = "Schedule3"
             }
         };
         mockRepo.Setup(m => m.items).Returns(value: schedules);
         //auto mapper configuration
         var mockMapper = new MapperConfiguration(cfg =>
         {
             cfg.AddProfile(new AutoMapperProfile());
         });
         var mapper = mockMapper.CreateMapper();
         SchedulesController controller = new SchedulesController(repository: mockRepo.Object, mapper: mapper);
         //Act
         var result = controller.Get();
         //Assert
         var okResult = result as OkObjectResult;
         if (okResult != null)
         {
             Assert.NotNull(okResult);
         }
         var model = okResult.Value as IEnumerable <ScheduleDto>;
         if (model.Count() > 0)
         {
             Assert.NotNull(model);
             var expected = model?.FirstOrDefault().Title;
             var actual   = schedules?.FirstOrDefault().Title;
             Assert.Equal(expected: expected, actual: actual);
         }
     }
     catch (Exception ex)
     {
         //Assert
         Assert.False(false, ex.Message);
     }
 }
        public void scheduledRoom()
        {
            //GetScheduleList
            SchedulesController  schedulesController = new SchedulesController();
            List <ScheduleModel> scheduleModels      = schedulesController.GetScheduleList();
            List <String>        scheduledRoomList   = new List <string>();

            foreach (ScheduleModel sm in scheduleModels)
            {
                Debug.WriteLine("sm.Location:" + sm.Location);
            }
        }
        public async void Test_Index_Schedule()
        {
            //Arrange
            var db = DbSource.CreateDbSource();
            var c  = new SchedulesController(db);

            //Act
            var r = await c.Index();

            //Assert
            var result = Assert.IsType <ViewResult>(r);
            var model  = Assert.IsAssignableFrom <List <Schedule> >(result.ViewData.Model);

            Assert.Equal(1, model.Count());
        }
        public async Task PostScheduleReturnsBadRequestResultTest()
        {
            // Arrange & Act
            var mockRepo   = new Mock <IVenuesRepository>();
            var mockLogger = new Mock <ILogger <SchedulesController> >();
            var controller = new SchedulesController(mockRepo.Object, mockLogger.Object);

            controller.ModelState.AddModelError("error", "some error");

            // Act
            var result = await controller.PostSchedule(schedule : null);

            // Assert
            Assert.IsType <BadRequestObjectResult>(result);
        }
Example #14
0
        public async Task PutScheduleReturnsNoContentResultTest()
        {
            // Arrange
            int      testId     = 1;
            Schedule schedule   = GetTestSchedules().FirstOrDefault(p => p.Id == testId);
            var      mockLogger = new Mock <ILogger <SchedulesController> >();
            var      mockRepo   = new Mock <IVenuesRepository>();

            mockRepo.Setup(c => c.ChangeState(schedule, schedule, EntityState.Modified)).Verifiable();
            mockRepo.Setup(c => c.SaveChanges()).Returns(Task.CompletedTask);
            mockRepo.Setup(c => c.FirstSchedule(testId)).Returns(schedule);
            var controller = new SchedulesController(mockRepo.Object, mockLogger.Object);

            // Act
            var result = await controller.PutSchedule(schedule);

            // Assert
            Assert.IsType <NoContentResult>(result);
        }
        public async Task SchedulesGet_ReturnsACollectionOfScheduleDTOs()
        {
            var mockRepo = new Mock <IScheduleRepository>();

            mockRepo.Setup(repo => repo.GetSchedulesBetween(It.IsAny <DateTime>(), It.IsAny <DateTime>()))
            .Returns(DummyDailyWorkSchedulesCollection);

            var controller = new SchedulesController(mockRepo.Object);

            var scheduleDTOs = await controller.GetAsync();

            Assert.Equal(
                DummyDailyWorkSchedulesCollection.Select(schedule => (schedule.Employee, schedule.StartTime)),
                scheduleDTOs.Select(scheduleDTO => (scheduleDTO.Employee, scheduleDTO.StartTime)));

            mockRepo.Verify(repo => repo.GetSchedulesBetween(
                                It.Is <DateTime>(dateTime => dateTime.Date == DateTime.Now.AddDays(-Constants.DefaultIntervalInDays).Date),
                                It.Is <DateTime>(dateTime => dateTime.Date == DateTime.Now.AddDays(Constants.DefaultIntervalInDays).Date)));
        }