public async Task DeleteReturnsHttpUnauthorizedResultWhenUserIsNotOrgAdmin()
        {
            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.SendAsync(It.IsAny <DeleteViewModelQuery>())).ReturnsAsync(new DeleteViewModel());

            var sut = new CampaignController(mediator.Object, null);

            sut.MakeUserNotAnOrgAdmin();

            Assert.IsType <UnauthorizedResult>(await sut.Delete(It.IsAny <int>()));
        }
Exemple #2
0
        public async Task PublishConfirmedReturnsForbiddResultWhenUserIsNotAuthorized()
        {
            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.SendAsync(It.IsAny <AuthorizableCampaignQuery>())).ReturnsAsync(new FakeAuthorizableCampaign(false, false, false, false));

            var sut = new CampaignController(mediator.Object, null);

            Assert.IsType <ForbidResult>(await sut.PublishConfirmed(new PublishViewModel {
                UserIsOrgAdmin = false
            }));
        }
        public async Task IndexSendsIndexQueryWithCorrectData_WhenUserIsOrgAdmin()
        {
            const int organizationId = 99;
            var       mockMediator   = new Mock <IMediator>();

            var sut = new CampaignController(mockMediator.Object, null);

            sut.MakeUserAnOrgAdmin(organizationId.ToString());
            await sut.Index();

            mockMediator.Verify(mock => mock.SendAsync(It.Is <IndexQuery>(q => q.OrganizationId == organizationId)));
        }
Exemple #4
0
        public async Task DetailConfirmedReturnsForbidResultWhenUserIsNotAuthorized()
        {
            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.SendAsync(It.IsAny <AllReady.Areas.Admin.Features.Organizations.AuthorizableOrganizationQuery>())).ReturnsAsync(new FakeAuthorizableOrganization(false, false, false, false));

            var sut = new CampaignController(mediator.Object, null);

            Assert.IsType <ForbidResult>(await sut.DeleteConfirmed(new DeleteViewModel {
                UserIsOrgAdmin = false
            }));
        }
        public void CreateReturnsCorrectViewWithCorrectViewModel()
        {
            var sut = new CampaignController(null, null);

            sut.SetClaims(new List <Claim>());

            var view = (ViewResult)sut.Create();

            var viewModel = (CampaignSummaryViewModel)view.ViewData.Model;

            Assert.Equal("Edit", view.ViewName);
            Assert.NotNull(viewModel);
        }
Exemple #6
0
        public async Task LockUnlockSendsLockUnlockCampaignCommandWithCorrectCampaignIdWhenUserIsSiteAdmin()
        {
            const int campaignId   = 99;
            var       mockMediator = new Mock <IMediator>();

            var sut = new CampaignController(mockMediator.Object, null);

            sut.MakeUserASiteAdmin();

            await sut.LockUnlock(campaignId);

            mockMediator.Verify(mock => mock.SendAsync(It.Is <LockUnlockCampaignCommand>(q => q.CampaignId == campaignId)), Times.Once);
        }
Exemple #7
0
        public async Task EditGetReturnsCorrectViewModelWhenUserIsAuthorized()
        {
            var mediator = new Mock <IMediator>();

            mediator.Setup(mock => mock.SendAsync(It.IsAny <CampaignSummaryQuery>())).ReturnsAsync(new CampaignSummaryViewModel()).Verifiable();
            mediator.Setup(x => x.SendAsync(It.IsAny <AuthorizableCampaignQuery>())).ReturnsAsync(new FakeAuthorizableCampaign(true, false, false, false));

            var mockImageService = new Mock <IImageService>();

            var sut = new CampaignController(mediator.Object, mockImageService.Object);

            Assert.IsType <ViewResult>(await sut.Edit(It.IsAny <int>()));
        }
