Skip to content

Commit

Permalink
Merge branch 'master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
Paul-Hadfield authored Mar 6, 2018
2 parents 0f09773 + 1ddb59b commit f03f1d9
Show file tree
Hide file tree
Showing 78 changed files with 1,391 additions and 809 deletions.
5 changes: 5 additions & 0 deletions AllReadyApp/AllReady.IntegrationTest/Pages.fs
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,9 @@ module AdminCampaignDetails =
click createNew

module AdminOrganizationCreate =
let privicyPolicyFieldVisible () =
(elements "#pp-url").Length = 1

type OrganizationDetails = {
Name:string
WebUrl:string
Expand Down Expand Up @@ -125,6 +128,8 @@ module AdminOrganizationCreate =
"#Location_State" << details.State
"#Location_PostalCode" << details.PostalCode.ToString()
"#Location_Country" << details.Country
click "Link to an external policy"
waitFor privicyPolicyFieldVisible
"#PrivacyPolicyUrl" << details.PrivacyPolicyUrl

let Save _ =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,12 @@
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Reflection;
using System.Security.Claims;
using System.Threading.Tasks;
using AllReady.Areas.Admin.ViewModels.Validators;
using AllReady.UnitTest.Areas.Admin.Controllers.Builders;
using Xunit;
using ClaimTypes = AllReady.Security.ClaimTypes;

namespace AllReady.UnitTest.Areas.Admin.Controllers
{
Expand Down Expand Up @@ -115,6 +117,8 @@ public async Task DetailsReturnsCorrectViewModelWhenViewModelIsNotNullAndUserIsA
public void CreateReturnsCorrectViewWithCorrectViewModel()
{
var sut = CampaignAdminControllerBuilder.AllNullParamsInstance().Build();
sut.SetClaims(new List<Claim>());

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

var viewModel = (CampaignSummaryViewModel)view.ViewData.Model;
Expand All @@ -124,16 +128,34 @@ public void CreateReturnsCorrectViewWithCorrectViewModel()
}

[Fact]
public void CreateReturnsCorrectDataOnViewModel()
public void CreateReturnsCorrectDataOnViewModelWhenTimeZoneIdClaimNotSet()
{
var dateTimeNow = DateTime.Now;

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

Assert.Equal(viewModel.StartDate, dateTimeNow);
Assert.Equal(viewModel.EndDate, dateTimeNow.AddMonths(1));
Assert.Equal(viewModel.TimeZoneId, "UTC");
}
[Fact]
public void CreateReturnsCorrectDataOnViewModelWhenTimeZoneIdClaimSet()
{
var dateTimeNow = DateTime.Now;
var TimeZoneId = "GMT Standard Time";

var sut = CampaignAdminControllerBuilder.AllNullParamsInstance().WithToday(() => dateTimeNow).Build();
sut.SetClaims(new List<Claim>{new Claim(ClaimTypes.TimeZoneId, TimeZoneId) });

var sut = CampaignAdminControllerBuilder.AllNullParamsInstance().WithToday(() => dateTimeNow).Build();
var view = (ViewResult)sut.Create();
var viewModel = (CampaignSummaryViewModel)view.ViewData.Model;

Assert.Equal(viewModel.StartDate, dateTimeNow);
Assert.Equal(viewModel.EndDate, dateTimeNow.AddMonths(1));
Assert.Equal(viewModel.TimeZoneId, TimeZoneId);
}

[Fact]
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ public async void TestGoalCreateForWrongOrgAdminReturns401()
mockMediator.Setup(mock => mock.SendAsync(It.IsAny<CampaignSummaryQuery>()))
.ReturnsAsync(new CampaignSummaryViewModel())
.Verifiable();
mockMediator.Setup(x => x.SendAsync(It.IsAny<AuthorizableCampaignQuery>())).ReturnsAsync(new FakeAuthorizableCampaign(false, false, false, false));

var goalController = new GoalController(mockMediator.Object);

Expand All @@ -51,6 +52,7 @@ public async void TestGoalCreateForOrgAdmin()
mockMediator.Setup(mock => mock.SendAsync(It.IsAny<CampaignSummaryQuery>()))
.ReturnsAsync(new CampaignSummaryViewModel {Id = campaignId, OrganizationId = OrgAdminOrgId})
.Verifiable();
mockMediator.Setup(x => x.SendAsync(It.IsAny<AuthorizableCampaignQuery>())).ReturnsAsync(new FakeAuthorizableCampaign(false, true, false, false));

var goalController = new GoalController(mockMediator.Object);

Expand Down Expand Up @@ -79,6 +81,7 @@ public async void TestGoalCreateForSiteAdmin()
mockMediator.Setup(mock => mock.SendAsync(It.IsAny<CampaignSummaryQuery>()))
.ReturnsAsync(new CampaignSummaryViewModel {Id = campaignId, OrganizationId = OrgAdminOrgId})
.Verifiable();
mockMediator.Setup(x => x.SendAsync(It.IsAny<AuthorizableCampaignQuery>())).ReturnsAsync(new FakeAuthorizableCampaign(false, true, false, false));

var goalController = new GoalController(mockMediator.Object);

Expand Down Expand Up @@ -110,6 +113,7 @@ public async void TestGoalCreatePostForWrongOrgAdminReturns401()
mockMediator.Setup(mock => mock.SendAsync(It.IsAny<CampaignSummaryQuery>()))
.ReturnsAsync(new CampaignSummaryViewModel())
.Verifiable();
mockMediator.Setup(x => x.SendAsync(It.IsAny<AuthorizableCampaignQuery>())).ReturnsAsync(new FakeAuthorizableCampaign(false, false, false, false));

var goalController = new GoalController(mockMediator.Object);

Expand All @@ -132,6 +136,7 @@ public async void TestGoalCreatePostForSiteAdminWithValidModelStateReturnsRedire
mockMediator.Setup(mock => mock.SendAsync(It.IsAny<CampaignSummaryQuery>()))
.ReturnsAsync(new CampaignSummaryViewModel {Id = campaignId, OrganizationId = OrgAdminOrgId})
.Verifiable();
mockMediator.Setup(x => x.SendAsync(It.IsAny<AuthorizableCampaignQuery>())).ReturnsAsync(new FakeAuthorizableCampaign(false, true, false, false));

var goalController = new GoalController(mockMediator.Object);

Expand Down Expand Up @@ -163,6 +168,7 @@ public async void GoalCreatePostForOrgAdminWithValidModelStateReturnsRedirectToA
mockMediator.Setup(mock => mock.SendAsync(It.IsAny<CampaignSummaryQuery>()))
.ReturnsAsync(new CampaignSummaryViewModel {Id = campaignId, OrganizationId = OrgAdminOrgId})
.Verifiable();
mockMediator.Setup(x => x.SendAsync(It.IsAny<AuthorizableCampaignQuery>())).ReturnsAsync(new FakeAuthorizableCampaign(false, true, false, false));

var goalController = new GoalController(mockMediator.Object);

Expand Down Expand Up @@ -196,6 +202,8 @@ public async void TestGoalDeleteForWrongOrgAdminReturns401()
mockMediator.Setup(mock => mock.SendAsync(It.IsAny<GoalDeleteQuery>()))
.ReturnsAsync(new GoalDeleteViewModel {OwningOrganizationId = OrgAdminOrgId})
.Verifiable();
mockMediator.Setup(x => x.SendAsync(It.IsAny<AuthorizableCampaignQuery>())).ReturnsAsync(new FakeAuthorizableCampaign(false, false, false, false));

var goalController = new GoalController(mockMediator.Object);

var mockContext = MockControllerContextWithUser(OrgAdmin(654));
Expand All @@ -209,13 +217,14 @@ public async void TestGoalDeleteForWrongOrgAdminReturns401()
}

[Fact]
public async void TestGoalDeleteForOrgAdminForNonexistantGoalReturn401()
public async void TestGoalDeleteForOrgAdminForNonexistantGoalReturn404()
{
// Arrange
var mockMediator = new Mock<IMediator>();
mockMediator.Setup(mock => mock.SendAsync(It.IsAny<GoalDeleteQuery>()))
.ReturnsAsync((GoalDeleteViewModel)null)
.Verifiable();
mockMediator.Setup(x => x.SendAsync(It.IsAny<AuthorizableCampaignQuery>())).ReturnsAsync(new FakeAuthorizableCampaign(false, false, true, false));

var goalController = new GoalController(mockMediator.Object);

Expand All @@ -226,7 +235,7 @@ public async void TestGoalDeleteForOrgAdminForNonexistantGoalReturn401()
var result = await goalController.Delete(987);

// Assert
Assert.IsType<UnauthorizedResult>(result);
Assert.IsType<NotFoundResult>(result);
}

[Fact]
Expand All @@ -245,6 +254,7 @@ public async void TestGoalDeleteOrgAdminDisplaysConfirmationPage()
NumericGoal = 100
})
.Verifiable();
mockMediator.Setup(x => x.SendAsync(It.IsAny<AuthorizableCampaignQuery>())).ReturnsAsync(new FakeAuthorizableCampaign(false, false, true, false));

