コード例 #1
0
ファイル: MeetingControllerTest.cs プロジェクト: rog1039/crux
        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());
        }
コード例 #2
0
ファイル: MeetingControllerTest.cs プロジェクト: rog1039/crux
        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());
        }
コード例 #3
0
ファイル: MeetingControllerTest.cs プロジェクト: rog1039/crux
        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());
        }
コード例 #4
0
ファイル: MeetingControllerTest.cs プロジェクト: rog1039/crux
        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());
        }
コード例 #5
0
        /// <summary>
        /// Check the DiScribe bot email inbox for Webex invite emails created by scheduling
        /// from Webex.com or from DiScribe web.
        /// </summary>
        /// <param name="appConfig"></param>
        /// <returns></returns>
        private static async Task <object?> CheckForEmails(IConfigurationRoot appConfig)
        {
            MeetingInfo meetingInfo = null;


            try
            {
                var email = await EmailListener.GetEmailAsync();

                meetingInfo = MeetingController.HandleEmail(email.Body.Content.ToString(), email.Subject, "", appConfig);
                await EmailListener.DeleteEmailAsync(email);
            }
            catch (Exception emailEx)
            {
                Console.Error.WriteLine($">\tCould not read bot invite email. Reason: {emailEx.Message}");
                return(null);
            }

            if (meetingInfo != null)
            {
                Console.WriteLine($">\tNew Meeting Found at: {meetingInfo.StartTime.ToLocalTime()}");

                /*Send an audio registration email enabling all unregistered users to enroll on DiScribe website */
                MeetingController.SendEmailsToAnyUnregisteredUsers(meetingInfo.AttendeesEmails, appConfig["DB_CONN_STR"]);


                Console.WriteLine($">\tScheduling dialer to dial in to meeting at {meetingInfo.StartTime}");

                //Kay: According to Oloff, this should not have an "await" in front, otherwise it will wait until the meeting finish before checking the inbox again.
                SchedulerController.Schedule(Run, meetingInfo, appConfig, meetingInfo.StartTime);//Schedule dialer-transcriber workflow as separate task
            }

            return(meetingInfo);
        }
コード例 #6
0
        public void IndexWithParametersNotLoggedUserTest()
        {
            ModelsMocks.CleanUpBeforeTest();
            // Arrange
            MeetingController controller = ControllersMocks.GetControllerAsNotLoggedUser <MeetingController>();

            // Act
            JsonResult action    = controller.Index(ModelsMocks.ProjectModelFirst.ID, ModelsMocks.TaskModelFirst.ID) as JsonResult;
            var        forbidden = (TaskVlopper.Models.JsonHttpViewModel)action.Data;

            // Assert
            Assert.AreEqual(403, forbidden.HttpCode);

            // Act
            action    = controller.Index(ModelsMocks.ProjectModelFirst.ID) as JsonResult;
            forbidden = (TaskVlopper.Models.JsonHttpViewModel)action.Data;
            // Assert
            Assert.AreEqual(403, forbidden.HttpCode);

            // Act
            action    = controller.Index() as JsonResult;
            forbidden = (TaskVlopper.Models.JsonHttpViewModel)action.Data;
            // Assert
            Assert.AreEqual(403, forbidden.HttpCode);
        }
コード例 #7
0
        public async void AddParticipant_FailsWhenMeetingNotFound()
        {
            const int idMeeting     = 1;
            const int idParticipant = 1;

            _context.Meetings.Add(
                new Meeting
            {
                Id   = 2,
                Name = "meeting",
                StartDateTimeMeeting = new DateTime(2020, 06, 12, 21, 30, 00),
                EndDateTimeMeeting   = new DateTime(2020, 06, 12, 23, 30, 00)
            }
                );

            _context.Participants.Add(
                new Participant
            {
                Id    = idParticipant,
                Name  = "Sasha",
                Email = "*****@*****.**"
            }
                );

            _context.SaveChanges();

            var controller = new MeetingController(_context, _emailServiceMock.Object);

            var result = await controller.AddParticipant(idMeeting, idParticipant);

            Assert.Empty(_context.MeetingParticipants);

            Assert.NotNull(result);
            Assert.IsType <NotFoundResult>(result);
        }