Exemple #8
0
        public async Task DeleteCampaignSendsTheCorrectIdToCampaignSummaryQuery()
        {
            var mediatorMock     = new Mock <IMediator>();
            var imageServiceMock = new Mock <IImageService>();
            var sut = new CampaignController(mediatorMock.Object, imageServiceMock.Object);

            const int campaignId = 2;

            await sut.DeleteCampaignImage(campaignId);

            mediatorMock.Verify(m => m.SendAsync(It.IsAny <CampaignSummaryQuery>()), Times.Once);
            mediatorMock.Verify(m => m.SendAsync(It.Is <CampaignSummaryQuery>(s => s.CampaignId == campaignId)));
        }
        public async Task EditGetSendsCampaignSummaryQueryWithCorrectCampaignId()
        {
            int CAMPAIGN_ID = 100;
            var mockMediator = new Mock<IMediator>();

            // model is not null
            mockMediator.Setup(mock => mock.SendAsync(It.Is<CampaignSummaryQuery>(c => c.CampaignId == CAMPAIGN_ID))).ReturnsAsync(new CampaignSummaryModel { Id = CAMPAIGN_ID });

            CampaignController controller = new CampaignController(mockMediator.Object, null);
            controller.SetClaims(new List<Claim>()); // create a User for the controller
            var view = await controller.Edit(CAMPAIGN_ID);
            mockMediator.Verify(mock => mock.SendAsync(It.Is<CampaignSummaryQuery>(c => c.CampaignId == CAMPAIGN_ID)));
        }
Exemple #10
0
        public async Task PublishConfirmedSendsPublishCampaignCommandWithCorrectCampaignId()
        {
            var viewModel = new PublishViewModel {
                Id = 1
            };

            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.SendAsync(It.IsAny <AuthorizableCampaignQuery>())).ReturnsAsync(new FakeAuthorizableCampaign(false, true, false, false, 1));
            var sut = new CampaignController(mediator.Object, null);
            await sut.PublishConfirmed(viewModel);

            mediator.Verify(mock => mock.SendAsync(It.Is <PublishCampaignCommand>(i => i.CampaignId == viewModel.Id)), Times.Once);
        }
Exemple #11
0
        public void CreateReturnsCorrectDataOnViewModel()
        {
            var dateTimeNow = DateTime.Now;

            var sut = new CampaignController(null, null)
            {
                DateTimeNow = () => dateTimeNow
            };
            var view      = (ViewResult)sut.Create();
            var viewModel = (CampaignSummaryViewModel)view.ViewData.Model;

            Assert.Equal(viewModel.StartDate, dateTimeNow);
            Assert.Equal(viewModel.EndDate, dateTimeNow.AddMonths(1));
        }
        public void IndexSendsCampaignListQueryWithCorrectDataWhenUserIsNotOrgAdmin()
        {
            var mockMediator = new Mock<IMediator>();
            CampaignController controller = new CampaignController(mockMediator.Object, null);
            List<Claim> claims = new List<Claim>
            {
                new Claim(AllReady.Security.ClaimTypes.UserType, UserType.OrgAdmin.ToString()),
            };
            controller.SetClaims(claims);

            controller.Index();

            mockMediator.Verify(mock => mock.Send(It.Is<CampaignListQuery>(q => q.OrganizationId == null)));
        }