var goalController = new GoalController(mockMediator.Object);

Expand Down Expand Up @@ -279,6 +289,7 @@ public async void TestGoalDeleteSiteAdminDisplaysConfirmationPage()
NumericGoal = 100
})
.Verifiable();
mockMediator.Setup(x => x.SendAsync(It.IsAny<AuthorizableCampaignQuery>())).ReturnsAsync(new FakeAuthorizableCampaign(false, false, true, false));

var goalController = new GoalController(mockMediator.Object);

Expand Down Expand Up @@ -309,6 +320,8 @@ public async void TestGoalDeleteConfirmedForWrongOrgAdminReturns401()
mockMediator.Setup(mock => mock.SendAsync(It.IsAny<GoalDeleteQuery>()))
.ReturnsAsync(new GoalDeleteViewModel { OwningOrganizationId = OrgAdminOrgId})
.Verifiable();
mockMediator.Setup(x => x.SendAsync(It.IsAny<AuthorizableCampaignQuery>())).ReturnsAsync(new FakeAuthorizableCampaign(false, false, false, false));

var goalController = new GoalController(mockMediator.Object);

var mockContext = MockControllerContextWithUser(OrgAdmin(654));
Expand All @@ -322,7 +335,7 @@ public async void TestGoalDeleteConfirmedForWrongOrgAdminReturns401()
}

