Example #1
0
        public async Task AttendanceControllerPostAdd()
        {
            var data  = new AttendanceApiDataHandler();
            var model = AttendanceData.GetFirst();

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

            var controller = new AttendanceController(data, Logic)
            {
                CurrentUser = AdminUser
            };
            var viewModel = controller.Mapper.Map <AttendanceViewModel>(model);

            viewModel.Id = string.Empty;

            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);

            viewModel.Participants.Count().Should().Be(0);
            viewModel.CanAttend.Should().BeFalse();

            data.HasExecuted.Should().BeTrue();
            data.HasCommitted.Should().BeTrue();
            data.Result.Verify(s => s.Execute(It.IsAny <Loader <Attendance> >()), Times.Never);
            data.Result.Verify(s => s.Execute(It.IsAny <Persist <Attendance> >()), Times.Once());
        }
Example #2
0
        public async Task AttendanceControllerGetAdmin()
        {
            var data   = new AttendanceApiDataHandler();
            var master = UserData.GetFirstProfile();
            var model  = AttendanceData.GetFirst();

            data.ResultParticipants = new List <ResultProfile>()
            {
                master
            };

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

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

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

            var viewModel = result.Value as AttendanceViewModel;

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

            data.HasExecuted.Should().BeTrue();
            data.Result.Verify(s => s.Execute(It.IsAny <Loader <Attendance> >()), Times.Once());
        }
Example #3
0
        public async Task AttendanceControllerPostEdit()
        {
            var data  = new AttendanceApiDataHandler();
            var model = AttendanceData.GetFirst();

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

            var controller = new AttendanceController(data, Logic)
            {
                CurrentUser = StandardUser
            };
            var viewModel = controller.Mapper.Map <AttendanceViewModel>(model);

            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 <Attendance> >()), Times.AtLeastOnce);
            data.Result.Verify(s => s.Execute(It.IsAny <Persist <Attendance> >()), Times.Once());
        }
Example #4
0
        public async Task AttendanceControllerFilter()
        {
            var data = new AttendanceApiDataHandler();
            var list = new List <AttendanceDisplay> {
                AttendanceData.GetFirstDisplay(false)
            };
            var filter = new AttendanceFilter {
                TenantRestrict = true
            };

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

            var controller = new AttendanceController(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 <AttendanceDisplay> >;

            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 <AttendanceDisplayByFilter>()), Times.Once());
        }
Example #5
0
        public async Task AttendanceControllerDisplayNull()
        {
            var data = new AttendanceApiDataHandler();

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

            var controller = new AttendanceController(data, Logic)
            {
                CurrentUser = StandardUser
            };
            var result = await controller.Display(AttendanceData.FirstId) as NotFoundResult;

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

            data.HasExecuted.Should().BeTrue();
            data.Result.Verify(s => s.Execute(It.IsAny <AttendanceDisplayById>()), Times.Once());
        }
Example #6
0
        public async Task AttendanceControllerDisplayUnauthorized()
        {
            var data    = new AttendanceApiDataHandler();
            var display = AttendanceData.GetFirstDisplay(false);

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

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

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

            data.HasExecuted.Should().BeTrue();
            data.Result.Verify(s => s.Execute(It.IsAny <AttendanceDisplayById>()), Times.Once());
        }
Example #7
0
        public async Task AttendanceControllerGetUnauthorised()
        {
            var data  = new AttendanceApiDataHandler();
            var model = AttendanceData.GetFirst();

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

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

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

            data.HasExecuted.Should().BeTrue();
            data.Result.Verify(s => s.Execute(It.IsAny <Loader <Attendance> >()), Times.Once());
        }
Example #8
0
        public async Task AttendanceControllerDisplay()
        {
            var data    = new AttendanceApiDataHandler();
            var display = AttendanceData.GetFirstDisplay(false);

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

            var controller = new AttendanceController(data, Logic)
            {
                CurrentUser = AdminUser
            };
            var result = await controller.Display(AttendanceData.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 <AttendanceDisplayById>()), Times.Once());
        }
Example #9
0
        public async Task AttendanceControllerNoShowFail()
        {
            var data    = new AttendanceApiDataHandler();
            var confirm = ModelConfirm <Attendance> .CreateFailure("Failed");

            data.Result.Setup(m => m.Execute(It.IsAny <AttendanceNoShow>())).Returns(false);

            data.ResultConfirm = confirm;

            var controller = new AttendanceController(data, Logic)
            {
                CurrentUser = AdminUser
            };
            var result = await controller.NoShow(MeetingData.FirstId, StandardUser.Id) as OkObjectResult;

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

            data.HasExecuted.Should().BeTrue();
            data.HasCommitted.Should().BeFalse();
            data.Result.Verify(s => s.Execute(It.IsAny <AttendanceNoShow>()), Times.Once);
        }
Example #10
0
        public async Task AttendanceControllerCheckIn()
        {
            var data    = new AttendanceApiDataHandler();
            var confirm = ModelConfirm <Attendance> .CreateSuccess(AttendanceData.GetFirst());

            data.Result.Setup(m => m.Execute(It.IsAny <AttendanceCheckin>())).Returns(true);

            data.ResultConfirm = confirm;

            var controller = new AttendanceController(data, Logic)
            {
                CurrentUser = AdminUser
            };
            var result = await controller.Checkin(MeetingData.FirstId, StandardUser.Id) as OkObjectResult;

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

            data.HasExecuted.Should().BeTrue();
            data.HasCommitted.Should().BeTrue();
            data.Result.Verify(s => s.Execute(It.IsAny <AttendanceCheckin>()), Times.Once);
        }
Example #11
0
        public async Task AttendanceControllerPostUnauthorised()
        {
            var data  = new AttendanceApiDataHandler();
            var model = AttendanceData.GetFirst();

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

            var controller = new AttendanceController(data, Logic)
            {
                CurrentUser = NonTenantUser
            };
            var viewModel = controller.Mapper.Map <AttendanceViewModel>(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 <Attendance> >()), Times.AtLeastOnce);
            data.Result.Verify(s => s.Execute(It.IsAny <Persist <Attendance> >()), Times.Never);
        }