コード例 #8
0
        public void IndexWithParametersLoggedUserTest()
        {
            ModelsMocks.CleanUpBeforeTest();
            ModelsMocks.AddTestProject(true);
            ModelsMocks.AddTestTask(true, ModelsMocks.ProjectModelFirst);
            ModelsMocks.AddTestMeeting(true, ModelsMocks.MeetingModelFirst, ModelsMocks.TaskModelFirst);
            // Arrange
            MeetingController controller = ControllersMocks.GetControllerAsLoggedUser <MeetingController>();

            // Act
            JsonResult action = controller.Index(ModelsMocks.ProjectModelFirst.ID, ModelsMocks.TaskModelFirst.ID) as JsonResult;
            var        data   = (Models.MeetingsViewModel)action.Data;

            // Assert
            Assert.AreEqual(1, data.Meeting.Count());

            // Act
            action = controller.Index(ModelsMocks.ProjectModelFirst.ID) as JsonResult;
            data   = (Models.MeetingsViewModel)action.Data;
            // Assert
            Assert.AreEqual(1, data.Meeting.Count());

            // Act
            action = controller.Index() as JsonResult;
            data   = (Models.MeetingsViewModel)action.Data;
            // Assert
            Assert.AreEqual(1, data.Meeting.Count());
        }
コード例 #9
0
        public async Task AuthenticateOk()
        {
            IConfigurationBuilder configurationBuilder = new ConfigurationBuilder();

            configurationBuilder.AddJsonFile("appSettings.json");

            IConfiguration configuration = configurationBuilder.Build();

            var repository     = new MeetingRepository(configuration);
            var weatherService = new WeatherService();

            IOptions <PaginationOptions> options = Options.Create(new PaginationOptions());

            var meetingController = new MeetingController(
                new MeetingService(repository, weatherService, options));

            var user = new UserLoginDto
            {
                Username = "******",
                Password = "******"
            };
            var userRepo    = new UserRepository(configuration);
            var userService = new UserService(userRepo, options);

            var authController = new AuthenticationController(configuration, userService);

            var token = await authController.Authenticate(user);

            Assert.AreEqual(token.GetType(), typeof(OkObjectResult));

            await Task.CompletedTask;
        }
コード例 #10
0
        // Construtor utilizador para novas reunioes
        public MeetingView(int idUser)
        {
            InitializeComponent();

            // Nova meeting
            this.newMeeting = true;
            this.idUser     = idUser;

            // Instancia a classe controller
            this.controller = new MeetingController();

            // Carrega lista de utilizadores
            loadUsersList();

            // Definir o campo de data/hora com o formato dia/mes/ano hora:minuto
            this.dateTimePickerStart.Format       = DateTimePickerFormat.Custom;
            this.dateTimePickerStart.CustomFormat = "dd/MM/yyyy hh:mm";

            // Load duration options
            loadDuration();

            // Carregar categorias para a linkedlist e combobox
            loadTypesList();

            // Carrega grid com os utilizadores
            loadUsers();
        }