[Fact]
public async void TestGoalDeleteConfirmedForOrgAdminForNonexistantGoalReturn401()
public async void TestGoalDeleteConfirmedForOrgAdminForNonexistantGoalReturn404()
{
// Arrange
var mockMediator = new Mock<IMediator>();
Expand All @@ -339,7 +352,7 @@ public async void TestGoalDeleteConfirmedForOrgAdminForNonexistantGoalReturn401(
var result = await goalController.DeleteConfirmed(987);

// Assert
Assert.IsType<UnauthorizedResult>(result);
Assert.IsType<NotFoundResult>(result);
}

[Fact]
Expand All @@ -357,6 +370,7 @@ public async void TestGoalDeleteConfirmedOrgAdminRedirectToAction()
CampaignId = campaignId
})
.Verifiable();
mockMediator.Setup(x => x.SendAsync(It.IsAny<AuthorizableCampaignQuery>())).ReturnsAsync(new FakeAuthorizableCampaign(false, false, true, false));

var goalController = new GoalController(mockMediator.Object);

Expand Down Expand Up @@ -390,6 +404,7 @@ public async void TestGoalDeleteConfirmedSiteAdminRedirectToAction()
CampaignId = campaignId
})
.Verifiable();
mockMediator.Setup(x => x.SendAsync(It.IsAny<AuthorizableCampaignQuery>())).ReturnsAsync(new FakeAuthorizableCampaign(false, false, true, false));

var goalController = new GoalController(mockMediator.Object);

