From 06aaa9718fdfda8e34cf36f699903bad0ef7d2e8 Mon Sep 17 00:00:00 2001 From: Shannon Date: Mon, 29 May 2017 17:25:44 +0200 Subject: [PATCH] fixes test --- src/Umbraco.Tests/Umbraco.Tests.csproj | 3 +++ .../Web/Controllers/UsersControllerTests.cs | 18 ++++++++++--- src/Umbraco.Tests/packages.config | 1 + .../UmbracoAuthorizedJsonController.cs | 5 ++++ src/Umbraco.Web/Editors/UsersController.cs | 25 ++++++++----------- .../WebApi/UmbracoAuthorizedApiController.cs | 7 ++++++ 6 files changed, 40 insertions(+), 19 deletions(-) diff --git a/src/Umbraco.Tests/Umbraco.Tests.csproj b/src/Umbraco.Tests/Umbraco.Tests.csproj index 7d5dcc0fd5..34f736f964 100644 --- a/src/Umbraco.Tests/Umbraco.Tests.csproj +++ b/src/Umbraco.Tests/Umbraco.Tests.csproj @@ -76,6 +76,9 @@ ..\packages\Lucene.Net.2.9.4.1\lib\net40\Lucene.Net.dll + + ..\packages\Microsoft.AspNet.Identity.Core.2.2.1\lib\net45\Microsoft.AspNet.Identity.Core.dll + ..\packages\Microsoft.Owin.3.1.0\lib\net45\Microsoft.Owin.dll diff --git a/src/Umbraco.Tests/Web/Controllers/UsersControllerTests.cs b/src/Umbraco.Tests/Web/Controllers/UsersControllerTests.cs index 32a04350ee..eaeb2c49d1 100644 --- a/src/Umbraco.Tests/Web/Controllers/UsersControllerTests.cs +++ b/src/Umbraco.Tests/Web/Controllers/UsersControllerTests.cs @@ -2,17 +2,21 @@ using System.Linq; using System.Net.Http; using System.Net.Http.Formatting; +using Microsoft.AspNet.Identity; using Moq; using Newtonsoft.Json; using NUnit.Framework; using Umbraco.Core.Models; +using Umbraco.Core.Models.Identity; using Umbraco.Core.Models.Membership; using Umbraco.Core.Persistence.DatabaseModelDefinitions; +using Umbraco.Core.Security; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.ControllerTesting; using Umbraco.Tests.TestHelpers.Entities; using Umbraco.Web.Editors; using Umbraco.Web.Models.ContentEditing; +using IUser = Umbraco.Core.Models.Membership.IUser; namespace Umbraco.Tests.Web.Controllers { @@ -41,7 +45,7 @@ namespace Umbraco.Tests.Web.Controllers userServiceMock.Setup(service => service.GetUserGroupsByAlias(It.IsAny())) .Returns(new[] { Mock.Of(group => group.Id == 123 && group.Alias == "writers" && group.Name == "Writers") }); userServiceMock.Setup(service => service.GetUserById(It.IsAny())) - .Returns(new User(1234, "Test", "asdf@asdf.com", "test", "", new List(), new int[0], new int[0])); + .Returns(new User(1234, "Test", "asdf@asdf.com", "test", "", new List(), new int[0], new int[0])); //we need to manually apply automapper mappings with the mocked applicationcontext InitializeMappers(helper.UmbracoContext.Application); @@ -91,12 +95,18 @@ namespace Umbraco.Tests.Web.Controllers userServiceMock.Setup(service => service.GetAllUserGroups(It.IsAny())) .Returns(new[] { Mock.Of(group => group.Id == 123 && group.Alias == "writers" && group.Name == "Writers") }); userServiceMock.Setup(service => service.GetUserGroupsByAlias(It.IsAny())) - .Returns(new[]{Mock.Of(group => group.Id == 123 && group.Alias == "writers" && group.Name == "Writers")}); + .Returns(new[] { Mock.Of(group => group.Id == 123 && group.Alias == "writers" && group.Name == "Writers") }); //we need to manually apply automapper mappings with the mocked applicationcontext InitializeMappers(helper.UmbracoContext.Application); - return new UsersController(helper.UmbracoContext); + var emailService = new Mock(); + emailService.Setup(service => service.SendAsync(It.IsAny())).Returns(System.Threading.Tasks.Task.FromResult(0)); + var backofficeUserMgr = new BackOfficeUserManager(Mock.Of>()) + { + EmailService = emailService.Object + }; + return new UsersController(helper.UmbracoContext, helper, backofficeUserMgr); }); var invite = new UserInvite @@ -105,7 +115,7 @@ namespace Umbraco.Tests.Web.Controllers Email = "test@test.com", Message = "Hello test!", Name = "Test", - UserGroups = new[] {"writers"} + UserGroups = new[] { "writers" } }; var response = await runner.Execute("Users", action, HttpMethod.Post, new ObjectContent(invite, new JsonMediaTypeFormatter())); diff --git a/src/Umbraco.Tests/packages.config b/src/Umbraco.Tests/packages.config index 1577212ffe..c010dcb45c 100644 --- a/src/Umbraco.Tests/packages.config +++ b/src/Umbraco.Tests/packages.config @@ -6,6 +6,7 @@ + diff --git a/src/Umbraco.Web/Editors/UmbracoAuthorizedJsonController.cs b/src/Umbraco.Web/Editors/UmbracoAuthorizedJsonController.cs index 16001057be..8c0f793d03 100644 --- a/src/Umbraco.Web/Editors/UmbracoAuthorizedJsonController.cs +++ b/src/Umbraco.Web/Editors/UmbracoAuthorizedJsonController.cs @@ -1,4 +1,6 @@ using System.Web.Http.Controllers; +using Umbraco.Core.Models.Identity; +using Umbraco.Core.Security; using Umbraco.Web.WebApi; using Umbraco.Web.WebApi.Filters; @@ -23,5 +25,8 @@ namespace Umbraco.Web.Editors { } + protected UmbracoAuthorizedJsonController(UmbracoContext umbracoContext, UmbracoHelper umbracoHelper, BackOfficeUserManager backOfficeUserManager) : base(umbracoContext, umbracoHelper, backOfficeUserManager) + { + } } } \ No newline at end of file diff --git a/src/Umbraco.Web/Editors/UsersController.cs b/src/Umbraco.Web/Editors/UsersController.cs index f67c43204a..98f476d7c3 100644 --- a/src/Umbraco.Web/Editors/UsersController.cs +++ b/src/Umbraco.Web/Editors/UsersController.cs @@ -51,7 +51,10 @@ namespace Umbraco.Web.Editors { } - + public UsersController(UmbracoContext umbracoContext, UmbracoHelper umbracoHelper, BackOfficeUserManager backOfficeUserManager) : base(umbracoContext, umbracoHelper, backOfficeUserManager) + { + } + /// /// Returns a list of the sizes of gravatar urls for the user or null if the gravatar server cannot be reached @@ -263,21 +266,13 @@ namespace Umbraco.Web.Editors var link = string.Format("{0}#/login/false?invite={1}", ApplicationContext.UmbracoApplicationUrl, user.SecurityStamp.ToUrlBase64()); - - try + + await UserManager.EmailService.SendAsync(new IdentityMessage { - await UserManager.EmailService.SendAsync(new IdentityMessage - { - Body = string.Format("You have been invited to the Umbraco Back Office!\n\n{0}\n\nClick this link to accept the invite\n\n{1}", userSave.Message, link), - Destination = userSave.Email, - Subject = "You have been invited to the Umbraco Back Office!" - }); - } - catch (Exception ex) - { - throw new HttpResponseException( - Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex)); - } + Body = string.Format("You have been invited to the Umbraco Back Office!\n\n{0}\n\nClick this link to accept the invite\n\n{1}", userSave.Message, link), + Destination = userSave.Email, + Subject = "You have been invited to the Umbraco Back Office!" + }); //Email was successful, so save the user now diff --git a/src/Umbraco.Web/WebApi/UmbracoAuthorizedApiController.cs b/src/Umbraco.Web/WebApi/UmbracoAuthorizedApiController.cs index 8328cfa393..06e0051a1f 100644 --- a/src/Umbraco.Web/WebApi/UmbracoAuthorizedApiController.cs +++ b/src/Umbraco.Web/WebApi/UmbracoAuthorizedApiController.cs @@ -24,6 +24,8 @@ namespace Umbraco.Web.WebApi [UmbracoWebApiRequireHttps] public abstract class UmbracoAuthorizedApiController : UmbracoApiController { + + protected UmbracoAuthorizedApiController() { } @@ -36,6 +38,11 @@ namespace Umbraco.Web.WebApi { } + protected UmbracoAuthorizedApiController(UmbracoContext umbracoContext, UmbracoHelper umbracoHelper, BackOfficeUserManager backOfficeUserManager) : base(umbracoContext, umbracoHelper) + { + _userManager = backOfficeUserManager; + } + private BackOfficeUserManager _userManager; protected BackOfficeUserManager UserManager {