コード例 #11
0
        public void EditPostLoggedUserTest()
        {
            ModelsMocks.CleanUpBeforeTest();
            ModelsMocks.AddTestProject(true);
            ModelsMocks.AddTestTask(true, ModelsMocks.ProjectModelFirst);
            ModelsMocks.AddTestMeeting(true, ModelsMocks.MeetingModelFirst, ModelsMocks.TaskModelFirst);

            // Arrange
            MeetingController controller = ControllersMocks.GetControllerAsLoggedUser <MeetingController>();

            // Act
            JsonResult action = controller.Edit(ModelsMocks.MeetingModelSecond, ModelsMocks.ProjectModelFirst.ID,
                                                ModelsMocks.TaskModelFirst.ID, ModelsMocks.MeetingModelFirst.ID) as JsonResult;

            using (IUnityContainer container = UnityConfig.GetConfiguredContainer())
            {
                var repo    = container.Resolve <IMeetingRepository>();
                var meeting = repo.GetMeetingByIdWithoutTracking(ModelsMocks.MeetingModelFirst.ID);
                if (meeting.Description != "1")
                {
                    Assert.Fail();
                }
                if (meeting.Title != "2")
                {
                    Assert.Fail();
                }
                Assert.IsNotNull(meeting);
            }
        }
コード例 #12
0
        public async void DeleteMeeting_Success()
        {
            const int idMeeting = 1;

            _context.Meetings.Add(
                new Meeting
            {
                Id   = idMeeting,
                Name = "meeting",
                StartDateTimeMeeting = new DateTime(2020, 06, 12, 21, 30, 00),
                EndDateTimeMeeting   = new DateTime(2020, 06, 12, 23, 30, 00)
            }
                );

            _context.SaveChanges();

            var controller = new MeetingController(_context, _emailServiceMock.Object);

            var result = await controller.Delete(idMeeting);

            Assert.Empty(_context.Meetings);

            Assert.NotNull(result);
            Assert.IsType <OkResult>(result);
        }
コード例 #13
0
        public HttpResponseMessage Calendar(string id)
        {
            string output = "BEGIN:VCALENDAR" + Environment.NewLine;;

            output += "METHOD:PUBLISH" + Environment.NewLine;
            output += "VERSION:2.0" + Environment.NewLine;
            output += "PRODID:-//Forsyth County Georgia - Meetings//EN" + Environment.NewLine;
            Meeting m = new MeetingController().GetMeetingByID(Convert.ToInt32(id));

            if (string.IsNullOrEmpty(m.Flag))
            {
                string stamp = string.Format("{0}{1}{2}T{3}Z", m.RecordCreated.ToUniversalTime().ToString("yyyy"), m.RecordCreated.ToUniversalTime().ToString("MM"), m.RecordCreated.ToUniversalTime().ToString("dd"), m.RecordCreated.ToUniversalTime().ToString("HHmmss"));
                string stD   = string.Format("{0}{1}{2}T{3}Z", m.Begining.ToUniversalTime().ToString("yyyy"), m.Begining.ToUniversalTime().ToString("MM"), m.Begining.ToUniversalTime().ToString("dd"), m.Begining.ToUniversalTime().ToString("HHmmss"));
                output += "BEGIN:VEVENT" + Environment.NewLine;
                output += "ORGANIZER:[email protected]" + Environment.NewLine;
                output += "DTSTAMP:" + stamp + Environment.NewLine;
                output += "ORGANIZER:ForsythCounty:MAILTO:[email protected]" + Environment.NewLine;
                output += "DTSTART:" + stD + Environment.NewLine;
                output += "UID:meeting" + m.MeetingID + "@forsythco.com" + Environment.NewLine;
                output += "DURATION:PT1H0M0S" + Environment.NewLine;
                output += "LOCATION:" + String.Format("{0} {1}", m.Location.AddressOne, m.Location.AddressTwo) + Environment.NewLine;
                output += "SUMMARY:" + m.FormattedDescription + Environment.NewLine;
                output += "END:VEVENT" + Environment.NewLine;
            }


            output += "END:VCALENDAR" + Environment.NewLine;
            output += "" + Environment.NewLine;
            return(new HttpResponseMessage()
            {
                //
                Content = new StringContent(output, System.Text.Encoding.UTF8, "text/calendar")
            });
        }
コード例 #14
0
ファイル: MeetingControllerTest.cs プロジェクト: rog1039/crux
        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());
        }
