public async void お知らせ更新時無効な値の場合再表示()
        {
            // Arrange
            var viewModel = new EditViewModel()
            {
                AnnouncementId    = 100000,
                AnnouncementTitle = "お知らせタイトル",
                Body = "本文",
                SelectedAnnouncementGenre = "1",
                EndDate    = new DateTime?(new DateTime(2020, 5, 1)),
                UploadFile = null
            };

            var mockUseCase = new Mock <IAnnouncementUseCase>();
            var controller  = new AnnouncementsController(mockUseCase.Object);

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

            // Act
            var result = await controller.Edit(viewModel);

            // Arrange
            var viewResult = Assert.IsType <ViewResult>(result);

            Assert.Null(viewResult.ViewName);
            var model = Assert.IsType <EditViewModel>(viewResult.ViewData.Model);

            Assert.Equal(viewModel.AnnouncementId, model.AnnouncementId);
            Assert.Equal(viewModel.AnnouncementTitle, model.AnnouncementTitle);
            Assert.Equal(viewModel.Body, model.Body);
            Assert.Equal(viewModel.SelectedAnnouncementGenre, model.SelectedAnnouncementGenre);
            Assert.Equal(viewModel.EndDate, model.EndDate);
            Assert.Equal(viewModel.UploadFile, model.UploadFile);
        }
        public async void 存在しないページ数の場合空のお知らせとページングは最終ページを表示()
        {
            // Arrange
            var pageIndex    = 100;
            var displayCount = 30;
            var mockUseCase  = new Mock <IAnnouncementUseCase>();
            var annoucements = new List <Announcement>()
            {
            };
            var pagable = new Pagable <Announcement>(annoucements, pageIndex, 3, displayCount);

            mockUseCase.Setup(m => m.GetAnnouncements(pageIndex, displayCount))
            .ReturnsAsync(pagable)
            .Verifiable();
            var controller = new AnnouncementsController(mockUseCase.Object);

            // Act
            var result = await controller.Index(pageIndex);

            // Assert
            mockUseCase.Verify();
            var viewResult = Assert.IsType <ViewResult>(result);
            var model      = Assert.IsAssignableFrom <IndexViewModel>(viewResult.ViewData.Model);

            Assert.Equal(0, model.Annoucements.PageIndex);
            Assert.Empty(model.Annoucements);
        }
        public async void 添付ファイル無しのお知らせを更新()
        {
            // Arrange
            var viewModel = new EditViewModel()
            {
                AnnouncementId    = 100000,
                AnnouncementTitle = "お知らせタイトル",
                Body = "本文",
                SelectedAnnouncementGenre = "1",
                EndDate    = new DateTime?(new DateTime(2020, 5, 1)),
                UploadFile = null
            };

            var updateViewModel = new EditViewModel()
            {
                AnnouncementId    = 100000,
                AnnouncementTitle = "お知らせタイトル",
                Body = "本文",
                SelectedAnnouncementGenre = "1",
                RegisteredDate            = new DateTime(2020, 4, 1),
                EndDate    = new DateTime?(new DateTime(2020, 5, 1)),
                UploadFile = null
            };

            var id           = 100000;
            var announcement = new Announcement(
                new AnnouncementTitle("お知らせタイトル"),
                "本文",
                AnnouncementGenre.News,
                new RegisteredDate(new DateTime(2020, 4, 1)),
                new EndDate(new DateTime(2020, 5, 1)),
                attachedFilePath: null);

            announcement.Id = id;

            var mockUseCase = new Mock <IAnnouncementUseCase>();

            mockUseCase.Setup(m => m.UpdateAnnouncement(100000, "お知らせタイトル", "本文", AnnouncementGenre.News.Id, new DateTime(2020, 5, 1), null, null))
            .ReturnsAsync(announcement)
            .Verifiable();

            var controller = new AnnouncementsController(mockUseCase.Object);

            // Act
            var result = await controller.Edit(viewModel);

            // Assert
            mockUseCase.Verify();
            var viewResulut = Assert.IsType <ViewResult>(result);
            var model       = Assert.IsType <EditViewModel>(viewResulut.Model);

            Assert.Null(viewResulut.ViewName);
            Assert.Equal(updateViewModel.AnnouncementId, model.AnnouncementId);
            Assert.Equal(updateViewModel.AnnouncementTitle, model.AnnouncementTitle);
            Assert.Equal(updateViewModel.Body, model.Body);
            Assert.Equal("1", model.SelectedAnnouncementGenre);
            Assert.Equal(updateViewModel.RegisteredDate, model.RegisteredDate);
            Assert.Equal(updateViewModel.EndDate, model.EndDate);
            Assert.Equal(updateViewModel.UploadFile, model.UploadFile);
        }
        public void TestPutAnnouncement()
        {
            Announcement a = new Announcement()
            {
                AnnouncementId = 1,
                Title          = "Announcement1",
                Body           = "Body1",
                Deleted        = false,
                Image          = null
            };


            var mockAnnouncementValidator = new Mock <IAnnouncementValidator>();

            mockAnnouncementValidator.Setup(x => x.PutAnnouncement(1, a)).Returns(a);
            mockAnnouncementValidator.Setup(x => x.secure(null)).Verifiable();
            mockAnnouncementValidator.Setup(x => x.AtmSecure(null)).Verifiable();

            var controller        = new AnnouncementsController(mockAnnouncementValidator.Object);
            var controllerContext = new HttpControllerContext();
            var request           = new HttpRequestMessage();

            request.Headers.Add("TODO_PAGOS_TOKEN", "1");
            controllerContext.Request    = request;
            controller.ControllerContext = controllerContext;

            IHttpActionResult actionResult = controller.PutAnnouncement(1, a);
            var contentResult = actionResult as OkNegotiatedContentResult <IEnumerable <Announcement> >;

            Assert.IsNotNull(actionResult);
        }
        public async void 添付ファイルを削除()
        {
            // Arrange
            var announcementId = "100000";
            var id             = int.Parse(announcementId);
            var mockUseCase    = new Mock <IAnnouncementUseCase>();
            var controller     = new AnnouncementsController(mockUseCase.Object);

            // Act
            await controller.PostDeleteAttachedFile(announcementId);

            mockUseCase.Verify(m => m.DeleteAttachedFile(id), Times.Once());
        }
