public async Task MeetingControllerDelete()
        {
            var data  = new MeetingApiDataHandler();
            var model = MeetingData.GetFirst();

            data.Result.Setup(m => m.Execute(It.IsAny <Loader <Meeting> >())).Returns(model);
            data.Result.Setup(m => m.Execute(It.IsAny <Persist <Meeting> >())).Returns(model);

            var controller = new MeetingController(data, Logic)
            {
                CurrentUser = StandardUser
            };
            var result = await controller.Delete(MeetingData.FirstId) as OkObjectResult;

            result.Should().NotBeNull();
            result.Should().BeOfType <OkObjectResult>();

            var viewModel = result.Value as ConfirmViewModel;

            viewModel.Success.Should().BeTrue();

            data.HasExecuted.Should().BeTrue();
            data.HasCommitted.Should().BeTrue();
            data.Result.Verify(s => s.Execute(It.IsAny <Loader <Meeting> >()), Times.Once());
            data.Result.Verify(s => s.Execute(It.IsAny <Persist <Meeting> >()), Times.Once());
        }
        public async Task MeetingControllerGetAdmin()
        {
            var data  = new MeetingApiDataHandler();
            var model = MeetingData.GetFirst();

            data.Result.Setup(m => m.Execute(It.IsAny <Loader <Meeting> >())).Returns(model);

            var controller = new MeetingController(data, Logic)
            {
                CurrentUser = AdminUser
            };
            var result = await controller.Get(MeetingData.FirstId) as OkObjectResult;

            result.Should().NotBeNull();
            result.Should().BeOfType <OkObjectResult>();

            var viewModel = result.Value as MeetingViewModel;

            viewModel.Id.Should().Be(model.Id);
            viewModel.Name.Should().Be(model.Name);
            viewModel.Text.Should().Be(model.Text);

            data.HasExecuted.Should().BeTrue();
            data.Result.Verify(s => s.Execute(It.IsAny <Loader <Meeting> >()), Times.Once());
        }
        public async Task MeetingControllerRecurUnauthorised()
        {
            var data  = new MeetingApiDataHandler();
            var logic = new InteractApiLogicHandler();

            var viewModel = new RecurViewModel()
            {
                MeetingId = MeetingData.FirstId, When = DateHelper.FormatDayStart(DateTime.UtcNow)
            };

            data.Result.Setup(m => m.Execute(It.IsAny <Loader <Meeting> >())).Returns(MeetingData.GetFirst());

            var controller = new MeetingController(data, logic)
            {
                CurrentUser = NonTenantUser
            };
            var result = await controller.Recur(viewModel) as UnauthorizedResult;

            result.Should().NotBeNull();
            result.Should().BeOfType <UnauthorizedResult>();

            data.HasExecuted.Should().BeTrue();
            data.HasCommitted.Should().BeFalse();
            data.Result.Verify(s => s.Execute(It.IsAny <Loader <Meeting> >()), Times.Once);
            data.Result.Verify(s => s.Execute(It.IsAny <Persist <Meeting> >()), Times.Never());
        }
        public async Task MeetingControllerFilter()
        {
            var data = new MeetingApiDataHandler();
            var list = new List <MeetingDisplay> {
                MeetingData.GetFirstDisplay(false)
            };
            var filter = new MeetingFilter {
                TenantRestrict = true
            };

            data.Result.Setup(m => m.Execute(It.IsAny <MeetingDisplayByFilter>())).Returns(list);

            var controller = new MeetingController(data, Logic)
            {
                CurrentUser = StandardUser
            };
            var result = await controller.Filter(filter) as OkObjectResult;

            result.Should().NotBeNull();
            result.Should().BeOfType <OkObjectResult>();
            result.Value.Should().NotBeNull();

            var check = result.Value as PagedResult <IEnumerable <MeetingDisplay> >;

            check.Should().NotBeNull();
            check.Data.Count().Should().Be(list.Count);

            Assert.That(check.Data, Is.DeepEqualTo(list));

            data.HasExecuted.Should().BeTrue();
            data.Result.Verify(s => s.Execute(It.IsAny <MeetingDisplayByFilter>()), Times.Once());
        }
        public async Task MeetingControllerRecurAttendFail()
        {
            var data  = new MeetingApiDataHandler();
            var logic = new InteractApiLogicHandler();

            var viewModel = new RecurViewModel()
            {
                MeetingId = MeetingData.FirstId, When = DateHelper.FormatDayStart(DateTime.UtcNow)
            };

            data.Result.Setup(m => m.Execute(It.IsAny <Loader <Meeting> >())).Returns(MeetingData.GetFirst());
            data.Result.Setup(m => m.Execute(It.IsAny <Persist <Meeting> >())).Returns(MeetingData.GetSecond());
            logic.Result.Setup(m => m.Execute(It.IsAny <AttendCheck>())).Returns(false);

            var controller = new MeetingController(data, logic)
            {
                CurrentUser = StandardUser
            };
            var result = await controller.Recur(viewModel) as OkObjectResult;

            result.Should().NotBeNull();
            result.Should().BeOfType <OkObjectResult>();
            result.Value.Should().NotBeNull();

            var check = result.Value as ConfirmViewModel;

            check.Success.Should().BeFalse();

            data.HasExecuted.Should().BeTrue();
            data.HasCommitted.Should().BeFalse();
            data.Result.Verify(s => s.Execute(It.IsAny <Loader <Meeting> >()), Times.Once);
            data.Result.Verify(s => s.Execute(It.IsAny <Persist <Meeting> >()), Times.Never());
        }
        public async Task MeetingControllerPostEdit()
        {
            var data       = new MeetingApiDataHandler();
            var model      = MeetingData.GetFirst();
            var attendance = new List <Attendance>()
            {
                AttendanceData.GetFirst(), AttendanceData.GetSecond()
            };
            var users = new List <User>()
            {
                UserData.GetFirst(), UserData.GetSecond()
            };

            data.Result.Setup(m => m.Execute(It.IsAny <Loader <Meeting> >())).Returns(model);
            data.Result.Setup(m => m.Execute(It.IsAny <Persist <Meeting> >())).Returns(model);
            data.Result.Setup(m => m.Execute(It.IsAny <Loaders <Attendance> >())).Returns(attendance);
            data.Result.Setup(m => m.Execute(It.IsAny <Loaders <User> >())).Returns(users);

            var controller = new MeetingController(data, new LogicHandler()
            {
                DataHandler = data
            })
            {
                CurrentUser = StandardUser
            };
            var viewModel = controller.Mapper.Map <MeetingViewModel>(model);

            viewModel.Attendees = new List <ResultProfile>()
            {
                UserData.GetFirstProfile(), UserData.GetSecondProfile()
            };

            var result = await controller.Post(viewModel) as OkObjectResult;

            result.Should().NotBeNull();
            result.Should().BeOfType <OkObjectResult>();
            result.Value.Should().NotBeNull();

            var check = result.Value as ConfirmViewModel;

            check.Identity.Should().Be(model.Id);

            data.HasExecuted.Should().BeTrue();
            data.HasCommitted.Should().BeTrue();
            data.Result.Verify(s => s.Execute(It.IsAny <Loader <Meeting> >()), Times.AtLeastOnce);
            data.Result.Verify(s => s.Execute(It.IsAny <Persist <Meeting> >()), Times.Never());
        }
        public async Task MeetingControllerGetNull()
        {
            var data = new MeetingApiDataHandler();

            data.Result.Setup(m => m.Execute(It.IsAny <Loader <Meeting> >())).Returns(null);

            var controller = new MeetingController(data, Logic)
            {
                CurrentUser = StandardUser
            };
            var result = await controller.Get(MeetingData.FirstId) as NotFoundResult;

            result.Should().NotBeNull();
            result.Should().BeOfType <NotFoundResult>();

            data.HasExecuted.Should().BeTrue();
            data.Result.Verify(s => s.Execute(It.IsAny <Loader <Meeting> >()), Times.Once());
        }
        public async Task MeetingControllerDisplayUnauthorized()
        {
            var data    = new MeetingApiDataHandler();
            var display = MeetingData.GetFirstDisplay(false);

            data.Result.Setup(m => m.Execute(It.IsAny <MeetingDisplayById>())).Returns(display);

            var controller = new MeetingController(data, Logic)
            {
                CurrentUser = NonTenantUser
            };
            var result = await controller.Display(MeetingData.FirstId) as UnauthorizedResult;

            result.Should().NotBeNull();
            result.Should().BeOfType <UnauthorizedResult>();

            data.HasExecuted.Should().BeTrue();
            data.Result.Verify(s => s.Execute(It.IsAny <MeetingDisplayById>()), Times.Once());
        }
        public async Task MeetingControllerGetUnauthorised()
        {
            var data  = new MeetingApiDataHandler();
            var model = MeetingData.GetFirst();

            data.Result.Setup(m => m.Execute(It.IsAny <Loader <Meeting> >())).Returns(model);

            var controller = new MeetingController(data, Logic)
            {
                CurrentUser = NonTenantUser
            };
            var result = await controller.Get(MeetingData.FirstId) as UnauthorizedResult;

            result.Should().NotBeNull();
            result.Should().BeOfType <UnauthorizedResult>();

            data.HasExecuted.Should().BeTrue();
            data.Result.Verify(s => s.Execute(It.IsAny <Loader <Meeting> >()), Times.Once());
        }
