Updated UserService, didn't need one of the methods on there, updated the unit tests to test all the other methods.

This commit is contained in:
Shannon
2013-07-03 17:09:14 +10:00
parent 5d76ead469
commit d67480e98b
4 changed files with 97 additions and 55 deletions

View File

@@ -7,6 +7,11 @@ namespace Umbraco.Core.Persistence.Repositories
IProfile GetProfileById(int id);
IProfile GetProfileByUserName(string username);
IUser GetUserByUserName(string username);
IUser GetUserById(int id);
/// <summary>
/// This is useful when an entire section is removed from config
/// </summary>
/// <param name="sectionAlias"></param>
void DeleteSectionFromAllUsers(string sectionAlias);
}
}

View File

@@ -227,46 +227,13 @@ namespace Umbraco.Core.Persistence.Repositories
public IUser GetUserByUserName(string username)
{
var sql = GetBaseQuery(false);
sql.Where("umbracoUser.userLogin = @Username", new { Username = username });
var dto = Database.FirstOrDefault<UserDto>(sql);
if (dto == null)
return null;
return new User(_userTypeRepository.Get(dto.Type))
{
Id = dto.Id,
Email = dto.Email,
Language = dto.UserLanguage,
Name = dto.UserName,
NoConsole = dto.NoConsole,
IsLockedOut = dto.Disabled
};
var query = Query<IUser>.Builder.Where(x => x.Username == username);
return GetByQuery(query).FirstOrDefault();
}
public IUser GetUserById(int id)
public void DeleteSectionFromAllUsers(string sectionAlias)
{
var sql = GetBaseQuery(false);
sql.Where(GetBaseWhereClause(), new { Id = id });
var dto = Database.FirstOrDefault<UserDto>(sql);
if (dto == null)
return null;
return new User(_userTypeRepository.Get(dto.Type))
{
Id = dto.Id,
Email = dto.Email,
Language = dto.UserLanguage,
Name = dto.UserName,
NoConsole = dto.NoConsole,
IsLockedOut = dto.Disabled
};
throw new NotImplementedException();
}
#endregion

View File

@@ -66,7 +66,7 @@ namespace Umbraco.Core.Services
{
using (var repository = _repositoryFactory.CreateUserRepository(_uowProvider.GetUnitOfWork()))
{
return repository.GetUserById(id);
return repository.Get(id);
}
}

View File

@@ -188,21 +188,7 @@ namespace Umbraco.Tests.Persistence.Repositories
var updatedItem = repository.Get((int)user.Id);
// Assert
Assert.That(updatedItem.Id, Is.EqualTo(user.Id));
Assert.That(updatedItem.Name, Is.EqualTo(user.Name));
Assert.That(updatedItem.Permissions, Is.EqualTo(user.Permissions));
Assert.That(updatedItem.Language, Is.EqualTo(user.Language));
Assert.That(updatedItem.IsApproved, Is.EqualTo(user.IsApproved));
Assert.That(updatedItem.Password, Is.EqualTo(user.Password));
Assert.That(updatedItem.NoConsole, Is.EqualTo(user.NoConsole));
Assert.That(updatedItem.StartContentId, Is.EqualTo(user.StartContentId));
Assert.That(updatedItem.StartMediaId, Is.EqualTo(user.StartMediaId));
Assert.That(updatedItem.DefaultToLiveEditing, Is.EqualTo(user.DefaultToLiveEditing));
Assert.That(updatedItem.Email, Is.EqualTo(user.Email));
Assert.That(updatedItem.Username, Is.EqualTo(user.Username));
Assert.That(updatedItem.AllowedSections.Count(), Is.EqualTo(2));
Assert.IsTrue(updatedItem.AllowedSections.Contains("media"));
Assert.IsTrue(updatedItem.AllowedSections.Contains("content"));
AssertPropertyValues(updatedItem, user);
}
[Test]
@@ -388,6 +374,90 @@ namespace Umbraco.Tests.Persistence.Repositories
Assert.IsTrue(result.AllowedSections.Contains("media"));
}
[Test]
public void Get_By_Profile_Id()
{
// Arrange
var provider = new PetaPocoUnitOfWorkProvider();
var unitOfWork = provider.GetUnitOfWork();
var repository = RepositoryResolver.Current.ResolveByType<IUserRepository>(unitOfWork);
var user = MockedUser.CreateUser(CreateAndCommitUserType());
repository.AddOrUpdate(user);
unitOfWork.Commit();
// Act
var profile = repository.GetProfileById((int)user.Id);
unitOfWork.Commit();
// Assert
Assert.IsNotNull(profile);
Assert.AreEqual(user.Username, profile.Name);
Assert.AreEqual(user.Id, profile.Id);
}
[Test]
public void Get_By_Profile_Username()
{
// Arrange
var provider = new PetaPocoUnitOfWorkProvider();
var unitOfWork = provider.GetUnitOfWork();
var repository = RepositoryResolver.Current.ResolveByType<IUserRepository>(unitOfWork);
var user = MockedUser.CreateUser(CreateAndCommitUserType());
repository.AddOrUpdate(user);
unitOfWork.Commit();
// Act
var profile = repository.GetProfileByUserName(user.Username);
unitOfWork.Commit();
// Assert
Assert.IsNotNull(profile);
Assert.AreEqual(user.Username, profile.Name);
Assert.AreEqual(user.Id, profile.Id);
}
[Test]
public void Get_User_By_Username()
{
// Arrange
var provider = new PetaPocoUnitOfWorkProvider();
var unitOfWork = provider.GetUnitOfWork();
var repository = RepositoryResolver.Current.ResolveByType<IUserRepository>(unitOfWork);
var user = MockedUser.CreateUser(CreateAndCommitUserType());
repository.AddOrUpdate(user);
unitOfWork.Commit();
// Act
var userByUsername = repository.GetUserByUserName(user.Username);
unitOfWork.Commit();
// Assert
Assert.IsNotNull(userByUsername);
AssertPropertyValues(userByUsername, user);
}
private void AssertPropertyValues(IUser updatedItem, IUser originalUser)
{
Assert.That(updatedItem.Id, Is.EqualTo(originalUser.Id));
Assert.That(updatedItem.Name, Is.EqualTo(originalUser.Name));
Assert.That(updatedItem.Permissions, Is.EqualTo(originalUser.Permissions));
Assert.That(updatedItem.Language, Is.EqualTo(originalUser.Language));
Assert.That(updatedItem.IsApproved, Is.EqualTo(originalUser.IsApproved));
Assert.That(updatedItem.Password, Is.EqualTo(originalUser.Password));
Assert.That(updatedItem.NoConsole, Is.EqualTo(originalUser.NoConsole));
Assert.That(updatedItem.StartContentId, Is.EqualTo(originalUser.StartContentId));
Assert.That(updatedItem.StartMediaId, Is.EqualTo(originalUser.StartMediaId));
Assert.That(updatedItem.DefaultToLiveEditing, Is.EqualTo(originalUser.DefaultToLiveEditing));
Assert.That(updatedItem.Email, Is.EqualTo(originalUser.Email));
Assert.That(updatedItem.Username, Is.EqualTo(originalUser.Username));
Assert.That(updatedItem.AllowedSections.Count(), Is.EqualTo(2));
Assert.IsTrue(updatedItem.AllowedSections.Contains("media"));
Assert.IsTrue(updatedItem.AllowedSections.Contains("content"));
}
private IUser[] CreateAndCommitMultipleUsers(IUserRepository repository, IUnitOfWork unitOfWork)
{
var user1 = MockedUser.CreateUser(CreateAndCommitUserType(), "1");