コード例 #15
0
        // Este contrutor é utilizado quando queremos carregar o form com uma reuniao ja existente
        public MeetingView(int idUser, Meeting meeting, List <UserTask> tasks, List <MeetingInvite> guestList)
        {
            InitializeComponent();

            // Reuniao existente
            this.newMeeting = false;
            this.meeting    = meeting;
            this.idUser     = idUser;
            this.buttonExportPdf.Visible          = true;
            this.buttonDelete.Visible             = true;
            this.buttonAttendeeList.Visible       = true;
            this.buttonSendMinutes.Visible        = true;
            this.buttonUploadAttendeeList.Visible = true;

            // Instancia a classe controller
            this.controller = new MeetingController();

            // Carrega lista de utilizadores
            loadUsersList();

            // Activa o botao de iniciar a reuniao
            this.groupBoxRecord.Visible = true;

            // Definir o campo de data/hora com o formato dia/mes/ano hora:minuto
            this.dateTimePickerStart.Format       = DateTimePickerFormat.Custom;
            this.dateTimePickerStart.CustomFormat = "dd/MM/yyyy HH:mm";

            // Load duration options
            loadDuration();

            // Carregar categorias para a linkedlist e combobox
            loadTypesList();

            // Adiciona a coluna custom de data na grid
            CalendarColumn col   = new CalendarColumn();
            int            colno = this.dataGridViewTasks.Columns.Add(col);

            this.dataGridViewTasks.Columns[colno].HeaderText = "Deadline";


            // Carrega valores da meeting
            this.guestList = guestList;
            this.dateTimePickerStart.Value  = this.meeting.startTime;
            this.textBoxSubject.Text        = this.meeting.subject;
            this.textBoxAgenda.Text         = this.meeting.agendaDescription;
            this.textBoxMeetingminutes.Text = this.meeting.meetingMinutes;
            this.textBoxTranscription.Text  = this.meeting.audioTranscription;
            selectDuration(this.meeting.durationMinutes);
            selectType(this.meeting.idType);
            loadTasks(tasks); // Carrega lista de tarefas
            this.panelEditMeeting.Visible = true;

            // Carrega audio da reuniao
            loadMeetingAudio();

            // Mostra a coluna de presença na list ade convidados
            showGuests();
            loadUsersWithSelected(guestList); // Carrega users na base de dados e marca os selecioandos
        }
コード例 #16
0
        public HttpResponseMessage GetMeetingsByDate(string month, string year)
        {
            HttpResponseMessage msg = new HttpResponseMessage();

            MeetingController con = new MeetingController();

            msg.Content = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(con.GetFilteredByDate(Convert.ToInt32(month), Convert.ToInt32(year))), System.Text.Encoding.UTF8, "application/json");
            return(msg);
        }
コード例 #17
0
        public HttpResponseMessage GetMeetingsByGroupType(string group, string type)
        {
            MeetingController con = new MeetingController();

            return(new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(con.GetFilteredByGT(Convert.ToInt32(group), Convert.ToInt32(type))), System.Text.Encoding.UTF8, "application/json")
            });
        }
コード例 #18
0
        public HttpResponseMessage GetMeetingsByOffset(string offset, string pagesize)
        {
            HttpResponseMessage msg = new HttpResponseMessage();

            MeetingController conM = new MeetingController();

            msg.Content = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(conM.GetByOffset(Convert.ToInt32(offset), Convert.ToInt32(pagesize))), System.Text.Encoding.UTF8, "application/json");
            return(msg);
        }
コード例 #19
0
        public HttpResponseMessage GetMeetingsJSON()
        {
            MeetingController conM = new MeetingController();

            return(new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(conM.GetAllMeetings()), System.Text.Encoding.UTF8, "application/json")
            });
        }