Exemple #10
0
        public async Task MeetingControllerDisplay()
        {
            var data    = new MeetingApiDataHandler();
            var display = MeetingData.GetFirstDisplay(false);

            data.Result.Setup(m => m.Execute(It.IsAny <MeetingDisplayById>())).Returns(display);

            var controller = new MeetingController(data, Logic)
            {
                CurrentUser = AdminUser
            };
            var result = await controller.Display(MeetingData.FirstId) as OkObjectResult;

            result.Should().NotBeNull();
            result.Should().BeOfType <OkObjectResult>();

            Assert.That(result.Value, Is.DeepEqualTo(display));

            data.HasExecuted.Should().BeTrue();
            data.Result.Verify(s => s.Execute(It.IsAny <MeetingDisplayById>()), Times.Once());
        }
Exemple #11
0
        public async Task MeetingControllerCloseNotDone()
        {
            var data  = new MeetingApiDataHandler();
            var logic = new InteractApiLogicHandler();

            data.Result.Setup(m => m.Execute(It.IsAny <MeetingById>())).Returns(MeetingData.GetFirst());
            data.Result.Setup(m => m.Execute(It.IsAny <Persist <Meeting> >())).Returns(MeetingData.GetSecond());

            var attendance = AttendanceData.GetFirst();

            attendance.HasAttended = false;

            data.ResultAttendances = new List <Attendance>()
            {
                attendance
            };

            var controller = new MeetingController(data, logic)
            {
                CurrentUser = StandardUser
            };
            var result = await controller.Close(MeetingData.FirstId) as OkObjectResult;

            result.Should().NotBeNull();
            result.Should().BeOfType <OkObjectResult>();
            result.Value.Should().NotBeNull();

            var check = result.Value as ConfirmViewModel;

            check.Success.Should().BeFalse();

            data.HasExecuted.Should().BeTrue();
            data.HasCommitted.Should().BeFalse();
            data.Result.Verify(s => s.Execute(It.IsAny <MeetingById>()), Times.Once);
            data.Result.Verify(s => s.Execute(It.IsAny <Persist <Meeting> >()), Times.Never());
        }
Exemple #12
0
        public async Task MeetingControllerPostUnauthorised()
        {
            var data  = new MeetingApiDataHandler();
            var model = MeetingData.GetFirst();

            data.Result.Setup(m => m.Execute(It.IsAny <Loader <Meeting> >())).Returns(model);
            data.Result.Setup(m => m.Execute(It.IsAny <Persist <Meeting> >())).Returns(model);

            var controller = new MeetingController(data, Logic)
            {
                CurrentUser = NonTenantUser
            };
            var viewModel = controller.Mapper.Map <MeetingViewModel>(model);

            var result = await controller.Post(viewModel) as UnauthorizedResult;

            result.Should().NotBeNull();
            result.Should().BeOfType <UnauthorizedResult>();

            data.HasExecuted.Should().BeTrue();
            data.HasCommitted.Should().BeFalse();
            data.Result.Verify(s => s.Execute(It.IsAny <Loader <Meeting> >()), Times.AtLeastOnce);
            data.Result.Verify(s => s.Execute(It.IsAny <Persist <Meeting> >()), Times.Never);
        }