Migrate MemberRepositoryTest
This commit is contained in:
@@ -163,7 +163,7 @@ namespace Umbraco.Tests.Integration.Implementations
|
||||
|
||||
public void AssertPropertyValuesAreEqual(object actual, object expected, string dateTimeFormat = null, Func<IEnumerable, IEnumerable> sorter = null, string[] ignoreProperties = null)
|
||||
{
|
||||
const int dateDeltaMilliseconds = 500; // .5s
|
||||
const int dateDeltaMilliseconds = 1000; // 1s
|
||||
|
||||
var properties = expected.GetType().GetProperties();
|
||||
foreach (var property in properties)
|
||||
@@ -173,7 +173,7 @@ namespace Umbraco.Tests.Integration.Implementations
|
||||
if (att != null && att.State == EditorBrowsableState.Never)
|
||||
continue;
|
||||
|
||||
// ignore explicitely ignored properties
|
||||
// ignore explicitly ignored properties
|
||||
if (ignoreProperties != null && ignoreProperties.Contains(property.Name))
|
||||
continue;
|
||||
|
||||
@@ -209,7 +209,7 @@ namespace Umbraco.Tests.Integration.Implementations
|
||||
AssertAreEqual(property, expectedListEx[i], actualListEx[i], sorter, dateDeltaMilliseconds);
|
||||
}
|
||||
|
||||
private static void AssertAreEqual(PropertyInfo property, object expected, object actual, Func<IEnumerable, IEnumerable> sorter = null, int dateDeltaMilliseconds = 0)
|
||||
private static void AssertAreEqual(PropertyInfo property, object expected, object actual, Func<IEnumerable, IEnumerable> sorter = null, int dateDeltaMilliseconds = 0)
|
||||
{
|
||||
if (!(expected is string) && expected is IEnumerable)
|
||||
{
|
||||
@@ -238,8 +238,27 @@ namespace Umbraco.Tests.Integration.Implementations
|
||||
Assert.Fail($"{property.DeclaringType.Name}.{property.Name}: Expected {expectedPropertyValues.Length} but got {actualPropertyValues.Length}.");
|
||||
for (var i = 0; i < expectedPropertyValues.Length; i++)
|
||||
{
|
||||
Assert.AreEqual(expectedPropertyValues[i].EditedValue, actualPropertyValues[i].EditedValue, $"{property.DeclaringType.Name}.{property.Name}: Expected draft value \"{expectedPropertyValues[i].EditedValue}\" but got \"{actualPropertyValues[i].EditedValue}\".");
|
||||
Assert.AreEqual(expectedPropertyValues[i].PublishedValue, actualPropertyValues[i].PublishedValue, $"{property.DeclaringType.Name}.{property.Name}: Expected published value \"{expectedPropertyValues[i].EditedValue}\" but got \"{actualPropertyValues[i].EditedValue}\".");
|
||||
// This is not pretty, but since a property value can be a datetime we can't just always compare them as is.
|
||||
// This is made worse by the fact that PublishedValue is not always set, meaning we can't lump it all into the same if block
|
||||
if (expectedPropertyValues[i].EditedValue is DateTime expectedEditDateTime)
|
||||
{
|
||||
var actualEditDateTime = (DateTime) actualPropertyValues[i].EditedValue;
|
||||
AssertDateTime(expectedEditDateTime, actualEditDateTime, $"{property.DeclaringType.Name}.{property.Name}: Expected draft value \"{expectedPropertyValues[i].EditedValue}\" but got \"{actualPropertyValues[i].EditedValue}\".", dateDeltaMilliseconds);
|
||||
}
|
||||
else
|
||||
{
|
||||
Assert.AreEqual(expectedPropertyValues[i].EditedValue, actualPropertyValues[i].EditedValue, $"{property.DeclaringType.Name}.{property.Name}: Expected draft value \"{expectedPropertyValues[i].EditedValue}\" but got \"{actualPropertyValues[i].EditedValue}\".");
|
||||
}
|
||||
|
||||
if (expectedPropertyValues[i].PublishedValue is DateTime expectedPublishDateTime)
|
||||
{
|
||||
var actualPublishedDateTime = (DateTime) actualPropertyValues[i].PublishedValue;
|
||||
AssertDateTime(expectedPublishDateTime, actualPublishedDateTime, $"{property.DeclaringType.Name}.{property.Name}: Expected published value \"{expectedPropertyValues[i].PublishedValue}\" but got \"{actualPropertyValues[i].PublishedValue}\".", dateDeltaMilliseconds);
|
||||
}
|
||||
else
|
||||
{
|
||||
Assert.AreEqual(expectedPropertyValues[i].PublishedValue, actualPropertyValues[i].PublishedValue, $"{property.DeclaringType.Name}.{property.Name}: Expected published value \"{expectedPropertyValues[i].PublishedValue}\" but got \"{actualPropertyValues[i].PublishedValue}\".");
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (expected is IDataEditor expectedEditor)
|
||||
@@ -256,5 +275,12 @@ namespace Umbraco.Tests.Integration.Implementations
|
||||
expected?.ToString() ?? "<null>", actual?.ToString() ?? "<null>");
|
||||
}
|
||||
}
|
||||
|
||||
private static void AssertDateTime(DateTime expected, DateTime actual, string failureMessage,
|
||||
int dateDeltaMiliseconds = 0)
|
||||
{
|
||||
var delta = (actual - expected).TotalMilliseconds;
|
||||
Assert.IsTrue(Math.Abs(delta) <= dateDeltaMiliseconds, failureMessage);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,6 @@ using NPoco;
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Cache;
|
||||
using Umbraco.Core.Configuration.Models;
|
||||
using Umbraco.Core.Models;
|
||||
using Umbraco.Core.Persistence;
|
||||
using Umbraco.Core.Persistence.Dtos;
|
||||
@@ -16,44 +15,42 @@ using Umbraco.Core.Persistence.Repositories;
|
||||
using Umbraco.Core.Persistence.Repositories.Implement;
|
||||
using Umbraco.Core.PropertyEditors;
|
||||
using Umbraco.Core.Scoping;
|
||||
using Umbraco.Tests.TestHelpers;
|
||||
using Umbraco.Tests.TestHelpers.Entities;
|
||||
using Umbraco.Core.Security;
|
||||
using Umbraco.Core.Services;
|
||||
using Umbraco.Tests.Common.Builders;
|
||||
using Umbraco.Tests.Integration.Testing;
|
||||
using Umbraco.Tests.Testing;
|
||||
|
||||
namespace Umbraco.Tests.Persistence.Repositories
|
||||
namespace Umbraco.Tests.Integration.Umbraco.Infrastructure.Persistence.Repositories
|
||||
{
|
||||
[TestFixture]
|
||||
[UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest)]
|
||||
public class MemberRepositoryTest : TestWithDatabaseBase
|
||||
public class MemberRepositoryTest : UmbracoIntegrationTest
|
||||
{
|
||||
private MemberRepository CreateRepository(IScopeProvider provider, out MemberTypeRepository memberTypeRepository, out MemberGroupRepository memberGroupRepository)
|
||||
private IPasswordHasher PasswordHasher => GetRequiredService<IPasswordHasher>();
|
||||
private IDataTypeService DataTypeService => GetRequiredService<IDataTypeService>();
|
||||
private IMemberTypeRepository MemberTypeRepository => GetRequiredService<IMemberTypeRepository>();
|
||||
private IMemberGroupRepository MemberGroupRepository => GetRequiredService<IMemberGroupRepository>();
|
||||
|
||||
private MemberRepository CreateRepository(IScopeProvider provider)
|
||||
{
|
||||
var accessor = (IScopeAccessor) provider;
|
||||
var globalSettings = new GlobalSettings();
|
||||
var templateRepository = Mock.Of<ITemplateRepository>();
|
||||
var commonRepository = new ContentTypeCommonRepository(accessor, templateRepository, AppCaches, ShortStringHelper);
|
||||
var languageRepository = new LanguageRepository(accessor, AppCaches.Disabled, LoggerFactory.CreateLogger<LanguageRepository>(), Microsoft.Extensions.Options.Options.Create(globalSettings));
|
||||
memberTypeRepository = new MemberTypeRepository(accessor, AppCaches.Disabled, LoggerFactory.CreateLogger<MemberTypeRepository>(), commonRepository, languageRepository, ShortStringHelper);
|
||||
memberGroupRepository = new MemberGroupRepository(accessor, AppCaches.Disabled, LoggerFactory.CreateLogger<MemberGroupRepository>());
|
||||
var tagRepo = new TagRepository(accessor, AppCaches.Disabled, LoggerFactory.CreateLogger<TagRepository>());
|
||||
var relationTypeRepository = new RelationTypeRepository(accessor, AppCaches.Disabled, LoggerFactory.CreateLogger<RelationTypeRepository>());
|
||||
var entityRepository = new EntityRepository(accessor);
|
||||
var relationRepository = new RelationRepository(accessor, LoggerFactory.CreateLogger<RelationRepository>(), relationTypeRepository, entityRepository);
|
||||
var tagRepo = GetRequiredService<ITagRepository>();
|
||||
var relationTypeRepository = GetRequiredService<IRelationTypeRepository>();
|
||||
var relationRepository = GetRequiredService<IRelationRepository>();
|
||||
var propertyEditors = new Lazy<PropertyEditorCollection>(() => new PropertyEditorCollection(new DataEditorCollection(Enumerable.Empty<IDataEditor>())));
|
||||
var dataValueReferences = new DataValueReferenceFactoryCollection(Enumerable.Empty<IDataValueReferenceFactory>());
|
||||
var repository = new MemberRepository(accessor, AppCaches.Disabled, LoggerFactory.CreateLogger<MemberRepository>(), memberTypeRepository, memberGroupRepository, tagRepo, Mock.Of<ILanguageRepository>(), relationRepository, relationTypeRepository, PasswordHasher, propertyEditors, dataValueReferences, DataTypeService);
|
||||
var repository = new MemberRepository(accessor, AppCaches.Disabled, LoggerFactory.CreateLogger<MemberRepository>(), MemberTypeRepository, MemberGroupRepository, tagRepo, Mock.Of<ILanguageRepository>(), relationRepository, relationTypeRepository, PasswordHasher, propertyEditors, dataValueReferences, DataTypeService);
|
||||
return repository;
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void GetMember()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
MemberTypeRepository memberTypeRepository;
|
||||
MemberGroupRepository memberGroupRepository;
|
||||
var repository = CreateRepository(provider, out memberTypeRepository, out memberGroupRepository);
|
||||
var repository = CreateRepository(provider);
|
||||
|
||||
var member = CreateTestMember();
|
||||
|
||||
@@ -67,12 +64,10 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void GetMembers()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
MemberTypeRepository memberTypeRepository;
|
||||
MemberGroupRepository memberGroupRepository;
|
||||
var repository = CreateRepository(provider, out memberTypeRepository, out memberGroupRepository);
|
||||
var repository = CreateRepository(provider);
|
||||
|
||||
var type = CreateTestMemberType();
|
||||
var m1 = CreateTestMember(type, "Test 1", "test1@test.com", "pass1", "test1");
|
||||
@@ -90,12 +85,10 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void GetAllMembers()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
MemberTypeRepository memberTypeRepository;
|
||||
MemberGroupRepository memberGroupRepository;
|
||||
var repository = CreateRepository(provider, out memberTypeRepository, out memberGroupRepository);
|
||||
var repository = CreateRepository(provider);
|
||||
|
||||
var type = CreateTestMemberType();
|
||||
for (var i = 0; i < 5; i++)
|
||||
@@ -116,12 +109,10 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
public void QueryMember()
|
||||
{
|
||||
// Arrange
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
MemberTypeRepository memberTypeRepository;
|
||||
MemberGroupRepository memberGroupRepository;
|
||||
var repository = CreateRepository(provider, out memberTypeRepository, out memberGroupRepository);
|
||||
var repository = CreateRepository(provider);
|
||||
|
||||
var key = Guid.NewGuid();
|
||||
var member = CreateTestMember(key: key);
|
||||
@@ -139,12 +130,10 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void SaveMember()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
MemberTypeRepository memberTypeRepository;
|
||||
MemberGroupRepository memberGroupRepository;
|
||||
var repository = CreateRepository(provider, out memberTypeRepository, out memberGroupRepository);
|
||||
var repository = CreateRepository(provider);
|
||||
|
||||
var member = CreateTestMember();
|
||||
|
||||
@@ -164,17 +153,15 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void MemberHasBuiltinProperties()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
MemberTypeRepository memberTypeRepository;
|
||||
MemberGroupRepository memberGroupRepository;
|
||||
var repository = CreateRepository(provider, out memberTypeRepository, out memberGroupRepository);
|
||||
var repository = CreateRepository(provider);
|
||||
|
||||
var memberType = MockedContentTypes.CreateSimpleMemberType();
|
||||
memberTypeRepository.Save(memberType);
|
||||
var memberType = MemberTypeBuilder.CreateSimpleMemberType();
|
||||
MemberTypeRepository.Save(memberType);
|
||||
|
||||
var member = MockedMember.CreateSimpleMember(memberType, "Johnny Hefty", "johnny@example.com", "123", "hefty");
|
||||
var member = MemberBuilder.CreateSimpleMember(memberType, "Johnny Hefty", "johnny@example.com", "123", "hefty");
|
||||
repository.Save(member);
|
||||
|
||||
var sut = repository.Get(member.Id);
|
||||
@@ -196,18 +183,16 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
public void SavingPreservesPassword()
|
||||
{
|
||||
IMember sut;
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
MemberTypeRepository memberTypeRepository;
|
||||
MemberGroupRepository memberGroupRepository;
|
||||
var repository = CreateRepository(provider, out memberTypeRepository, out memberGroupRepository);
|
||||
var repository = CreateRepository(provider);
|
||||
|
||||
var memberType = MockedContentTypes.CreateSimpleMemberType();
|
||||
memberTypeRepository.Save(memberType);
|
||||
var memberType = MemberTypeBuilder.CreateSimpleMemberType();
|
||||
MemberTypeRepository.Save(memberType);
|
||||
|
||||
|
||||
var member = MockedMember.CreateSimpleMember(memberType, "Johnny Hefty", "johnny@example.com", "123", "hefty");
|
||||
var member = MemberBuilder.CreateSimpleMember(memberType, "Johnny Hefty", "johnny@example.com", "123", "hefty");
|
||||
repository.Save(member);
|
||||
|
||||
|
||||
@@ -226,18 +211,16 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
public void SavingUpdatesNameAndEmail()
|
||||
{
|
||||
IMember sut;
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
MemberTypeRepository memberTypeRepository;
|
||||
MemberGroupRepository memberGroupRepository;
|
||||
var repository = CreateRepository(provider, out memberTypeRepository, out memberGroupRepository);
|
||||
var repository = CreateRepository(provider);
|
||||
|
||||
var memberType = MockedContentTypes.CreateSimpleMemberType();
|
||||
memberTypeRepository.Save(memberType);
|
||||
var memberType = MemberTypeBuilder.CreateSimpleMemberType();
|
||||
MemberTypeRepository.Save(memberType);
|
||||
|
||||
|
||||
var member = MockedMember.CreateSimpleMember(memberType, "Johnny Hefty", "johnny@example.com", "123", "hefty");
|
||||
var member = MemberBuilder.CreateSimpleMember(memberType, "Johnny Hefty", "johnny@example.com", "123", "hefty");
|
||||
repository.Save(member);
|
||||
|
||||
|
||||
@@ -256,7 +239,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void QueryMember_WithSubQuery()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
|
||||
var query = provider.SqlContext.Query<IMember>().Where(x =>
|
||||
((Member) x).LongStringPropertyValue.Contains("1095") &&
|
||||
@@ -276,21 +259,19 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
|
||||
private IMember CreateTestMember(IMemberType memberType = null, string name = null, string email = null, string password = null, string username = null, Guid? key = null)
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
MemberTypeRepository memberTypeRepository;
|
||||
MemberGroupRepository memberGroupRepository;
|
||||
var repository = CreateRepository(provider, out memberTypeRepository, out memberGroupRepository);
|
||||
var repository = CreateRepository(provider);
|
||||
|
||||
if (memberType == null)
|
||||
{
|
||||
memberType = MockedContentTypes.CreateSimpleMemberType();
|
||||
memberTypeRepository.Save(memberType);
|
||||
memberType = MemberTypeBuilder.CreateSimpleMemberType();
|
||||
MemberTypeRepository.Save(memberType);
|
||||
|
||||
}
|
||||
|
||||
var member = MockedMember.CreateSimpleMember(memberType, name ?? "Johnny Hefty", email ?? "johnny@example.com", password ?? "123", username ?? "hefty", key);
|
||||
var member = MemberBuilder.CreateSimpleMember(memberType, name ?? "Johnny Hefty", email ?? "johnny@example.com", password ?? "123", username ?? "hefty", key);
|
||||
repository.Save(member);
|
||||
scope.Complete();
|
||||
|
||||
@@ -300,15 +281,13 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
|
||||
private IMemberType CreateTestMemberType(string alias = null)
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
MemberTypeRepository memberTypeRepository;
|
||||
MemberGroupRepository memberGroupRepository;
|
||||
var repository = CreateRepository(provider, out memberTypeRepository, out memberGroupRepository);
|
||||
var repository = CreateRepository(provider);
|
||||
|
||||
var memberType = MockedContentTypes.CreateSimpleMemberType(alias);
|
||||
memberTypeRepository.Save(memberType);
|
||||
var memberType = MemberTypeBuilder.CreateSimpleMemberType(alias);
|
||||
MemberTypeRepository.Save(memberType);
|
||||
scope.Complete();
|
||||
return memberType;
|
||||
}
|
||||
@@ -316,7 +295,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
|
||||
private Sql<ISqlContext> GetBaseQuery(bool isCount)
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
if (isCount)
|
||||
{
|
||||
var sqlCount = provider.SqlContext.Sql()
|
||||
@@ -356,7 +335,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
|
||||
private Sql<ISqlContext> GetSubquery()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
var sql = provider.SqlContext.Sql();
|
||||
sql.Select("umbracoNode.id")
|
||||
.From<NodeDto>()
|
||||
@@ -246,7 +246,6 @@
|
||||
<Compile Include="Web\Mvc\ViewDataDictionaryExtensionTests.cs" />
|
||||
<Compile Include="Persistence\NPocoTests\NPocoBulkInsertTests.cs" />
|
||||
<Compile Include="Persistence\Querying\ContentTypeSqlMappingTests.cs" />
|
||||
<Compile Include="Persistence\Repositories\MemberRepositoryTest.cs" />
|
||||
<Compile Include="Persistence\Repositories\MemberTypeRepositoryTest.cs" />
|
||||
<Compile Include="Persistence\Repositories\TagRepositoryTest.cs" />
|
||||
<Compile Include="PublishedContent\PublishedContentExtensionTests.cs" />
|
||||
|
||||
Reference in New Issue
Block a user