コード例 #20
0
        public async void AddParticipant_FailsWhenParticipantIsBusy()
        {
            const int idFirstMeeting  = 1;
            const int idSecondMeeting = 2;
            const int idParticipant   = 1;

            _context.Meetings.Add(
                new Meeting
            {
                Id   = idFirstMeeting,
                Name = "meeting1",
                StartDateTimeMeeting = new DateTime(2020, 06, 12, 21, 30, 00),
                EndDateTimeMeeting   = new DateTime(2020, 06, 12, 23, 30, 00)
            }
                );

            _context.Meetings.Add(
                new Meeting
            {
                Id   = idSecondMeeting,
                Name = "meeting2",
                StartDateTimeMeeting = new DateTime(2020, 06, 12, 22, 00, 00),
                EndDateTimeMeeting   = new DateTime(2020, 06, 12, 23, 00, 00)
            }
                );

            _context.Participants.Add(
                new Participant
            {
                Id    = idParticipant,
                Name  = "Sasha",
                Email = "*****@*****.**"
            }
                );

            _context.MeetingParticipants.Add(
                new MeetingParticipant
            {
                MeetingId     = idFirstMeeting,
                ParticipantId = idParticipant
            }
                );

            _context.SaveChanges();

            var controller = new MeetingController(_context, _emailServiceMock.Object);

            var result = await controller.AddParticipant(idSecondMeeting, idParticipant);

            Assert.Single(_context.MeetingParticipants);

            Assert.NotNull(result);
            Assert.IsType <BadRequestObjectResult>(result);

            _emailServiceMock.Verify(send => send.SendEmailAsync(It.IsAny <string>(), It.IsAny <Meeting>()), Times.Never);
        }
コード例 #21
0
        public void TestInitialize()
        {
            initializeMeetings();
            initializeMapper();
            Mock <IMeetingService> mockService = new Mock <IMeetingService>();

            setupMock(mockService);
            mockMeetingService = mockService.Object;
            meetingController  = new MeetingController(mockMeetingService);
        }
コード例 #22
0
        public void CreateGetNotLoggedUserTest()
        {
            ModelsMocks.CleanUpBeforeTest();
            // Arrange
            MeetingController controller = ControllersMocks.GetControllerAsNotLoggedUser <MeetingController>();

            // Act
            JsonResult action    = controller.Create(1, 1) as JsonResult;
            var        forbidden = (TaskVlopper.Models.JsonHttpViewModel)action.Data;

            Assert.AreEqual(403, forbidden.HttpCode);
        }
コード例 #23
0
        public void DetailsNotLoggedUserTest()
        {
            // Arrange
            MeetingController controller = ControllersMocks.GetControllerAsNotLoggedUser <MeetingController>();

            // Act
            JsonResult action = controller.Details(ModelsMocks.ProjectModelFirst.ID,
                                                   ModelsMocks.TaskModelFirst.ID,
                                                   ModelsMocks.WorklogModelFirst.ID) as JsonResult;
            var forbidden = (TaskVlopper.Models.JsonHttpViewModel)action.Data;

            // Assert
            Assert.AreEqual(403, forbidden.HttpCode);
        }
コード例 #24
0
 protected void Page_Load(object sender, EventArgs e)
 {
     if (Request.QueryString.HasKeys())
     {
         _controller = new MeetingController(this);
         List <MeetingResult> meetings = _controller.GetAllMeetings();
         lstVwMeeting.DataSource = meetings;
         lstVwMeeting.DataBind();
     }
     else
     {
         Response.Redirect("/LogIn.aspx");
     }
 }