示例#6
0
        private void potvrdiBtn_Click(object sender, RoutedEventArgs e)
        {
            if (AnnouncementsController.getInstance().getAnnouncements().Contains(Announcement))
            {
                Announcement.Text = announcementsTxt.Text;
                //ParentWindow.announcementsList.Items.Refresh();
                return;
            }
            Announcement announcement = new Announcement(announcementsTxt.Text);

            AnnouncementsController.getInstance().addAnnouncement(announcement);
            MainPatientManagement.Instance.MainFrame.Content = new AnnouncementsPage();
        }
        public async void お知らせ一覧を表示()
        {
            // Arrange
            var pageIndex    = 0;
            var displayCount = 30;
            var mockUseCase  = new Mock <IAnnouncementUseCase>();
            var annoucements = new List <Announcement>()
            {
                new Announcement(
                    new AnnouncementTitle("お知らせタイトル"),
                    "本文",
                    AnnouncementGenre.News,
                    new RegisteredDate(new DateTime(2020, 4, 1)),
                    new EndDate(new DateTime(2020, 5, 1)),
                    attachedFilePath: null),

                new Announcement(
                    new AnnouncementTitle("お知らせタイトル2"),
                    "本文",
                    AnnouncementGenre.News,
                    new RegisteredDate(new DateTime(2020, 4, 1)),
                    new EndDate(new DateTime(2020, 5, 1)),
                    attachedFilePath: null),

                new Announcement(
                    new AnnouncementTitle("お知らせタイトル3"),
                    "本文",
                    AnnouncementGenre.News,
                    new RegisteredDate(new DateTime(2020, 4, 1)),
                    new EndDate(new DateTime(2020, 5, 1)),
                    attachedFilePath: null)
            };

            var pagable = new Pagable <Announcement>(annoucements, pageIndex, 3, displayCount);

            mockUseCase.Setup(m => m.GetAnnouncements(pageIndex, displayCount))
            .ReturnsAsync(pagable)
            .Verifiable();
            var controller = new AnnouncementsController(mockUseCase.Object);

            // Act
            var result = await controller.Index(pageIndex);

            // Assert
            mockUseCase.Verify();
            var viewResult = Assert.IsType <ViewResult>(result);
            var model      = Assert.IsAssignableFrom <IndexViewModel>(viewResult.ViewData.Model);

            Assert.Equal(0, model.Annoucements.PageIndex);
            Assert.Equal(3, model.Annoucements.Count);
        }
        public void お知らせ登録画面を表示()
        {
            // Arrange
            var mockUseCase = new Mock <IAnnouncementUseCase>();
            var controller  = new AnnouncementsController(mockUseCase.Object);

            // Act
            var result = controller.Register();

            // Assert
            var viewResult = Assert.IsType <ViewResult>(result);

            Assert.IsAssignableFrom <RegisterViewModel>(viewResult.ViewData.Model);
        }
        public async void 添付ファイル有りのお知らせを登録()
        {
            // Arrange
            var mockStream    = new Mock <Stream>();
            var mockIFormFile = new Mock <IFormFile>();

            mockIFormFile.Setup(f => f.OpenReadStream())
            .Returns(mockStream.Object)
            .Verifiable();
            mockIFormFile.Setup(f => f.FileName)
            .Returns("FileName")
            .Verifiable();
            var viewModel = new RegisterViewModel()
            {
                AnnouncementTitle = "お知らせタイトル",
                Body = "本文",
                SelectedAnnouncementGenre = "1",
                EndDate    = new DateTime(2020, 5, 1),
                UploadFile = mockIFormFile.Object
            };

            var id           = 100000;
            var announcement = new Announcement(
                new AnnouncementTitle("お知らせタイトル"),
                "本文",
                AnnouncementGenre.News,
                new RegisteredDate(new DateTime(2020, 4, 1)),
                new EndDate(new DateTime(2020, 5, 1)),
                new AttachedFilePath("/attached/filePath"));

            announcement.Id = id;
            var mockUseCase = new Mock <IAnnouncementUseCase>();

            mockUseCase.Setup(m => m.RegisterAnnouncement("お知らせタイトル", "本文", AnnouncementGenre.News.Id, new DateTime(2020, 5, 1), "FileName", mockStream.Object))
            .ReturnsAsync(announcement)
            .Verifiable();
            var controller = new AnnouncementsController(mockUseCase.Object);

            // Act
            var result = await controller.Register(viewModel);

            // Assert
            mockIFormFile.Verify();
            mockUseCase.Verify();
            var redirectToActionResult = Assert.IsType <RedirectToActionResult>(result);

            Assert.Null(redirectToActionResult.ControllerName);
            Assert.Equal(nameof(controller.Edit), redirectToActionResult.ActionName);
        }
        public async void お知らせを削除()
        {
            // Arrange
            var id          = 100000;
            var mockUseCase = new Mock <IAnnouncementUseCase>();
            var controller  = new AnnouncementsController(mockUseCase.Object);

            // Act
            var result = await controller.Delete(id);

            // Assert
            mockUseCase.Verify(m => m.DeleteAnnouncement(id), Times.Once());
            var redirectToActionResult = Assert.IsType <RedirectToActionResult>(result);

            Assert.Null(redirectToActionResult.ControllerName);
            Assert.Equal(nameof(controller.Index), redirectToActionResult.ActionName);
        }
        //[ExpectedException(typeof(Exception))]
        public void TestGetAnnouncements()
        {
            var allAnnouncements = new[]
            {
                new Announcement()
                {
                    AnnouncementId = 1,
                    Title          = "Announcement1",
                    Body           = "Body1",
                    Deleted        = false,
                    Image          = null
                },
                new Announcement()
                {
                    AnnouncementId = 2,
                    Title          = "Announcement2",
                    Body           = "Body2",
                    Deleted        = false,
                    Image          = null
                },
            };

            var mockAnnouncementValidator = new Mock <IAnnouncementValidator>();

            mockAnnouncementValidator.Setup(x => x.GetAnnouncements()).Returns(allAnnouncements);

            var controller = new AnnouncementsController(mockAnnouncementValidator.Object);

            // Arrange
            var controllerContext = new HttpControllerContext();
            var request           = new HttpRequestMessage();

            request.Headers.Add("TODO_PAGOS_TOKEN", "1");

            // Don't forget these lines, if you do then the request will be null.
            controllerContext.Request    = request;
            controller.ControllerContext = controllerContext;

            IHttpActionResult actionResult = controller.GetAnnouncements();
            //throw new Exception(actionResult.GetType().ToString());
            var contentResult = actionResult as OkNegotiatedContentResult <IEnumerable <Announcement> >;

            Assert.IsNotNull(contentResult);
        }
        public async void お知らせ編集画面表示()
        {
            // Arrange
            var id           = 100000;
            var announcement = new Announcement(
                new AnnouncementTitle("お知らせタイトル"),
                "本文",
                AnnouncementGenre.News,
                new RegisteredDate(new DateTime(2020, 4, 1)),
                new EndDate(new DateTime(2020, 5, 1)),
                attachedFilePath: null);

            announcement.Id = id;

            var mockUseCase = new Mock <IAnnouncementUseCase>();

            mockUseCase.Setup(m => m.GetAnnouncement(id))
            .ReturnsAsync(announcement)
            .Verifiable();
            var controller = new AnnouncementsController(mockUseCase.Object);

            // Act
            var result = await controller.Edit(id);

            // Assert
            mockUseCase.Verify();
            var viewResult = Assert.IsType <ViewResult>(result);

            Assert.Null(viewResult.ViewName);
            var model = Assert.IsType <EditViewModel>(viewResult.ViewData.Model);

            Assert.Equal(id, model.AnnouncementId);
            Assert.Equal("お知らせタイトル", model.AnnouncementTitle);
            Assert.Equal("本文", model.Body);
            Assert.Equal("1", model.SelectedAnnouncementGenre);
            Assert.Equal(new DateTime(2020, 4, 1), model.RegisteredDate);
            Assert.Equal(new DateTime(2020, 5, 1), model.EndDate);
            Assert.Null(model.AttachedFilePath);
        }
 public void SetUp()
 {
     _announcementServiceMock = new Mock <IAnnouncementService>();
     _announcementsController = new AnnouncementsController(_announcementServiceMock.Object);;
 }
 private void DeleteBtn_Click(object sender, RoutedEventArgs e)
 {
     AnnouncementsController.getInstance().getAnnouncements().Remove((Announcement)announcementsList.SelectedItem);
     announcementsList.Items.Refresh();
 }
 public AnnouncementsPage()
 {
     InitializeComponent();
     announcementsList.ItemsSource = AnnouncementsController.getInstance().getAnnouncements();
 }