Exemple #13
0
        public async Task DeleteConfirmedSendsDeleteCampaignCommandWithCorrectCampaignId()
        {
            int id       = 1;
            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.SendAsync(It.IsAny <CampaignSummaryQuery>())).ReturnsAsync(new CampaignSummaryViewModel {
                Id = id, OrganizationId = 100
            });
            mediator.Setup(x => x.SendAsync(It.IsAny <AllReady.Areas.Admin.Features.Organizations.AuthorizableOrganizationQuery>())).ReturnsAsync(new FakeAuthorizableOrganization(false, false, true, false, 1));
            var sut = new CampaignController(mediator.Object, null);
            await sut.DeleteConfirmed(id);

            mediator.Verify(mock => mock.SendAsync(It.Is <DeleteCampaignCommand>(i => i.CampaignId == id)), Times.Once);
        }
        public async Task DetailsSendsCampaignDetailQueryWithCorrectCampaignId()
        {
            int CAMPAIGN_ID = 100;
            int ORGANIZATION_ID = 99;
            var mockMediator = new Mock<IMediator>();

            // model is not null
            mockMediator.Setup(mock => mock.SendAsync(It.Is<CampaignDetailQuery>(c => c.CampaignId == CAMPAIGN_ID))).ReturnsAsync(new CampaignDetailModel { OrganizationId = ORGANIZATION_ID, Id = CAMPAIGN_ID }).Verifiable();

            CampaignController controller = new CampaignController(mockMediator.Object, null);
            controller.SetClaims(new List<Claim>()); // create a User for the controller
            var view = await controller.Details(CAMPAIGN_ID);
            mockMediator.Verify(mock => mock.SendAsync(It.Is<CampaignDetailQuery>(c => c.CampaignId == CAMPAIGN_ID)));
        }
        private static CampaignController CampaignControllerWithDetailQuery(string userType, int organizationId)
        {
            var mockMediator = new Mock<IMediator>();
            mockMediator.Setup(mock => mock.SendAsync(It.IsAny<CampaignDetailQuery>())).ReturnsAsync(new CampaignDetailModel { OrganizationId = organizationId }).Verifiable();

            var controller = new CampaignController(mockMediator.Object, null);
            controller.SetClaims(new List<Claim>
            {
                new Claim(AllReady.Security.ClaimTypes.UserType, userType),
                new Claim(AllReady.Security.ClaimTypes.Organization, organizationId.ToString())
            });

            return controller;
        }
 public void CampaignControllerCreation()
 {
     try
     {
         var http   = new HttpClient();
         var con    = new ConfigurationBuilder();
         var config = con.Build();
         var cont   = new CampaignController(http, config);
         Assert.True(true);
     }
     catch
     {
         return;
     }
 }
 public async Task DeleteSendsCampaignSummaryQueryWithCorrectCampaignId()
 {
     int ORGANIZATION_ID = 99;
     int CAMPAIGN_ID = 100;
     var mockMediator = new Mock<IMediator>();
     mockMediator.Setup(mock => mock.SendAsync(It.Is<CampaignSummaryQuery>(c => c.CampaignId == CAMPAIGN_ID))).ReturnsAsync(new CampaignSummaryModel { Id = CAMPAIGN_ID, OrganizationId = ORGANIZATION_ID });
     CampaignController controller = new CampaignController(mockMediator.Object, null);
     controller.SetClaims(new List<Claim>
     {
         new Claim(AllReady.Security.ClaimTypes.UserType, UserType.OrgAdmin.ToString()),
         new Claim(AllReady.Security.ClaimTypes.Organization, ORGANIZATION_ID.ToString())
     });
     ViewResult view = (ViewResult)(await controller.Delete(CAMPAIGN_ID));
     mockMediator.Verify(mock => mock.SendAsync(It.Is<CampaignSummaryQuery>(c => c.CampaignId == CAMPAIGN_ID)), Times.Once);
 }
Exemple #18
0
        public async Task LockUnlockSendsLockUnlockCampaignCommandWithCorrectCampaignIdWhenUserIsSiteAdmin()
        {
            int CAMPAIGN_ID  = 99;
            var mockMediator = new Mock <IMediator>();
            CampaignController controller = new CampaignController(mockMediator.Object, null);
            List <Claim>       claims     = new List <Claim> {
                new Claim(AllReady.Security.ClaimTypes.UserType, UserType.SiteAdmin.ToString())
            };

            controller.SetClaims(claims);

            await controller.LockUnlock(CAMPAIGN_ID);

            mockMediator.Verify(mock => mock.SendAsync(It.Is <LockUnlockCampaignCommand>(q => q.CampaignId == CAMPAIGN_ID)), Times.Once);
        }
Exemple #19
0
        public async Task DeleteReturnsCorrectViewWhenUserIsOrgAdmin()
        {
            const int organizationId = 1;

            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.SendAsync(It.IsAny <DeleteViewModelQuery>())).ReturnsAsync(new DeleteViewModel {
                OrganizationId = organizationId
            });
            mediator.Setup(x => x.SendAsync(It.IsAny <AllReady.Areas.Admin.Features.Organizations.AuthorizableOrganizationQuery>())).ReturnsAsync(new FakeAuthorizableOrganization(false, false, true, false));

            var sut = new CampaignController(mediator.Object, null);

            Assert.IsType <ViewResult>(await sut.Delete(It.IsAny <int>()));
        }