コード例 #25
0
        public void DeletePostLoggedUserTest()
        {
            ModelsMocks.CleanUpBeforeTest();
            ModelsMocks.AddTestProject(true);
            ModelsMocks.AddTestTask(true, ModelsMocks.ProjectModelFirst);
            ModelsMocks.AddTestMeeting(true, ModelsMocks.MeetingModelFirst, ModelsMocks.TaskModelFirst);

            // Arrange
            MeetingController controller = ControllersMocks.GetControllerAsLoggedUser <MeetingController>();

            // Act
            JsonResult action = controller.Delete(ModelsMocks.MeetingModelFirst, ModelsMocks.ProjectModelFirst.ID,
                                                  ModelsMocks.TaskModelFirst.ID, ModelsMocks.MeetingModelFirst.ID) as JsonResult;

            using (IUnityContainer container = UnityConfig.GetConfiguredContainer())
            {
                var  repo             = container.Resolve <IMeetingRepository>();
                var  participantsRepo = container.Resolve <IMeetingParticipantsRepository>();
                bool passed           = false;
                try
                {
                    var meeting = repo.GetMeetingByIdWithoutTracking(ModelsMocks.MeetingModelFirst.ID);
                }
                catch (Exception)
                {
                    passed = true;
                }
                finally
                {
                    if (!passed)
                    {
                        Assert.Fail();
                    }
                }

                try
                {
                    var participants = participantsRepo.GetMeetingParticipantsByMeetingId(ModelsMocks.MeetingModelFirst.ID).SingleOrDefault();
                    if (participants != null)
                    {
                        throw new Exception("Assert fails");
                    }
                }
                catch (Exception)
                {
                    Assert.Fail();
                }
            }
        }
コード例 #26
0
        public void EditPostNotLoggedUserTest()
        {
            ModelsMocks.CleanUpBeforeTest();
            // Arrange
            MeetingController controller = ControllersMocks.GetControllerAsNotLoggedUser <MeetingController>();

            // Act
            JsonResult action = controller.Edit(ModelsMocks.MeetingModelSecond,
                                                ModelsMocks.ProjectModelFirst.ID, ModelsMocks.TaskModelFirst.ID,
                                                ModelsMocks.MeetingModelFirst.ID) as JsonResult;

            var forbidden = (TaskVlopper.Models.JsonHttpViewModel)action.Data;

            Assert.AreEqual(403, forbidden.HttpCode);
        }
コード例 #27
0
ファイル: MeetingControllerTest.cs プロジェクト: rog1039/crux
        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());
        }
コード例 #28
0
ファイル: MeetingControllerTest.cs プロジェクト: rog1039/crux
        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());
        }
コード例 #29
0
        public void DeleteGetLoggedUserTest()
        {
            ModelsMocks.CleanUpBeforeTest();
            ModelsMocks.AddTestProject(true);
            ModelsMocks.AddTestTask(true, ModelsMocks.ProjectModelFirst);
            ModelsMocks.AddTestMeeting(true, ModelsMocks.MeetingModelFirst, ModelsMocks.TaskModelFirst);

            // Arrange
            MeetingController controller = ControllersMocks.GetControllerAsLoggedUser <MeetingController>();

            // Act
            JsonResult action = controller.Delete(ModelsMocks.ProjectModelFirst.ID,
                                                  ModelsMocks.TaskModelFirst.ID, ModelsMocks.MeetingModelFirst.ID) as JsonResult;

            var meeting = (Models.MeetingViewModel)action.Data;

            Assert.IsNotNull(meeting);
        }
コード例 #30
0
        public HttpResponseMessage Document(string docID)
        {
            Document d      = new DocumentController().GetDocumentByID(Convert.ToInt32(docID));
            Meeting  m      = new MeetingController().GetMeetingByID(d.MeetingID);
            string   result = "<!DOCTYPE html><html><head><title>" + m.DateString + " " + m.FormattedDescription + "</title></head><body onload=\"printPage()\">";

            result += "<h1>" + m.DateString + " " + m.MeetingGroup.GroupName + " " + m.MeetingType.TypeName + "</h1>";
            result += "<h3>" + d.DocumentGroup.GroupName + "</h3>";
            result += HttpUtility.HtmlDecode(d.Content);

            result += "<script> function printPage(){ window.print();}</script>";
            result += "</body></html>";

            return(new HttpResponseMessage()
            {
                Content = new StringContent(result, System.Text.Encoding.UTF8, "text/html")
            });
        }