Files
Umbraco-CMS/src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs

434 lines
21 KiB
C#
Raw Normal View History

2013-09-02 15:40:14 +02:00
using System;
using System.Linq;
using System.Xml.Linq;
using Moq;
2013-09-02 15:40:14 +02:00
using NUnit.Framework;
using Umbraco.Core;
using Umbraco.Core.Logging;
using Umbraco.Core.Models;
using Umbraco.Core.Models.Rdbms;
2013-09-02 15:40:14 +02:00
using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.Querying;
using Umbraco.Core.Persistence.Repositories;
2013-09-02 15:40:14 +02:00
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.TestHelpers.Entities;
2013-09-02 15:40:14 +02:00
namespace Umbraco.Tests.Persistence.Repositories
{
[DatabaseTestBehavior(DatabaseBehavior.NewDbFileAndSchemaPerTest)]
[TestFixture]
public class MemberRepositoryTest : BaseDatabaseFactoryTest
2013-09-02 15:40:14 +02:00
{
[SetUp]
public override void Initialize()
{
base.Initialize();
}
[TearDown]
public override void TearDown()
{
base.TearDown();
}
Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 Conflicts: src/Umbraco.Core/Configuration/ClientDependencyConfiguration.cs src/Umbraco.Core/Constants-Conventions.cs src/Umbraco.Core/Models/Member.cs src/Umbraco.Core/Models/Membership/IUser.cs src/Umbraco.Core/Models/Template.cs src/Umbraco.Core/Persistence/Factories/MemberReadOnlyFactory.cs src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs src/Umbraco.Core/Persistence/Repositories/Interfaces/IMemberRepository.cs src/Umbraco.Core/Persistence/Repositories/Interfaces/IUserRepository.cs src/Umbraco.Core/Persistence/Repositories/MemberGroupRepository.cs src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs src/Umbraco.Core/Persistence/Repositories/PermissionRepository.cs src/Umbraco.Core/Persistence/RepositoryFactory.cs src/Umbraco.Core/Services/ContentService.cs src/Umbraco.Core/Services/IMemberTypeService.cs src/Umbraco.Core/Services/IMembershipUserService.cs src/Umbraco.Core/Services/IUserService.cs src/Umbraco.Core/Services/MemberService.cs src/Umbraco.Core/Services/MemberTypeService.cs src/Umbraco.Core/Services/ServiceContext.cs src/Umbraco.Core/Services/UserService.cs src/Umbraco.Core/Umbraco.Core.csproj src/Umbraco.Tests/MockTests.cs src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs src/Umbraco.Web.UI/Umbraco.Web.UI.csproj src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/EditProfile.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/Login.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/LoginStatus.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/RegisterMember.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Breadcrumb.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/EditProfile.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListAncestorsFromCurrentPage.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesFromCurrentPage.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesOrderedByDate.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesOrderedByName.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesWithDoctype.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListDescendantsFromCurrentPage.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Login.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/LoginStatus.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/MultinodeTree-picker.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Navigation.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/RegisterMember.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/SiteMap.cshtml src/Umbraco.Web.UI/Umbraco/create/PartialView.ascx.cs src/Umbraco.Web.UI/config/umbracoSettings.config src/Umbraco.Web/Cache/CacheRefresherEventHandler.cs src/Umbraco.Web/Controllers/UmbLoginController.cs src/Umbraco.Web/Controllers/UmbLoginStatusController.cs src/Umbraco.Web/Controllers/UmbProfileController.cs src/Umbraco.Web/Controllers/UmbRegisterController.cs src/Umbraco.Web/Models/LoginModel.cs src/Umbraco.Web/Models/LoginStatusModel.cs src/Umbraco.Web/Models/ProfileModel.cs src/Umbraco.Web/Models/RegisterModel.cs src/Umbraco.Web/Models/UmbracoProperty.cs src/Umbraco.Web/Mvc/UmbracoViewPageOfTModel.cs src/Umbraco.Web/PublishedCache/XmlPublishedCache/PublishedMediaCache.cs src/Umbraco.Web/Security/WebSecurity.cs src/Umbraco.Web/Umbraco.Web.csproj src/Umbraco.Web/UmbracoModule.cs src/Umbraco.Web/WebApi/UmbracoApiController.cs src/Umbraco.Web/umbraco.presentation/library.cs src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentTypeControlNew.ascx.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/PartialViewMacrosTasks.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/PartialViewTasks.cs src/Umbraco.Web/umbraco.presentation/umbraco/editContent.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/login.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/users/EditUser.aspx.cs src/Umbraco.Web/umbraco.presentation/umbracobase/baseLibrary.cs src/Umbraco.Web/umbraco.presentation/umbracobase/restExtension.cs src/umbraco.businesslogic/User.cs src/umbraco.providers/UsersMembershipProvider.cs src/umbraco.providers/members/UmbracoMembershipProvider.cs
2014-02-13 16:22:51 +11:00
private MemberRepository CreateRepository(IDatabaseUnitOfWork unitOfWork, out MemberTypeRepository memberTypeRepository, out MemberGroupRepository memberGroupRepository)
{
2015-01-21 17:03:56 +11:00
memberTypeRepository = new MemberTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>(), SqlSyntax);
memberGroupRepository = new MemberGroupRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>(), SqlSyntax, CacheHelper.CreateDisabledCacheHelper());
var tagRepo = new TagRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>(), SqlSyntax);
var repository = new MemberRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>(), SqlSyntax, memberTypeRepository, memberGroupRepository, tagRepo);
return repository;
}
[Test]
public void Rebuild_All_Xml_Structures()
{
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
MemberTypeRepository memberTypeRepository;
MemberGroupRepository memberGroupRepository;
using (var repository = CreateRepository(unitOfWork, out memberTypeRepository, out memberGroupRepository))
{
var memberType1 = CreateTestMemberType();
for (var i = 0; i < 100; i++)
{
var member = MockedMember.CreateSimpleMember(memberType1, "blah" + i, "blah" + i + "@example.com", "blah", "blah" + i);
repository.AddOrUpdate(member);
}
unitOfWork.Commit();
//delete all xml
unitOfWork.Database.Execute("DELETE FROM cmsContentXml");
Assert.AreEqual(0, unitOfWork.Database.ExecuteScalar<int>("SELECT COUNT(*) FROM cmsContentXml"));
repository.RebuildXmlStructures(media => new XElement("test"), 10);
Assert.AreEqual(100, unitOfWork.Database.ExecuteScalar<int>("SELECT COUNT(*) FROM cmsContentXml"));
}
}
[Test]
public void Rebuild_All_Xml_Structures_For_Content_Type()
{
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
MemberTypeRepository memberTypeRepository;
MemberGroupRepository memberGroupRepository;
using (var repository = CreateRepository(unitOfWork, out memberTypeRepository, out memberGroupRepository))
{
var memberType1 = CreateTestMemberType("mt1");
var memberType2 = CreateTestMemberType("mt2");
var memberType3 = CreateTestMemberType("mt3");
for (var i = 0; i < 30; i++)
{
var member = MockedMember.CreateSimpleMember(memberType1, "b1lah" + i, "b1lah" + i + "@example.com", "b1lah", "b1lah" + i);
repository.AddOrUpdate(member);
}
for (var i = 0; i < 30; i++)
{
var member = MockedMember.CreateSimpleMember(memberType2, "b2lah" + i, "b2lah" + i + "@example.com", "b2lah", "b2lah" + i);
repository.AddOrUpdate(member);
}
for (var i = 0; i < 30; i++)
{
var member = MockedMember.CreateSimpleMember(memberType3, "b3lah" + i, "b3lah" + i + "@example.com", "b3lah", "b3lah" + i);
repository.AddOrUpdate(member);
}
unitOfWork.Commit();
//delete all xml
unitOfWork.Database.Execute("DELETE FROM cmsContentXml");
Assert.AreEqual(0, unitOfWork.Database.ExecuteScalar<int>("SELECT COUNT(*) FROM cmsContentXml"));
repository.RebuildXmlStructures(media => new XElement("test"), 10, contentTypeIds: new[] { memberType1.Id, memberType2.Id });
Assert.AreEqual(60, unitOfWork.Database.ExecuteScalar<int>("SELECT COUNT(*) FROM cmsContentXml"));
}
}
[Test]
public void MemberRepository_Can_Get_Member_By_Id()
{
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
MemberTypeRepository memberTypeRepository;
Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 Conflicts: src/Umbraco.Core/Configuration/ClientDependencyConfiguration.cs src/Umbraco.Core/Constants-Conventions.cs src/Umbraco.Core/Models/Member.cs src/Umbraco.Core/Models/Membership/IUser.cs src/Umbraco.Core/Models/Template.cs src/Umbraco.Core/Persistence/Factories/MemberReadOnlyFactory.cs src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs src/Umbraco.Core/Persistence/Repositories/Interfaces/IMemberRepository.cs src/Umbraco.Core/Persistence/Repositories/Interfaces/IUserRepository.cs src/Umbraco.Core/Persistence/Repositories/MemberGroupRepository.cs src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs src/Umbraco.Core/Persistence/Repositories/PermissionRepository.cs src/Umbraco.Core/Persistence/RepositoryFactory.cs src/Umbraco.Core/Services/ContentService.cs src/Umbraco.Core/Services/IMemberTypeService.cs src/Umbraco.Core/Services/IMembershipUserService.cs src/Umbraco.Core/Services/IUserService.cs src/Umbraco.Core/Services/MemberService.cs src/Umbraco.Core/Services/MemberTypeService.cs src/Umbraco.Core/Services/ServiceContext.cs src/Umbraco.Core/Services/UserService.cs src/Umbraco.Core/Umbraco.Core.csproj src/Umbraco.Tests/MockTests.cs src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs src/Umbraco.Web.UI/Umbraco.Web.UI.csproj src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/EditProfile.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/Login.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/LoginStatus.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/RegisterMember.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Breadcrumb.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/EditProfile.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListAncestorsFromCurrentPage.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesFromCurrentPage.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesOrderedByDate.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesOrderedByName.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesWithDoctype.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListDescendantsFromCurrentPage.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Login.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/LoginStatus.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/MultinodeTree-picker.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Navigation.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/RegisterMember.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/SiteMap.cshtml src/Umbraco.Web.UI/Umbraco/create/PartialView.ascx.cs src/Umbraco.Web.UI/config/umbracoSettings.config src/Umbraco.Web/Cache/CacheRefresherEventHandler.cs src/Umbraco.Web/Controllers/UmbLoginController.cs src/Umbraco.Web/Controllers/UmbLoginStatusController.cs src/Umbraco.Web/Controllers/UmbProfileController.cs src/Umbraco.Web/Controllers/UmbRegisterController.cs src/Umbraco.Web/Models/LoginModel.cs src/Umbraco.Web/Models/LoginStatusModel.cs src/Umbraco.Web/Models/ProfileModel.cs src/Umbraco.Web/Models/RegisterModel.cs src/Umbraco.Web/Models/UmbracoProperty.cs src/Umbraco.Web/Mvc/UmbracoViewPageOfTModel.cs src/Umbraco.Web/PublishedCache/XmlPublishedCache/PublishedMediaCache.cs src/Umbraco.Web/Security/WebSecurity.cs src/Umbraco.Web/Umbraco.Web.csproj src/Umbraco.Web/UmbracoModule.cs src/Umbraco.Web/WebApi/UmbracoApiController.cs src/Umbraco.Web/umbraco.presentation/library.cs src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentTypeControlNew.ascx.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/PartialViewMacrosTasks.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/PartialViewTasks.cs src/Umbraco.Web/umbraco.presentation/umbraco/editContent.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/login.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/users/EditUser.aspx.cs src/Umbraco.Web/umbraco.presentation/umbracobase/baseLibrary.cs src/Umbraco.Web/umbraco.presentation/umbracobase/restExtension.cs src/umbraco.businesslogic/User.cs src/umbraco.providers/UsersMembershipProvider.cs src/umbraco.providers/members/UmbracoMembershipProvider.cs
2014-02-13 16:22:51 +11:00
MemberGroupRepository memberGroupRepository;
using (var repository = CreateRepository(unitOfWork, out memberTypeRepository, out memberGroupRepository))
{
var member = CreateTestMember();
member = repository.Get(member.Id);
Assert.That(member, Is.Not.Null);
Assert.That(member.HasIdentity, Is.True);
}
}
2013-09-02 15:40:14 +02:00
[Test]
public void Can_Get_Members_By_Ids()
{
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
MemberTypeRepository memberTypeRepository;
Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 Conflicts: src/Umbraco.Core/Configuration/ClientDependencyConfiguration.cs src/Umbraco.Core/Constants-Conventions.cs src/Umbraco.Core/Models/Member.cs src/Umbraco.Core/Models/Membership/IUser.cs src/Umbraco.Core/Models/Template.cs src/Umbraco.Core/Persistence/Factories/MemberReadOnlyFactory.cs src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs src/Umbraco.Core/Persistence/Repositories/Interfaces/IMemberRepository.cs src/Umbraco.Core/Persistence/Repositories/Interfaces/IUserRepository.cs src/Umbraco.Core/Persistence/Repositories/MemberGroupRepository.cs src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs src/Umbraco.Core/Persistence/Repositories/PermissionRepository.cs src/Umbraco.Core/Persistence/RepositoryFactory.cs src/Umbraco.Core/Services/ContentService.cs src/Umbraco.Core/Services/IMemberTypeService.cs src/Umbraco.Core/Services/IMembershipUserService.cs src/Umbraco.Core/Services/IUserService.cs src/Umbraco.Core/Services/MemberService.cs src/Umbraco.Core/Services/MemberTypeService.cs src/Umbraco.Core/Services/ServiceContext.cs src/Umbraco.Core/Services/UserService.cs src/Umbraco.Core/Umbraco.Core.csproj src/Umbraco.Tests/MockTests.cs src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs src/Umbraco.Web.UI/Umbraco.Web.UI.csproj src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/EditProfile.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/Login.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/LoginStatus.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/RegisterMember.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Breadcrumb.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/EditProfile.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListAncestorsFromCurrentPage.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesFromCurrentPage.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesOrderedByDate.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesOrderedByName.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesWithDoctype.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListDescendantsFromCurrentPage.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Login.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/LoginStatus.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/MultinodeTree-picker.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Navigation.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/RegisterMember.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/SiteMap.cshtml src/Umbraco.Web.UI/Umbraco/create/PartialView.ascx.cs src/Umbraco.Web.UI/config/umbracoSettings.config src/Umbraco.Web/Cache/CacheRefresherEventHandler.cs src/Umbraco.Web/Controllers/UmbLoginController.cs src/Umbraco.Web/Controllers/UmbLoginStatusController.cs src/Umbraco.Web/Controllers/UmbProfileController.cs src/Umbraco.Web/Controllers/UmbRegisterController.cs src/Umbraco.Web/Models/LoginModel.cs src/Umbraco.Web/Models/LoginStatusModel.cs src/Umbraco.Web/Models/ProfileModel.cs src/Umbraco.Web/Models/RegisterModel.cs src/Umbraco.Web/Models/UmbracoProperty.cs src/Umbraco.Web/Mvc/UmbracoViewPageOfTModel.cs src/Umbraco.Web/PublishedCache/XmlPublishedCache/PublishedMediaCache.cs src/Umbraco.Web/Security/WebSecurity.cs src/Umbraco.Web/Umbraco.Web.csproj src/Umbraco.Web/UmbracoModule.cs src/Umbraco.Web/WebApi/UmbracoApiController.cs src/Umbraco.Web/umbraco.presentation/library.cs src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentTypeControlNew.ascx.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/PartialViewMacrosTasks.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/PartialViewTasks.cs src/Umbraco.Web/umbraco.presentation/umbraco/editContent.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/login.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/users/EditUser.aspx.cs src/Umbraco.Web/umbraco.presentation/umbracobase/baseLibrary.cs src/Umbraco.Web/umbraco.presentation/umbracobase/restExtension.cs src/umbraco.businesslogic/User.cs src/umbraco.providers/UsersMembershipProvider.cs src/umbraco.providers/members/UmbracoMembershipProvider.cs
2014-02-13 16:22:51 +11:00
MemberGroupRepository memberGroupRepository;
using (var repository = CreateRepository(unitOfWork, out memberTypeRepository, out memberGroupRepository))
{
var type = CreateTestMemberType();
var m1 = CreateTestMember(type, "Test 1", "test1@test.com", "pass1", "test1");
var m2 = CreateTestMember(type, "Test 2", "test2@test.com", "pass2", "test2");
var members = repository.GetAll(m1.Id, m2.Id);
Assert.That(members, Is.Not.Null);
Assert.That(members.Count(), Is.EqualTo(2));
Assert.That(members.Any(x => x == null), Is.False);
Assert.That(members.Any(x => x.HasIdentity == false), Is.False);
}
}
[Test]
public void MemberRepository_Can_Get_All_Members()
{
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
MemberTypeRepository memberTypeRepository;
Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 Conflicts: src/Umbraco.Core/Configuration/ClientDependencyConfiguration.cs src/Umbraco.Core/Constants-Conventions.cs src/Umbraco.Core/Models/Member.cs src/Umbraco.Core/Models/Membership/IUser.cs src/Umbraco.Core/Models/Template.cs src/Umbraco.Core/Persistence/Factories/MemberReadOnlyFactory.cs src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs src/Umbraco.Core/Persistence/Repositories/Interfaces/IMemberRepository.cs src/Umbraco.Core/Persistence/Repositories/Interfaces/IUserRepository.cs src/Umbraco.Core/Persistence/Repositories/MemberGroupRepository.cs src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs src/Umbraco.Core/Persistence/Repositories/PermissionRepository.cs src/Umbraco.Core/Persistence/RepositoryFactory.cs src/Umbraco.Core/Services/ContentService.cs src/Umbraco.Core/Services/IMemberTypeService.cs src/Umbraco.Core/Services/IMembershipUserService.cs src/Umbraco.Core/Services/IUserService.cs src/Umbraco.Core/Services/MemberService.cs src/Umbraco.Core/Services/MemberTypeService.cs src/Umbraco.Core/Services/ServiceContext.cs src/Umbraco.Core/Services/UserService.cs src/Umbraco.Core/Umbraco.Core.csproj src/Umbraco.Tests/MockTests.cs src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs src/Umbraco.Web.UI/Umbraco.Web.UI.csproj src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/EditProfile.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/Login.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/LoginStatus.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/RegisterMember.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Breadcrumb.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/EditProfile.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListAncestorsFromCurrentPage.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesFromCurrentPage.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesOrderedByDate.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesOrderedByName.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesWithDoctype.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListDescendantsFromCurrentPage.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Login.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/LoginStatus.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/MultinodeTree-picker.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Navigation.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/RegisterMember.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/SiteMap.cshtml src/Umbraco.Web.UI/Umbraco/create/PartialView.ascx.cs src/Umbraco.Web.UI/config/umbracoSettings.config src/Umbraco.Web/Cache/CacheRefresherEventHandler.cs src/Umbraco.Web/Controllers/UmbLoginController.cs src/Umbraco.Web/Controllers/UmbLoginStatusController.cs src/Umbraco.Web/Controllers/UmbProfileController.cs src/Umbraco.Web/Controllers/UmbRegisterController.cs src/Umbraco.Web/Models/LoginModel.cs src/Umbraco.Web/Models/LoginStatusModel.cs src/Umbraco.Web/Models/ProfileModel.cs src/Umbraco.Web/Models/RegisterModel.cs src/Umbraco.Web/Models/UmbracoProperty.cs src/Umbraco.Web/Mvc/UmbracoViewPageOfTModel.cs src/Umbraco.Web/PublishedCache/XmlPublishedCache/PublishedMediaCache.cs src/Umbraco.Web/Security/WebSecurity.cs src/Umbraco.Web/Umbraco.Web.csproj src/Umbraco.Web/UmbracoModule.cs src/Umbraco.Web/WebApi/UmbracoApiController.cs src/Umbraco.Web/umbraco.presentation/library.cs src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentTypeControlNew.ascx.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/PartialViewMacrosTasks.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/PartialViewTasks.cs src/Umbraco.Web/umbraco.presentation/umbraco/editContent.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/login.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/users/EditUser.aspx.cs src/Umbraco.Web/umbraco.presentation/umbracobase/baseLibrary.cs src/Umbraco.Web/umbraco.presentation/umbracobase/restExtension.cs src/umbraco.businesslogic/User.cs src/umbraco.providers/UsersMembershipProvider.cs src/umbraco.providers/members/UmbracoMembershipProvider.cs
2014-02-13 16:22:51 +11:00
MemberGroupRepository memberGroupRepository;
using (var repository = CreateRepository(unitOfWork, out memberTypeRepository, out memberGroupRepository))
{
var type = CreateTestMemberType();
for (var i = 0; i < 5; i++)
{
CreateTestMember(type, "Test " + i, "test" + i + "@test.com", "pass" + i, "test" + i);
}
var members = repository.GetAll();
Assert.That(members, Is.Not.Null);
Assert.That(members.Any(x => x == null), Is.False);
Assert.That(members.Count(), Is.EqualTo(5));
Assert.That(members.Any(x => x.HasIdentity == false), Is.False);
}
}
[Test]
public void MemberRepository_Can_Perform_GetByQuery_With_Key()
{
// Arrange
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
MemberTypeRepository memberTypeRepository;
Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 Conflicts: src/Umbraco.Core/Configuration/ClientDependencyConfiguration.cs src/Umbraco.Core/Constants-Conventions.cs src/Umbraco.Core/Models/Member.cs src/Umbraco.Core/Models/Membership/IUser.cs src/Umbraco.Core/Models/Template.cs src/Umbraco.Core/Persistence/Factories/MemberReadOnlyFactory.cs src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs src/Umbraco.Core/Persistence/Repositories/Interfaces/IMemberRepository.cs src/Umbraco.Core/Persistence/Repositories/Interfaces/IUserRepository.cs src/Umbraco.Core/Persistence/Repositories/MemberGroupRepository.cs src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs src/Umbraco.Core/Persistence/Repositories/PermissionRepository.cs src/Umbraco.Core/Persistence/RepositoryFactory.cs src/Umbraco.Core/Services/ContentService.cs src/Umbraco.Core/Services/IMemberTypeService.cs src/Umbraco.Core/Services/IMembershipUserService.cs src/Umbraco.Core/Services/IUserService.cs src/Umbraco.Core/Services/MemberService.cs src/Umbraco.Core/Services/MemberTypeService.cs src/Umbraco.Core/Services/ServiceContext.cs src/Umbraco.Core/Services/UserService.cs src/Umbraco.Core/Umbraco.Core.csproj src/Umbraco.Tests/MockTests.cs src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs src/Umbraco.Web.UI/Umbraco.Web.UI.csproj src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/EditProfile.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/Login.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/LoginStatus.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/RegisterMember.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Breadcrumb.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/EditProfile.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListAncestorsFromCurrentPage.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesFromCurrentPage.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesOrderedByDate.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesOrderedByName.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesWithDoctype.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListDescendantsFromCurrentPage.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Login.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/LoginStatus.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/MultinodeTree-picker.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Navigation.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/RegisterMember.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/SiteMap.cshtml src/Umbraco.Web.UI/Umbraco/create/PartialView.ascx.cs src/Umbraco.Web.UI/config/umbracoSettings.config src/Umbraco.Web/Cache/CacheRefresherEventHandler.cs src/Umbraco.Web/Controllers/UmbLoginController.cs src/Umbraco.Web/Controllers/UmbLoginStatusController.cs src/Umbraco.Web/Controllers/UmbProfileController.cs src/Umbraco.Web/Controllers/UmbRegisterController.cs src/Umbraco.Web/Models/LoginModel.cs src/Umbraco.Web/Models/LoginStatusModel.cs src/Umbraco.Web/Models/ProfileModel.cs src/Umbraco.Web/Models/RegisterModel.cs src/Umbraco.Web/Models/UmbracoProperty.cs src/Umbraco.Web/Mvc/UmbracoViewPageOfTModel.cs src/Umbraco.Web/PublishedCache/XmlPublishedCache/PublishedMediaCache.cs src/Umbraco.Web/Security/WebSecurity.cs src/Umbraco.Web/Umbraco.Web.csproj src/Umbraco.Web/UmbracoModule.cs src/Umbraco.Web/WebApi/UmbracoApiController.cs src/Umbraco.Web/umbraco.presentation/library.cs src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentTypeControlNew.ascx.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/PartialViewMacrosTasks.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/PartialViewTasks.cs src/Umbraco.Web/umbraco.presentation/umbraco/editContent.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/login.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/users/EditUser.aspx.cs src/Umbraco.Web/umbraco.presentation/umbracobase/baseLibrary.cs src/Umbraco.Web/umbraco.presentation/umbracobase/restExtension.cs src/umbraco.businesslogic/User.cs src/umbraco.providers/UsersMembershipProvider.cs src/umbraco.providers/members/UmbracoMembershipProvider.cs
2014-02-13 16:22:51 +11:00
MemberGroupRepository memberGroupRepository;
using (var repository = CreateRepository(unitOfWork, out memberTypeRepository, out memberGroupRepository))
{
var key = Guid.NewGuid();
var member = CreateTestMember(key: key);
// Act
var query = Query<IMember>.Builder.Where(x => x.Key == key);
var result = repository.GetByQuery(query);
// Assert
Assert.That(result.Count(), Is.EqualTo(1));
Assert.That(result.First().Id, Is.EqualTo(member.Id));
}
}
[Test]
public void Can_Persist_Member()
{
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
MemberTypeRepository memberTypeRepository;
Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 Conflicts: src/Umbraco.Core/Configuration/ClientDependencyConfiguration.cs src/Umbraco.Core/Constants-Conventions.cs src/Umbraco.Core/Models/Member.cs src/Umbraco.Core/Models/Membership/IUser.cs src/Umbraco.Core/Models/Template.cs src/Umbraco.Core/Persistence/Factories/MemberReadOnlyFactory.cs src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs src/Umbraco.Core/Persistence/Repositories/Interfaces/IMemberRepository.cs src/Umbraco.Core/Persistence/Repositories/Interfaces/IUserRepository.cs src/Umbraco.Core/Persistence/Repositories/MemberGroupRepository.cs src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs src/Umbraco.Core/Persistence/Repositories/PermissionRepository.cs src/Umbraco.Core/Persistence/RepositoryFactory.cs src/Umbraco.Core/Services/ContentService.cs src/Umbraco.Core/Services/IMemberTypeService.cs src/Umbraco.Core/Services/IMembershipUserService.cs src/Umbraco.Core/Services/IUserService.cs src/Umbraco.Core/Services/MemberService.cs src/Umbraco.Core/Services/MemberTypeService.cs src/Umbraco.Core/Services/ServiceContext.cs src/Umbraco.Core/Services/UserService.cs src/Umbraco.Core/Umbraco.Core.csproj src/Umbraco.Tests/MockTests.cs src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs src/Umbraco.Web.UI/Umbraco.Web.UI.csproj src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/EditProfile.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/Login.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/LoginStatus.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/RegisterMember.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Breadcrumb.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/EditProfile.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListAncestorsFromCurrentPage.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesFromCurrentPage.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesOrderedByDate.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesOrderedByName.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesWithDoctype.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListDescendantsFromCurrentPage.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Login.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/LoginStatus.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/MultinodeTree-picker.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Navigation.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/RegisterMember.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/SiteMap.cshtml src/Umbraco.Web.UI/Umbraco/create/PartialView.ascx.cs src/Umbraco.Web.UI/config/umbracoSettings.config src/Umbraco.Web/Cache/CacheRefresherEventHandler.cs src/Umbraco.Web/Controllers/UmbLoginController.cs src/Umbraco.Web/Controllers/UmbLoginStatusController.cs src/Umbraco.Web/Controllers/UmbProfileController.cs src/Umbraco.Web/Controllers/UmbRegisterController.cs src/Umbraco.Web/Models/LoginModel.cs src/Umbraco.Web/Models/LoginStatusModel.cs src/Umbraco.Web/Models/ProfileModel.cs src/Umbraco.Web/Models/RegisterModel.cs src/Umbraco.Web/Models/UmbracoProperty.cs src/Umbraco.Web/Mvc/UmbracoViewPageOfTModel.cs src/Umbraco.Web/PublishedCache/XmlPublishedCache/PublishedMediaCache.cs src/Umbraco.Web/Security/WebSecurity.cs src/Umbraco.Web/Umbraco.Web.csproj src/Umbraco.Web/UmbracoModule.cs src/Umbraco.Web/WebApi/UmbracoApiController.cs src/Umbraco.Web/umbraco.presentation/library.cs src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentTypeControlNew.ascx.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/PartialViewMacrosTasks.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/PartialViewTasks.cs src/Umbraco.Web/umbraco.presentation/umbraco/editContent.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/login.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/users/EditUser.aspx.cs src/Umbraco.Web/umbraco.presentation/umbracobase/baseLibrary.cs src/Umbraco.Web/umbraco.presentation/umbracobase/restExtension.cs src/umbraco.businesslogic/User.cs src/umbraco.providers/UsersMembershipProvider.cs src/umbraco.providers/members/UmbracoMembershipProvider.cs
2014-02-13 16:22:51 +11:00
MemberGroupRepository memberGroupRepository;
using (var repository = CreateRepository(unitOfWork, out memberTypeRepository, out memberGroupRepository))
{
var member = CreateTestMember();
var sut = repository.Get(member.Id);
Assert.That(sut, Is.Not.Null);
Assert.That(sut.HasIdentity, Is.True);
Assert.That(sut.Properties.Any(x => x.HasIdentity == false || x.Id == 0), Is.False);
Assert.That(sut.Name, Is.EqualTo("Johnny Hefty"));
Assert.That(sut.Email, Is.EqualTo("johnny@example.com"));
Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 Conflicts: src/Umbraco.Core/Models/Member.cs src/Umbraco.Core/Models/Membership/MembershipUserExtensions.cs src/Umbraco.Core/Persistence/Factories/MemberFactory.cs src/Umbraco.Core/Persistence/Factories/MemberReadOnlyFactory.cs src/Umbraco.Core/Persistence/Mappers/MemberMapper.cs src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs src/Umbraco.Core/Services/IMembershipUserService.cs src/Umbraco.Core/Services/UserService.cs src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs src/Umbraco.Tests/Services/ContentServiceTests.cs src/Umbraco.Tests/TestHelpers/Entities/MockedMember.cs src/Umbraco.Tests/TestHelpers/Entities/MockedUser.cs src/Umbraco.Web.UI/install/steps/DefaultUser.ascx.cs src/Umbraco.Web/Controllers/UmbProfileController.cs src/Umbraco.Web/Routing/PublishedContentRequestEngine.cs src/Umbraco.Web/Security/WebSecurity.cs src/Umbraco.Web/umbraco.presentation/LegacyClasses.cs src/Umbraco.Web/umbraco.presentation/install/steps/LegacyClasses.cs src/Umbraco.Web/umbraco.presentation/umbraco/channels/UmbracoMetaWeblogAPI.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/member.ascx.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/memberTasks.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/userTasks.cs src/Umbraco.Web/umbraco.presentation/umbraco/dashboard/ChangePassword.ascx.cs src/Umbraco.Web/umbraco.presentation/umbraco/login.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/webservices/MediaUploader.ashx.cs
2014-03-18 18:47:49 +11:00
Assert.That(sut.RawPasswordValue, Is.EqualTo("123"));
Assert.That(sut.Username, Is.EqualTo("hefty"));
}
}
[Test]
public void New_Member_Has_Built_In_Properties_By_Default()
{
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
MemberTypeRepository memberTypeRepository;
Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 Conflicts: src/Umbraco.Core/Configuration/ClientDependencyConfiguration.cs src/Umbraco.Core/Constants-Conventions.cs src/Umbraco.Core/Models/Member.cs src/Umbraco.Core/Models/Membership/IUser.cs src/Umbraco.Core/Models/Template.cs src/Umbraco.Core/Persistence/Factories/MemberReadOnlyFactory.cs src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs src/Umbraco.Core/Persistence/Repositories/Interfaces/IMemberRepository.cs src/Umbraco.Core/Persistence/Repositories/Interfaces/IUserRepository.cs src/Umbraco.Core/Persistence/Repositories/MemberGroupRepository.cs src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs src/Umbraco.Core/Persistence/Repositories/PermissionRepository.cs src/Umbraco.Core/Persistence/RepositoryFactory.cs src/Umbraco.Core/Services/ContentService.cs src/Umbraco.Core/Services/IMemberTypeService.cs src/Umbraco.Core/Services/IMembershipUserService.cs src/Umbraco.Core/Services/IUserService.cs src/Umbraco.Core/Services/MemberService.cs src/Umbraco.Core/Services/MemberTypeService.cs src/Umbraco.Core/Services/ServiceContext.cs src/Umbraco.Core/Services/UserService.cs src/Umbraco.Core/Umbraco.Core.csproj src/Umbraco.Tests/MockTests.cs src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs src/Umbraco.Web.UI/Umbraco.Web.UI.csproj src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/EditProfile.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/Login.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/LoginStatus.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/RegisterMember.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Breadcrumb.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/EditProfile.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListAncestorsFromCurrentPage.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesFromCurrentPage.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesOrderedByDate.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesOrderedByName.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesWithDoctype.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListDescendantsFromCurrentPage.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Login.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/LoginStatus.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/MultinodeTree-picker.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Navigation.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/RegisterMember.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/SiteMap.cshtml src/Umbraco.Web.UI/Umbraco/create/PartialView.ascx.cs src/Umbraco.Web.UI/config/umbracoSettings.config src/Umbraco.Web/Cache/CacheRefresherEventHandler.cs src/Umbraco.Web/Controllers/UmbLoginController.cs src/Umbraco.Web/Controllers/UmbLoginStatusController.cs src/Umbraco.Web/Controllers/UmbProfileController.cs src/Umbraco.Web/Controllers/UmbRegisterController.cs src/Umbraco.Web/Models/LoginModel.cs src/Umbraco.Web/Models/LoginStatusModel.cs src/Umbraco.Web/Models/ProfileModel.cs src/Umbraco.Web/Models/RegisterModel.cs src/Umbraco.Web/Models/UmbracoProperty.cs src/Umbraco.Web/Mvc/UmbracoViewPageOfTModel.cs src/Umbraco.Web/PublishedCache/XmlPublishedCache/PublishedMediaCache.cs src/Umbraco.Web/Security/WebSecurity.cs src/Umbraco.Web/Umbraco.Web.csproj src/Umbraco.Web/UmbracoModule.cs src/Umbraco.Web/WebApi/UmbracoApiController.cs src/Umbraco.Web/umbraco.presentation/library.cs src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentTypeControlNew.ascx.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/PartialViewMacrosTasks.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/PartialViewTasks.cs src/Umbraco.Web/umbraco.presentation/umbraco/editContent.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/login.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/users/EditUser.aspx.cs src/Umbraco.Web/umbraco.presentation/umbracobase/baseLibrary.cs src/Umbraco.Web/umbraco.presentation/umbracobase/restExtension.cs src/umbraco.businesslogic/User.cs src/umbraco.providers/UsersMembershipProvider.cs src/umbraco.providers/members/UmbracoMembershipProvider.cs
2014-02-13 16:22:51 +11:00
MemberGroupRepository memberGroupRepository;
using (var repository = CreateRepository(unitOfWork, out memberTypeRepository, out memberGroupRepository))
{
var memberType = MockedContentTypes.CreateSimpleMemberType();
memberTypeRepository.AddOrUpdate(memberType);
unitOfWork.Commit();
var member = MockedMember.CreateSimpleMember(memberType, "Johnny Hefty", "johnny@example.com", "123", "hefty");
repository.AddOrUpdate(member);
unitOfWork.Commit();
var sut = repository.Get(member.Id);
Assert.That(sut.ContentType.PropertyGroups.Count(), Is.EqualTo(2));
Assert.That(sut.ContentType.PropertyTypes.Count(), Is.EqualTo(3 + Constants.Conventions.Member.GetStandardPropertyTypeStubs().Count));
Assert.That(sut.Properties.Count(), Is.EqualTo(3 + Constants.Conventions.Member.GetStandardPropertyTypeStubs().Count));
Assert.That(sut.Properties.Any(x => x.HasIdentity == false || x.Id == 0), Is.False);
var grp = sut.PropertyGroups.FirstOrDefault(x => x.Name == Constants.Conventions.Member.StandardPropertiesGroupName);
Assert.IsNotNull(grp);
var aliases = Constants.Conventions.Member.GetStandardPropertyTypeStubs().Select(x => x.Key).ToArray();
foreach (var p in sut.PropertyTypes.Where(x => aliases.Contains(x.Alias)))
{
Assert.AreEqual(grp.Id, p.PropertyGroupId.Value);
}
}
}
[Test]
public void MemberRepository_Does_Not_Replace_Password_When_Null()
{
IMember sut;
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
MemberTypeRepository memberTypeRepository;
Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 Conflicts: src/Umbraco.Core/Configuration/ClientDependencyConfiguration.cs src/Umbraco.Core/Constants-Conventions.cs src/Umbraco.Core/Models/Member.cs src/Umbraco.Core/Models/Membership/IUser.cs src/Umbraco.Core/Models/Template.cs src/Umbraco.Core/Persistence/Factories/MemberReadOnlyFactory.cs src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs src/Umbraco.Core/Persistence/Repositories/Interfaces/IMemberRepository.cs src/Umbraco.Core/Persistence/Repositories/Interfaces/IUserRepository.cs src/Umbraco.Core/Persistence/Repositories/MemberGroupRepository.cs src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs src/Umbraco.Core/Persistence/Repositories/PermissionRepository.cs src/Umbraco.Core/Persistence/RepositoryFactory.cs src/Umbraco.Core/Services/ContentService.cs src/Umbraco.Core/Services/IMemberTypeService.cs src/Umbraco.Core/Services/IMembershipUserService.cs src/Umbraco.Core/Services/IUserService.cs src/Umbraco.Core/Services/MemberService.cs src/Umbraco.Core/Services/MemberTypeService.cs src/Umbraco.Core/Services/ServiceContext.cs src/Umbraco.Core/Services/UserService.cs src/Umbraco.Core/Umbraco.Core.csproj src/Umbraco.Tests/MockTests.cs src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs src/Umbraco.Web.UI/Umbraco.Web.UI.csproj src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/EditProfile.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/Login.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/LoginStatus.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/RegisterMember.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Breadcrumb.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/EditProfile.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListAncestorsFromCurrentPage.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesFromCurrentPage.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesOrderedByDate.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesOrderedByName.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesWithDoctype.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListDescendantsFromCurrentPage.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Login.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/LoginStatus.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/MultinodeTree-picker.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Navigation.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/RegisterMember.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/SiteMap.cshtml src/Umbraco.Web.UI/Umbraco/create/PartialView.ascx.cs src/Umbraco.Web.UI/config/umbracoSettings.config src/Umbraco.Web/Cache/CacheRefresherEventHandler.cs src/Umbraco.Web/Controllers/UmbLoginController.cs src/Umbraco.Web/Controllers/UmbLoginStatusController.cs src/Umbraco.Web/Controllers/UmbProfileController.cs src/Umbraco.Web/Controllers/UmbRegisterController.cs src/Umbraco.Web/Models/LoginModel.cs src/Umbraco.Web/Models/LoginStatusModel.cs src/Umbraco.Web/Models/ProfileModel.cs src/Umbraco.Web/Models/RegisterModel.cs src/Umbraco.Web/Models/UmbracoProperty.cs src/Umbraco.Web/Mvc/UmbracoViewPageOfTModel.cs src/Umbraco.Web/PublishedCache/XmlPublishedCache/PublishedMediaCache.cs src/Umbraco.Web/Security/WebSecurity.cs src/Umbraco.Web/Umbraco.Web.csproj src/Umbraco.Web/UmbracoModule.cs src/Umbraco.Web/WebApi/UmbracoApiController.cs src/Umbraco.Web/umbraco.presentation/library.cs src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentTypeControlNew.ascx.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/PartialViewMacrosTasks.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/PartialViewTasks.cs src/Umbraco.Web/umbraco.presentation/umbraco/editContent.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/login.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/users/EditUser.aspx.cs src/Umbraco.Web/umbraco.presentation/umbracobase/baseLibrary.cs src/Umbraco.Web/umbraco.presentation/umbracobase/restExtension.cs src/umbraco.businesslogic/User.cs src/umbraco.providers/UsersMembershipProvider.cs src/umbraco.providers/members/UmbracoMembershipProvider.cs
2014-02-13 16:22:51 +11:00
MemberGroupRepository memberGroupRepository;
using (var repository = CreateRepository(unitOfWork, out memberTypeRepository, out memberGroupRepository))
{
var memberType = MockedContentTypes.CreateSimpleMemberType();
memberTypeRepository.AddOrUpdate(memberType);
unitOfWork.Commit();
var member = MockedMember.CreateSimpleMember(memberType, "Johnny Hefty", "johnny@example.com", "123", "hefty");
repository.AddOrUpdate(member);
unitOfWork.Commit();
sut = repository.Get(member.Id);
//when the password is null it will not overwrite what is already there.
Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 Conflicts: src/Umbraco.Core/Models/Member.cs src/Umbraco.Core/Models/Membership/MembershipUserExtensions.cs src/Umbraco.Core/Persistence/Factories/MemberFactory.cs src/Umbraco.Core/Persistence/Factories/MemberReadOnlyFactory.cs src/Umbraco.Core/Persistence/Mappers/MemberMapper.cs src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs src/Umbraco.Core/Services/IMembershipUserService.cs src/Umbraco.Core/Services/UserService.cs src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs src/Umbraco.Tests/Services/ContentServiceTests.cs src/Umbraco.Tests/TestHelpers/Entities/MockedMember.cs src/Umbraco.Tests/TestHelpers/Entities/MockedUser.cs src/Umbraco.Web.UI/install/steps/DefaultUser.ascx.cs src/Umbraco.Web/Controllers/UmbProfileController.cs src/Umbraco.Web/Routing/PublishedContentRequestEngine.cs src/Umbraco.Web/Security/WebSecurity.cs src/Umbraco.Web/umbraco.presentation/LegacyClasses.cs src/Umbraco.Web/umbraco.presentation/install/steps/LegacyClasses.cs src/Umbraco.Web/umbraco.presentation/umbraco/channels/UmbracoMetaWeblogAPI.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/member.ascx.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/memberTasks.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/userTasks.cs src/Umbraco.Web/umbraco.presentation/umbraco/dashboard/ChangePassword.ascx.cs src/Umbraco.Web/umbraco.presentation/umbraco/login.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/webservices/MediaUploader.ashx.cs
2014-03-18 18:47:49 +11:00
sut.RawPasswordValue = null;
repository.AddOrUpdate(sut);
unitOfWork.Commit();
sut = repository.Get(member.Id);
Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 Conflicts: src/Umbraco.Core/Models/Member.cs src/Umbraco.Core/Models/Membership/MembershipUserExtensions.cs src/Umbraco.Core/Persistence/Factories/MemberFactory.cs src/Umbraco.Core/Persistence/Factories/MemberReadOnlyFactory.cs src/Umbraco.Core/Persistence/Mappers/MemberMapper.cs src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs src/Umbraco.Core/Services/IMembershipUserService.cs src/Umbraco.Core/Services/UserService.cs src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs src/Umbraco.Tests/Services/ContentServiceTests.cs src/Umbraco.Tests/TestHelpers/Entities/MockedMember.cs src/Umbraco.Tests/TestHelpers/Entities/MockedUser.cs src/Umbraco.Web.UI/install/steps/DefaultUser.ascx.cs src/Umbraco.Web/Controllers/UmbProfileController.cs src/Umbraco.Web/Routing/PublishedContentRequestEngine.cs src/Umbraco.Web/Security/WebSecurity.cs src/Umbraco.Web/umbraco.presentation/LegacyClasses.cs src/Umbraco.Web/umbraco.presentation/install/steps/LegacyClasses.cs src/Umbraco.Web/umbraco.presentation/umbraco/channels/UmbracoMetaWeblogAPI.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/member.ascx.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/memberTasks.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/userTasks.cs src/Umbraco.Web/umbraco.presentation/umbraco/dashboard/ChangePassword.ascx.cs src/Umbraco.Web/umbraco.presentation/umbraco/login.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/webservices/MediaUploader.ashx.cs
2014-03-18 18:47:49 +11:00
Assert.That(sut.RawPasswordValue, Is.EqualTo("123"));
}
}
[Test]
public void MemberRepository_Can_Update_Email_And_Login_When_Changed()
{
IMember sut;
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
MemberTypeRepository memberTypeRepository;
Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 Conflicts: src/Umbraco.Core/Configuration/ClientDependencyConfiguration.cs src/Umbraco.Core/Constants-Conventions.cs src/Umbraco.Core/Models/Member.cs src/Umbraco.Core/Models/Membership/IUser.cs src/Umbraco.Core/Models/Template.cs src/Umbraco.Core/Persistence/Factories/MemberReadOnlyFactory.cs src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs src/Umbraco.Core/Persistence/Repositories/Interfaces/IMemberRepository.cs src/Umbraco.Core/Persistence/Repositories/Interfaces/IUserRepository.cs src/Umbraco.Core/Persistence/Repositories/MemberGroupRepository.cs src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs src/Umbraco.Core/Persistence/Repositories/PermissionRepository.cs src/Umbraco.Core/Persistence/RepositoryFactory.cs src/Umbraco.Core/Services/ContentService.cs src/Umbraco.Core/Services/IMemberTypeService.cs src/Umbraco.Core/Services/IMembershipUserService.cs src/Umbraco.Core/Services/IUserService.cs src/Umbraco.Core/Services/MemberService.cs src/Umbraco.Core/Services/MemberTypeService.cs src/Umbraco.Core/Services/ServiceContext.cs src/Umbraco.Core/Services/UserService.cs src/Umbraco.Core/Umbraco.Core.csproj src/Umbraco.Tests/MockTests.cs src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs src/Umbraco.Web.UI/Umbraco.Web.UI.csproj src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/EditProfile.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/Login.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/LoginStatus.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/RegisterMember.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Breadcrumb.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/EditProfile.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListAncestorsFromCurrentPage.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesFromCurrentPage.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesOrderedByDate.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesOrderedByName.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesWithDoctype.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListDescendantsFromCurrentPage.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Login.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/LoginStatus.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/MultinodeTree-picker.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Navigation.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/RegisterMember.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/SiteMap.cshtml src/Umbraco.Web.UI/Umbraco/create/PartialView.ascx.cs src/Umbraco.Web.UI/config/umbracoSettings.config src/Umbraco.Web/Cache/CacheRefresherEventHandler.cs src/Umbraco.Web/Controllers/UmbLoginController.cs src/Umbraco.Web/Controllers/UmbLoginStatusController.cs src/Umbraco.Web/Controllers/UmbProfileController.cs src/Umbraco.Web/Controllers/UmbRegisterController.cs src/Umbraco.Web/Models/LoginModel.cs src/Umbraco.Web/Models/LoginStatusModel.cs src/Umbraco.Web/Models/ProfileModel.cs src/Umbraco.Web/Models/RegisterModel.cs src/Umbraco.Web/Models/UmbracoProperty.cs src/Umbraco.Web/Mvc/UmbracoViewPageOfTModel.cs src/Umbraco.Web/PublishedCache/XmlPublishedCache/PublishedMediaCache.cs src/Umbraco.Web/Security/WebSecurity.cs src/Umbraco.Web/Umbraco.Web.csproj src/Umbraco.Web/UmbracoModule.cs src/Umbraco.Web/WebApi/UmbracoApiController.cs src/Umbraco.Web/umbraco.presentation/library.cs src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentTypeControlNew.ascx.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/PartialViewMacrosTasks.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/PartialViewTasks.cs src/Umbraco.Web/umbraco.presentation/umbraco/editContent.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/login.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/users/EditUser.aspx.cs src/Umbraco.Web/umbraco.presentation/umbracobase/baseLibrary.cs src/Umbraco.Web/umbraco.presentation/umbracobase/restExtension.cs src/umbraco.businesslogic/User.cs src/umbraco.providers/UsersMembershipProvider.cs src/umbraco.providers/members/UmbracoMembershipProvider.cs
2014-02-13 16:22:51 +11:00
MemberGroupRepository memberGroupRepository;
using (var repository = CreateRepository(unitOfWork, out memberTypeRepository, out memberGroupRepository))
{
var memberType = MockedContentTypes.CreateSimpleMemberType();
memberTypeRepository.AddOrUpdate(memberType);
unitOfWork.Commit();
var member = MockedMember.CreateSimpleMember(memberType, "Johnny Hefty", "johnny@example.com", "123", "hefty");
repository.AddOrUpdate(member);
unitOfWork.Commit();
sut = repository.Get(member.Id);
sut.Username = "This is new";
sut.Email = "thisisnew@hello.com";
repository.AddOrUpdate(sut);
unitOfWork.Commit();
sut = repository.Get(member.Id);
Assert.That(sut.Email, Is.EqualTo("thisisnew@hello.com"));
Assert.That(sut.Username, Is.EqualTo("This is new"));
}
}
[Test]
public void Can_Create_Correct_Subquery()
{
var query = Query<IMember>.Builder.Where(x =>
((Member) x).LongStringPropertyValue.Contains("1095") &&
((Member) x).PropertyTypeAlias == "headshot");
var sqlSubquery = GetSubquery();
var translator = new SqlTranslator<IMember>(sqlSubquery, query);
var subquery = translator.Translate();
var sql = GetBaseQuery(false)
.Append(new Sql("WHERE umbracoNode.id IN (" + subquery.SQL + ")", subquery.Arguments))
.OrderByDescending<ContentVersionDto>(x => x.VersionDate)
.OrderBy<NodeDto>(x => x.SortOrder);
Console.WriteLine(sql.SQL);
Assert.That(sql.SQL, Is.Not.Empty);
}
private IMember CreateTestMember(IMemberType memberType = null, string name = null, string email = null, string password = null, string username = null, Guid? key = null)
{
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
MemberTypeRepository memberTypeRepository;
Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 Conflicts: src/Umbraco.Core/Configuration/ClientDependencyConfiguration.cs src/Umbraco.Core/Constants-Conventions.cs src/Umbraco.Core/Models/Member.cs src/Umbraco.Core/Models/Membership/IUser.cs src/Umbraco.Core/Models/Template.cs src/Umbraco.Core/Persistence/Factories/MemberReadOnlyFactory.cs src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs src/Umbraco.Core/Persistence/Repositories/Interfaces/IMemberRepository.cs src/Umbraco.Core/Persistence/Repositories/Interfaces/IUserRepository.cs src/Umbraco.Core/Persistence/Repositories/MemberGroupRepository.cs src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs src/Umbraco.Core/Persistence/Repositories/PermissionRepository.cs src/Umbraco.Core/Persistence/RepositoryFactory.cs src/Umbraco.Core/Services/ContentService.cs src/Umbraco.Core/Services/IMemberTypeService.cs src/Umbraco.Core/Services/IMembershipUserService.cs src/Umbraco.Core/Services/IUserService.cs src/Umbraco.Core/Services/MemberService.cs src/Umbraco.Core/Services/MemberTypeService.cs src/Umbraco.Core/Services/ServiceContext.cs src/Umbraco.Core/Services/UserService.cs src/Umbraco.Core/Umbraco.Core.csproj src/Umbraco.Tests/MockTests.cs src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs src/Umbraco.Web.UI/Umbraco.Web.UI.csproj src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/EditProfile.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/Login.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/LoginStatus.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/RegisterMember.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Breadcrumb.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/EditProfile.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListAncestorsFromCurrentPage.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesFromCurrentPage.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesOrderedByDate.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesOrderedByName.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesWithDoctype.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListDescendantsFromCurrentPage.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Login.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/LoginStatus.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/MultinodeTree-picker.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Navigation.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/RegisterMember.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/SiteMap.cshtml src/Umbraco.Web.UI/Umbraco/create/PartialView.ascx.cs src/Umbraco.Web.UI/config/umbracoSettings.config src/Umbraco.Web/Cache/CacheRefresherEventHandler.cs src/Umbraco.Web/Controllers/UmbLoginController.cs src/Umbraco.Web/Controllers/UmbLoginStatusController.cs src/Umbraco.Web/Controllers/UmbProfileController.cs src/Umbraco.Web/Controllers/UmbRegisterController.cs src/Umbraco.Web/Models/LoginModel.cs src/Umbraco.Web/Models/LoginStatusModel.cs src/Umbraco.Web/Models/ProfileModel.cs src/Umbraco.Web/Models/RegisterModel.cs src/Umbraco.Web/Models/UmbracoProperty.cs src/Umbraco.Web/Mvc/UmbracoViewPageOfTModel.cs src/Umbraco.Web/PublishedCache/XmlPublishedCache/PublishedMediaCache.cs src/Umbraco.Web/Security/WebSecurity.cs src/Umbraco.Web/Umbraco.Web.csproj src/Umbraco.Web/UmbracoModule.cs src/Umbraco.Web/WebApi/UmbracoApiController.cs src/Umbraco.Web/umbraco.presentation/library.cs src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentTypeControlNew.ascx.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/PartialViewMacrosTasks.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/PartialViewTasks.cs src/Umbraco.Web/umbraco.presentation/umbraco/editContent.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/login.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/users/EditUser.aspx.cs src/Umbraco.Web/umbraco.presentation/umbracobase/baseLibrary.cs src/Umbraco.Web/umbraco.presentation/umbracobase/restExtension.cs src/umbraco.businesslogic/User.cs src/umbraco.providers/UsersMembershipProvider.cs src/umbraco.providers/members/UmbracoMembershipProvider.cs
2014-02-13 16:22:51 +11:00
MemberGroupRepository memberGroupRepository;
using (var repository = CreateRepository(unitOfWork, out memberTypeRepository, out memberGroupRepository))
{
if (memberType == null)
{
memberType = MockedContentTypes.CreateSimpleMemberType();
memberTypeRepository.AddOrUpdate(memberType);
unitOfWork.Commit();
}
var member = MockedMember.CreateSimpleMember(memberType, name ?? "Johnny Hefty", email ?? "johnny@example.com", password ?? "123", username ?? "hefty", key);
repository.AddOrUpdate(member);
unitOfWork.Commit();
return member;
}
}
private IMemberType CreateTestMemberType(string alias = null)
{
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
MemberTypeRepository memberTypeRepository;
Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 Conflicts: src/Umbraco.Core/Configuration/ClientDependencyConfiguration.cs src/Umbraco.Core/Constants-Conventions.cs src/Umbraco.Core/Models/Member.cs src/Umbraco.Core/Models/Membership/IUser.cs src/Umbraco.Core/Models/Template.cs src/Umbraco.Core/Persistence/Factories/MemberReadOnlyFactory.cs src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs src/Umbraco.Core/Persistence/Repositories/Interfaces/IMemberRepository.cs src/Umbraco.Core/Persistence/Repositories/Interfaces/IUserRepository.cs src/Umbraco.Core/Persistence/Repositories/MemberGroupRepository.cs src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs src/Umbraco.Core/Persistence/Repositories/PermissionRepository.cs src/Umbraco.Core/Persistence/RepositoryFactory.cs src/Umbraco.Core/Services/ContentService.cs src/Umbraco.Core/Services/IMemberTypeService.cs src/Umbraco.Core/Services/IMembershipUserService.cs src/Umbraco.Core/Services/IUserService.cs src/Umbraco.Core/Services/MemberService.cs src/Umbraco.Core/Services/MemberTypeService.cs src/Umbraco.Core/Services/ServiceContext.cs src/Umbraco.Core/Services/UserService.cs src/Umbraco.Core/Umbraco.Core.csproj src/Umbraco.Tests/MockTests.cs src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs src/Umbraco.Web.UI/Umbraco.Web.UI.csproj src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/EditProfile.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/Login.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/LoginStatus.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/RegisterMember.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Breadcrumb.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/EditProfile.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListAncestorsFromCurrentPage.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesFromCurrentPage.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesOrderedByDate.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesOrderedByName.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesWithDoctype.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListDescendantsFromCurrentPage.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Login.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/LoginStatus.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/MultinodeTree-picker.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Navigation.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/RegisterMember.cshtml src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/SiteMap.cshtml src/Umbraco.Web.UI/Umbraco/create/PartialView.ascx.cs src/Umbraco.Web.UI/config/umbracoSettings.config src/Umbraco.Web/Cache/CacheRefresherEventHandler.cs src/Umbraco.Web/Controllers/UmbLoginController.cs src/Umbraco.Web/Controllers/UmbLoginStatusController.cs src/Umbraco.Web/Controllers/UmbProfileController.cs src/Umbraco.Web/Controllers/UmbRegisterController.cs src/Umbraco.Web/Models/LoginModel.cs src/Umbraco.Web/Models/LoginStatusModel.cs src/Umbraco.Web/Models/ProfileModel.cs src/Umbraco.Web/Models/RegisterModel.cs src/Umbraco.Web/Models/UmbracoProperty.cs src/Umbraco.Web/Mvc/UmbracoViewPageOfTModel.cs src/Umbraco.Web/PublishedCache/XmlPublishedCache/PublishedMediaCache.cs src/Umbraco.Web/Security/WebSecurity.cs src/Umbraco.Web/Umbraco.Web.csproj src/Umbraco.Web/UmbracoModule.cs src/Umbraco.Web/WebApi/UmbracoApiController.cs src/Umbraco.Web/umbraco.presentation/library.cs src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentTypeControlNew.ascx.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/PartialViewMacrosTasks.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/PartialViewTasks.cs src/Umbraco.Web/umbraco.presentation/umbraco/editContent.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/login.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/users/EditUser.aspx.cs src/Umbraco.Web/umbraco.presentation/umbracobase/baseLibrary.cs src/Umbraco.Web/umbraco.presentation/umbracobase/restExtension.cs src/umbraco.businesslogic/User.cs src/umbraco.providers/UsersMembershipProvider.cs src/umbraco.providers/members/UmbracoMembershipProvider.cs
2014-02-13 16:22:51 +11:00
MemberGroupRepository memberGroupRepository;
using (var repository = CreateRepository(unitOfWork, out memberTypeRepository, out memberGroupRepository))
{
var memberType = MockedContentTypes.CreateSimpleMemberType(alias);
memberTypeRepository.AddOrUpdate(memberType);
unitOfWork.Commit();
return memberType;
}
}
private Sql GetBaseQuery(bool isCount)
{
if (isCount)
{
var sqlCount = new Sql()
.Select("COUNT(*)")
.From<NodeDto>()
.InnerJoin<ContentDto>().On<ContentDto, NodeDto>(left => left.NodeId, right => right.NodeId)
.InnerJoin<ContentTypeDto>().On<ContentTypeDto, ContentDto>(left => left.NodeId, right => right.ContentTypeId)
.InnerJoin<ContentVersionDto>().On<ContentVersionDto, NodeDto>(left => left.NodeId, right => right.NodeId)
.InnerJoin<MemberDto>().On<MemberDto, ContentDto>(left => left.NodeId, right => right.NodeId)
.Where<NodeDto>(x => x.NodeObjectType == NodeObjectTypeId);
return sqlCount;
}
var sql = new Sql();
sql.Select("umbracoNode.*", "cmsContent.contentType", "cmsContentType.alias AS ContentTypeAlias", "cmsContentVersion.VersionId",
"cmsContentVersion.VersionDate", "cmsMember.Email",
"cmsMember.LoginName", "cmsMember.Password", "cmsPropertyData.id AS PropertyDataId", "cmsPropertyData.propertytypeid",
"cmsPropertyData.dataDate", "cmsPropertyData.dataInt", "cmsPropertyData.dataNtext", "cmsPropertyData.dataNvarchar",
"cmsPropertyType.id", "cmsPropertyType.Alias", "cmsPropertyType.Description",
"cmsPropertyType.Name", "cmsPropertyType.mandatory", "cmsPropertyType.validationRegExp",
"cmsPropertyType.sortOrder AS PropertyTypeSortOrder", "cmsPropertyType.propertyTypeGroupId",
"cmsPropertyType.dataTypeId", "cmsDataType.propertyEditorAlias", "cmsDataType.dbType")
.From<NodeDto>()
.InnerJoin<ContentDto>().On<ContentDto, NodeDto>(left => left.NodeId, right => right.NodeId)
.InnerJoin<ContentTypeDto>().On<ContentTypeDto, ContentDto>(left => left.NodeId, right => right.ContentTypeId)
.InnerJoin<ContentVersionDto>().On<ContentVersionDto, NodeDto>(left => left.NodeId, right => right.NodeId)
.InnerJoin<MemberDto>().On<MemberDto, ContentDto>(left => left.NodeId, right => right.NodeId)
.LeftJoin<PropertyTypeDto>().On<PropertyTypeDto, ContentDto>(left => left.ContentTypeId, right => right.ContentTypeId)
.LeftJoin<DataTypeDto>().On<DataTypeDto, PropertyTypeDto>(left => left.DataTypeId, right => right.DataTypeId)
.LeftJoin<PropertyDataDto>().On<PropertyDataDto, PropertyTypeDto>(left => left.PropertyTypeId, right => right.Id)
.Append("AND cmsPropertyData.versionId = cmsContentVersion.VersionId")
.Where<NodeDto>(x => x.NodeObjectType == NodeObjectTypeId);
return sql;
}
private Sql GetSubquery()
{
var sql = new Sql();
sql.Select("umbracoNode.id")
.From<NodeDto>()
.InnerJoin<ContentDto>().On<ContentDto, NodeDto>(left => left.NodeId, right => right.NodeId)
.InnerJoin<ContentTypeDto>().On<ContentTypeDto, ContentDto>(left => left.NodeId, right => right.ContentTypeId)
.InnerJoin<ContentVersionDto>().On<ContentVersionDto, NodeDto>(left => left.NodeId, right => right.NodeId)
.InnerJoin<MemberDto>().On<MemberDto, ContentDto>(left => left.NodeId, right => right.NodeId)
.LeftJoin<PropertyTypeDto>().On<PropertyTypeDto, ContentDto>(left => left.ContentTypeId, right => right.ContentTypeId)
.LeftJoin<DataTypeDto>().On<DataTypeDto, PropertyTypeDto>(left => left.DataTypeId, right => right.DataTypeId)
.LeftJoin<PropertyDataDto>().On<PropertyDataDto, PropertyTypeDto>(left => left.PropertyTypeId, right => right.Id)
.Append("AND cmsPropertyData.versionId = cmsContentVersion.VersionId")
.Where<NodeDto>(x => x.NodeObjectType == NodeObjectTypeId);
return sql;
}
private Guid NodeObjectTypeId
{
get { return new Guid(Constants.ObjectTypes.Member); }
}
}
}