Exemple #20
0
        public async Task LockUnlockRedirectsToCorrectActionWithCorrectRouteValuesWhenUserIsSiteAdmin()
        {
            const int campaignId   = 100;
            var       mockMediator = new Mock <IMediator>();

            var sut = new CampaignController(mockMediator.Object, null);

            sut.MakeUserASiteAdmin();

            var view = (RedirectToActionResult)await sut.LockUnlock(campaignId);

            // verify the next route
            Assert.Equal(nameof(CampaignController.Details), view.ActionName);
            Assert.Equal("Admin", view.RouteValues["area"]);
            Assert.Equal(view.RouteValues["id"], campaignId);
        }
Exemple #21
0
        public async Task DeleteReturnsCorrectViewWhenUserIsOrgAdmin()
        {
            const int organizationId = 1;

            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.SendAsync(It.IsAny <DeleteViewModelQuery>())).ReturnsAsync(new DeleteViewModel {
                OrganizationId = organizationId
            });

            var sut = new CampaignController(mediator.Object, null);

            sut.MakeUserAnOrgAdmin(organizationId.ToString());

            Assert.IsType <ViewResult>(await sut.Delete(It.IsAny <int>()));
        }
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        static void Main(string[] args)
        {
            if (MessageBox.Show("Schachbrett?", "", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes)
            {
                Program.m_objCampaign = new CampaignController(new CampaignEngine(new Field_Schachbrett(5, 5)));
            }
            else
            {
                Program.m_objCampaign = new CampaignController(new CampaignEngine(new Field_Schlauch(8)));
            }

            using (clsProtoClient game = new clsProtoClient())
            {
                game.Run();
            }
        }
Exemple #23
0
        public async Task DeleteCampaignImageReturnsJsonObjectWithStatusOfUnauthorizedIfUserIsNotAuthorized()
        {
            var mediatorMock = new Mock <IMediator>();

            mediatorMock.Setup(m => m.SendAsync(It.IsAny <CampaignSummaryQuery>())).ReturnsAsync(new CampaignSummaryViewModel());
            mediatorMock.Setup(x => x.SendAsync(It.IsAny <AuthorizableCampaignQuery>())).ReturnsAsync(new FakeAuthorizableCampaign(false, false, false, false));
            var imageServiceMock = new Mock <IImageService>();
            var sut = new CampaignController(mediatorMock.Object, imageServiceMock.Object);

            var result = await sut.DeleteCampaignImage(It.IsAny <int>());

            result.Value.GetType()
            .GetProperty("status")
            .GetValue(result.Value)
            .ShouldBe("Unauthorized");
        }
Exemple #24
0
        public async Task EditPostAddsCorrectKeyAndErrorMessageToModelStateWhenCampaignEndDateIsLessThanCampainStartDate_WhenCampaignIdIsZero()
        {
            var campaignSummaryModel = new CampaignSummaryViewModel {
                OrganizationId = 1, StartDate = DateTime.Now.AddDays(1), EndDate = DateTime.Now.AddDays(-1)
            };

            var sut = new CampaignController(null, null);

            sut.MakeUserAnOrgAdmin(campaignSummaryModel.OrganizationId.ToString());

            await sut.Edit(campaignSummaryModel, null);

            var modelStateErrorCollection = sut.ModelState.GetErrorMessagesByKey(nameof(CampaignSummaryViewModel.EndDate));

            Assert.Equal("The end date must fall on or after the start date.", modelStateErrorCollection.Single().ErrorMessage);
        }
Exemple #25
0
        public async Task PublishReturnsCorrectViewWhenUserIsAuthorized()
        {
            const int campaignId = 100;
            var       viewModel  = new PublishViewModel {
                Id = campaignId
            };

            var mediator = new Mock <IMediator>();

            mediator.Setup(mock => mock.SendAsync(It.Is <PublishViewModelQuery>(c => c.CampaignId == campaignId))).ReturnsAsync(viewModel);
            mediator.Setup(x => x.SendAsync(It.IsAny <AuthorizableCampaignQuery>())).ReturnsAsync(new FakeAuthorizableCampaign(true, false, false, false));

            var sut = new CampaignController(mediator.Object, null);

            Assert.IsType <ViewResult>(await sut.Publish(campaignId));
        }
        public async Task DeleteConfirmedSendsDeleteCampaignCommandWithCorrectCampaignId()
        {
            var viewModel = new DeleteViewModel {
                Id = 1, OrganizationId = 1
            };

            var mediator = new Mock <IMediator>();

            mediator.Setup(a => a.SendAsync(It.IsAny <DeleteCampaignCommand>())).Verifiable();
            var sut = new CampaignController(mediator.Object, null);

            sut.MakeUserAnOrgAdmin(viewModel.OrganizationId.ToString());
            await sut.DeleteConfirmed(viewModel);

            mediator.Verify(mock => mock.SendAsync(It.Is <DeleteCampaignCommand>(i => i.CampaignId == viewModel.Id)), Times.Once);
        }
        public async Task EditPostAddsCorrectKeyAndErrorMessageToModelStateWhenCampaignEndDateIsLessThanCampainStartDate()
        {
            var campaignSummaryModel = new CampaignSummaryModel { OrganizationId = 1, StartDate = DateTime.Now.AddDays(1), EndDate = DateTime.Now.AddDays(-1)};

            var sut = new CampaignController(null, null);
            sut.SetClaims(new List<Claim>
            {
                new Claim(AllReady.Security.ClaimTypes.UserType, UserType.OrgAdmin.ToString()),
                new Claim(AllReady.Security.ClaimTypes.Organization, campaignSummaryModel.OrganizationId.ToString())
            });

            await sut.Edit(campaignSummaryModel, null);
            var modelStateErrorCollection = sut.ModelState.GetErrorMessagesByKey(nameof(CampaignSummaryModel.EndDate));

            Assert.Equal(modelStateErrorCollection.Single().ErrorMessage, "The end date must fall on or after the start date.");
        }
Exemple #28
0
        public void CampaignControllerWithExceptionTest()
        {
            // Add one controller that will throw a not implemented exception
            List <IController> controllerList = new List <IController> {
                _testControllerWithException
            };

            try
            {
                var controller = new CampaignController(controllerList, _campaignServiceProvider.GetService <ILoggerClient>());
            }
            catch (Exception ex)
            {
                Assert.AreEqual(typeof(NotImplementedException), ex.GetType());
            }
        }
        public async Task DetailConfirmedSendsDeleteCampaignCommandWithCorrectCampaignIdWhenUserIsAuthorized()
        {
            var mockMediator = new Mock <IMediator>();

            mockMediator.Setup(x => x.SendAsync(It.IsAny <AllReady.Areas.Admin.Features.Organizations.AuthorizableOrganizationQuery>())).ReturnsAsync(new FakeAuthorizableOrganization(false, false, true, false));

            var viewModel = new DeleteViewModel {
                Id = 100, UserIsOrgAdmin = true
            };

            var sut = new CampaignController(mockMediator.Object, null);

            await sut.DeleteConfirmed(viewModel);

            mockMediator.Verify(mock => mock.SendAsync(It.Is <DeleteCampaignCommand>(i => i.CampaignId == viewModel.Id)), Times.Once);
        }
 public async Task DeleteReturnsCorrectViewModelWhenUserIsOrgAdmin()
 {
     int ORGANIZATION_ID = 99;
     int CAMPAIGN_ID = 100;
     var mockMediator = new Mock<IMediator>();
     mockMediator.Setup(mock => mock.SendAsync(It.Is<CampaignSummaryQuery>(c => c.CampaignId == CAMPAIGN_ID))).ReturnsAsync(new CampaignSummaryModel { Id = CAMPAIGN_ID, OrganizationId = ORGANIZATION_ID });
     CampaignController controller = new CampaignController(mockMediator.Object, null);
     controller.SetClaims(new List<Claim>
     {
         new Claim(AllReady.Security.ClaimTypes.UserType, UserType.OrgAdmin.ToString()),
         new Claim(AllReady.Security.ClaimTypes.Organization, ORGANIZATION_ID.ToString())
     });
     ViewResult view = (ViewResult)(await controller.Delete(CAMPAIGN_ID));
     CampaignSummaryModel viewModel = (CampaignSummaryModel)view.ViewData.Model;
     Assert.Equal(viewModel.Id, CAMPAIGN_ID);
 }