Expand Down Expand Up @@ -417,9 +432,10 @@ public async void TestGoalEditForWrongOrgAdminReturns401()
{
// Arrange
var mockMediator = new Mock<IMediator>();
mockMediator.Setup(mock => mock.SendAsync(It.IsAny<CampaignSummaryQuery>()))
.ReturnsAsync(new CampaignSummaryViewModel())
mockMediator.Setup(mock => mock.SendAsync(It.IsAny<GoalEditQuery>()))
.ReturnsAsync(new GoalEditViewModel(){OrganizationId = OrgAdminOrgId})
.Verifiable();
mockMediator.Setup(x => x.SendAsync(It.IsAny<AuthorizableCampaignQuery>())).ReturnsAsync(new FakeAuthorizableCampaign(false, false, false, false));

var goalController = new GoalController(mockMediator.Object);

Expand All @@ -434,7 +450,7 @@ public async void TestGoalEditForWrongOrgAdminReturns401()
}

[Fact]
public async void TestGoalEditForOrgAdminForNonexistantGoalReturnUnauthorizedResult()
public async void TestGoalEditForOrgAdminForNonexistantGoalReturn404()
{
// Arrange
var mockMediator = new Mock<IMediator>();
Expand All @@ -451,7 +467,7 @@ public async void TestGoalEditForOrgAdminForNonexistantGoalReturnUnauthorizedRes
var result = await goalController.Edit(987);

// Assert
Assert.IsType<UnauthorizedResult>(result);
Assert.IsType<NotFoundResult>(result);
}

[Fact]
Expand All @@ -469,6 +485,7 @@ public async void TestGoalEditForOrgAdmin()
OrganizationId = OrgAdminOrgId
})
.Verifiable();
mockMediator.Setup(x => x.SendAsync(It.IsAny<AuthorizableCampaignQuery>())).ReturnsAsync(new FakeAuthorizableCampaign(false, true, false, false));

var goalController = new GoalController(mockMediator.Object);

Expand Down Expand Up @@ -506,6 +523,7 @@ public async void TestGoalEditForSiteAdmin()
OrganizationId = OrgAdminOrgId
})
.Verifiable();
mockMediator.Setup(x => x.SendAsync(It.IsAny<AuthorizableCampaignQuery>())).ReturnsAsync(new FakeAuthorizableCampaign(false, true, false, false));

var goalController = new GoalController(mockMediator.Object);

Expand Down Expand Up @@ -575,6 +593,8 @@ public async void GoalEditPostForOrgAdminWithValidModelStateReturnsRedirectToAct
OrganizationId = OrgAdminOrgId
})
.Verifiable();
mockMediator.Setup(x => x.SendAsync(It.IsAny<AuthorizableCampaignQuery>())).ReturnsAsync(new FakeAuthorizableCampaign(false, true, false, false));

var goalController = new GoalController(mockMediator.Object);

var mockContext = MockControllerContextWithUser(OrgAdmin(OrgAdminOrgId));
Expand Down Expand Up @@ -611,6 +631,7 @@ public async void TestGoalEditPostForSiteAdminWithValidModelStateReturnsRedirect
OrganizationId = OrgAdminOrgId
})
.Verifiable();
mockMediator.Setup(x => x.SendAsync(It.IsAny<AuthorizableCampaignQuery>())).ReturnsAsync(new FakeAuthorizableCampaign(false, true, false, false));

var goalController = new GoalController(mockMediator.Object);

Expand Down Expand Up @@ -641,13 +662,15 @@ public async void TestGoalEditPostForWrongOrgAdminReturns401()
mockMediator.Setup(mock => mock.SendAsync(It.IsAny<GoalEditQuery>()))
.ReturnsAsync(new GoalEditViewModel())
.Verifiable();
mockMediator.Setup(x => x.SendAsync(It.IsAny<AuthorizableCampaignQuery>())).ReturnsAsync(new FakeAuthorizableCampaign(false, false, false, false));

var goalController = new GoalController(mockMediator.Object);

var mockContext = MockControllerContextWithUser(OrgAdmin(654));
goalController.ControllerContext = mockContext.Object;

// Act
var result = await goalController.Edit(456, new GoalEditViewModel());
var result = await goalController.Edit(456, new GoalEditViewModel(){Id = 456});

// Assert
Assert.IsType<UnauthorizedResult>(result);
Expand Down
Loading

0 comments on commit f03f1d9

Please sign in to comment.