Merge branch 'temp-U4-7372' into 7.4.0

Conflicts:
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSixZeroOne/UpdatePropertyTypesAndGroups.cs
This commit is contained in:
Sebastiaan Janssen
2015-12-03 09:22:19 +01:00
66 changed files with 1683 additions and 1336 deletions

View File

@@ -205,7 +205,7 @@ namespace Umbraco.Tests.Models
}
Assert.AreNotSame(clone.PropertyTypes, contentType.PropertyTypes);
Assert.AreEqual(clone.PropertyTypes.Count(), contentType.PropertyTypes.Count());
Assert.AreEqual(0, ((ContentTypeBase)clone).NonGroupedPropertyTypes.Count());
Assert.AreEqual(0, clone.NoGroupPropertyTypes.Count());
for (var index = 0; index < contentType.PropertyTypes.Count(); index++)
{
Assert.AreNotSame(clone.PropertyTypes.ElementAt(index), contentType.PropertyTypes.ElementAt(index));

View File

@@ -246,7 +246,10 @@ namespace Umbraco.Tests.Models.Mapping
[Test]
public void PropertyGroupBasic_To_PropertyGroup()
{
var basic = new PropertyGroupBasic<PropertyTypeBasic>()
_dataTypeService.Setup(x => x.GetDataTypeDefinitionById(It.IsAny<int>()))
.Returns(new DataTypeDefinition("test"));
var basic = new PropertyGroupBasic<PropertyTypeBasic>
{
Id = 222,
Name = "Group 1",
@@ -286,7 +289,19 @@ namespace Umbraco.Tests.Models.Mapping
}
};
var result = Mapper.Map<PropertyGroup>(basic);
var contentType = new ContentTypeSave
{
Id = 0,
ParentId = -1,
Alias = "alias",
AllowedTemplates = Enumerable.Empty<string>(),
Groups = new[] { basic }
};
// proper group properties mapping takes place when mapping the content type,
// not when mapping the group - because of inherited properties and such
//var result = Mapper.Map<PropertyGroup>(basic);
var result = Mapper.Map<IContentType>(contentType).PropertyGroups[0];
Assert.AreEqual(basic.Name, result.Name);
Assert.AreEqual(basic.Id, result.Id);

View File

@@ -54,8 +54,7 @@ namespace Umbraco.Tests.Models
Key = Guid.NewGuid(),
Name = "Group1",
SortOrder = 555,
UpdateDate = DateTime.Now,
ParentId = 9
UpdateDate = DateTime.Now
};
var clone = (PropertyGroup)pg.DeepClone();
@@ -68,7 +67,6 @@ namespace Umbraco.Tests.Models
Assert.AreEqual(clone.Name, pg.Name);
Assert.AreEqual(clone.SortOrder, pg.SortOrder);
Assert.AreEqual(clone.UpdateDate, pg.UpdateDate);
Assert.AreEqual(clone.ParentId, pg.ParentId);
Assert.AreNotSame(clone.PropertyTypes, pg.PropertyTypes);
Assert.AreEqual(clone.PropertyTypes, pg.PropertyTypes);
Assert.AreEqual(clone.PropertyTypes.Count, pg.PropertyTypes.Count);
@@ -133,8 +131,7 @@ namespace Umbraco.Tests.Models
Key = Guid.NewGuid(),
Name = "Group1",
SortOrder = 555,
UpdateDate = DateTime.Now,
ParentId = 9
UpdateDate = DateTime.Now
};
var result = ss.ToStream(pg);

View File

@@ -305,7 +305,7 @@ namespace Umbraco.Tests.Persistence
DatabaseSchemaHelper.CreateTable<NodeDto>();
DatabaseSchemaHelper.CreateTable<ContentTypeDto>();
DatabaseSchemaHelper.CreateTable<TemplateDto>();
DatabaseSchemaHelper.CreateTable<DocumentTypeDto>();
DatabaseSchemaHelper.CreateTable<ContentTypeTemplateDto>();
//transaction.Complete();
}

View File

@@ -20,19 +20,6 @@ namespace Umbraco.Tests.Persistence.Mappers
Assert.That(column, Is.EqualTo("[cmsPropertyTypeGroup].[id]"));
}
[Test]
public void Can_Map_ParentId_Property()
{
// Arrange
SqlSyntaxContext.SqlSyntaxProvider = new SqlCeSyntaxProvider();
// Act
string column = new PropertyGroupMapper().Map("ParentId");
// Assert
Assert.That(column, Is.EqualTo("[cmsPropertyTypeGroup].[parentGroupId]"));
}
[Test]
public void Can_Map_SortOrder_Property()
{

View File

@@ -27,13 +27,13 @@ namespace Umbraco.Tests.Persistence.Querying
var sql = new Sql();
sql.Select("*")
.From<DocumentTypeDto>()
.From<ContentTypeTemplateDto>()
.RightJoin<ContentTypeDto>()
.On<ContentTypeDto, DocumentTypeDto>(left => left.NodeId, right => right.ContentTypeNodeId)
.On<ContentTypeDto, ContentTypeTemplateDto>(left => left.NodeId, right => right.ContentTypeNodeId)
.InnerJoin<NodeDto>()
.On<ContentTypeDto, NodeDto>(left => left.NodeId, right => right.NodeId)
.Where<NodeDto>(x => x.NodeObjectType == NodeObjectType)
.Where<DocumentTypeDto>(x => x.IsDefault == true);
.Where<ContentTypeTemplateDto>(x => x.IsDefault == true);
Assert.That(sql.SQL, Is.EqualTo(expected.SQL));
@@ -64,13 +64,13 @@ namespace Umbraco.Tests.Persistence.Querying
var sql = new Sql();
sql.Select("*")
.From<DocumentTypeDto>()
.From<ContentTypeTemplateDto>()
.RightJoin<ContentTypeDto>()
.On<ContentTypeDto, DocumentTypeDto>(left => left.NodeId, right => right.ContentTypeNodeId)
.On<ContentTypeDto, ContentTypeTemplateDto>(left => left.NodeId, right => right.ContentTypeNodeId)
.InnerJoin<NodeDto>()
.On<ContentTypeDto, NodeDto>(left => left.NodeId, right => right.NodeId)
.Where<NodeDto>(x => x.NodeObjectType == NodeObjectType)
.Where<DocumentTypeDto>(x => x.IsDefault)
.Where<ContentTypeTemplateDto>(x => x.IsDefault)
.Where<NodeDto>(x => x.NodeId == 1050);
Assert.That(sql.SQL, Is.EqualTo(expected.SQL));

View File

@@ -43,8 +43,8 @@ namespace Umbraco.Tests.Persistence.Querying
DatabaseContext.Database.Insert("cmsContentType", "pk", false, new ContentTypeDto { PrimaryKey = 88889, NodeId = 99999, Alias = "TestContentType3", Icon = "icon-folder", Thumbnail = "folder.png", IsContainer = false, AllowAtRoot = true });
DatabaseContext.Database.Execute(new Sql(string.Format("SET IDENTITY_INSERT {0} OFF ", SqlSyntaxContext.SqlSyntaxProvider.GetQuotedTableName("cmsContentType"))));
DatabaseContext.Database.Insert(new DocumentTypeDto { ContentTypeNodeId = 99997, IsDefault = true, TemplateNodeId = 55555 });
DatabaseContext.Database.Insert(new DocumentTypeDto { ContentTypeNodeId = 99997, IsDefault = false, TemplateNodeId = 55554 });
DatabaseContext.Database.Insert(new ContentTypeTemplateDto { ContentTypeNodeId = 99997, IsDefault = true, TemplateNodeId = 55555 });
DatabaseContext.Database.Insert(new ContentTypeTemplateDto { ContentTypeNodeId = 99997, IsDefault = false, TemplateNodeId = 55554 });
DatabaseContext.Database.Insert(new ContentTypeAllowedContentTypeDto { AllowedId = 99998, Id = 99997, SortOrder = 1 });
DatabaseContext.Database.Insert(new ContentTypeAllowedContentTypeDto { AllowedId = 99999, Id = 99997, SortOrder = 2});

View File

@@ -56,6 +56,17 @@ namespace Umbraco.Tests.Persistence.Repositories
return contentTypeRepository;
}
private MediaTypeRepository CreateMediaTypeRepository(IDatabaseUnitOfWork unitOfWork)
{
var contentTypeRepository = new MediaTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>(), SqlSyntax);
return contentTypeRepository;
}
private EntityContainerRepository CreateContainerRepository(IDatabaseUnitOfWork unitOfWork)
{
return new EntityContainerRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>(), SqlSyntax);
}
//TODO Add test to verify SetDefaultTemplates updates both AllowedTemplates and DefaultTemplate(id).
@@ -100,12 +111,15 @@ namespace Umbraco.Tests.Persistence.Repositories
{
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
using (var containerRepository = CreateContainerRepository(unitOfWork))
using (var repository = CreateRepository(unitOfWork))
{
var container = repository.CreateContainer(-1, "blah", 0);
var container1 = new EntityContainer(Constants.ObjectTypes.DocumentTypeGuid) { Name = "blah1" };
containerRepository.AddOrUpdate(container1);
unitOfWork.Commit();
var container2 = repository.CreateContainer(container.Id, "blah2", 0);
var container2 = new EntityContainer(Constants.ObjectTypes.DocumentTypeGuid) { Name = "blah2", ParentId = container1.Id };
containerRepository.AddOrUpdate(container2);
unitOfWork.Commit();
var contentType = (IContentType) MockedContentTypes.CreateBasicContentType("asdfasdf");
@@ -122,7 +136,7 @@ namespace Umbraco.Tests.Persistence.Repositories
repository.AddOrUpdate(contentType2);
unitOfWork.Commit();
var result = repository.Move(contentType, container.Id).ToArray();
var result = repository.Move(contentType, container1).ToArray();
unitOfWork.Commit();
Assert.AreEqual(2, result.Count());
@@ -131,7 +145,7 @@ namespace Umbraco.Tests.Persistence.Repositories
contentType = repository.Get(contentType.Id);
contentType2 = repository.Get(contentType2.Id);
Assert.AreEqual(container.Id, contentType.ParentId);
Assert.AreEqual(container1.Id, contentType.ParentId);
Assert.AreNotEqual(result.Single(x => x.Entity.Id == contentType.Id).OriginalPath, contentType.Path);
Assert.AreNotEqual(result.Single(x => x.Entity.Id == contentType2.Id).OriginalPath, contentType2.Path);
}
@@ -144,16 +158,16 @@ namespace Umbraco.Tests.Persistence.Repositories
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
EntityContainer container;
using (var repository = CreateRepository(unitOfWork))
using (var containerRepository = CreateContainerRepository(unitOfWork))
{
container = repository.CreateContainer(-1, "blah", 0);
container = new EntityContainer(Constants.ObjectTypes.DocumentTypeGuid) { Name = "blah" };
containerRepository.AddOrUpdate(container);
unitOfWork.Commit();
Assert.That(container.Id, Is.GreaterThan(0));
}
using (var entityRepo = new EntityContainerRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>(), SqlSyntax,
new Guid(Constants.ObjectTypes.DocumentTypeContainer), new Guid(Constants.ObjectTypes.DocumentType)))
using (var containerRepository = CreateContainerRepository(unitOfWork))
{
var found = entityRepo.Get(container.Id);
var found = containerRepository.Get(container.Id);
Assert.IsNotNull(found);
}
}
@@ -164,23 +178,22 @@ namespace Umbraco.Tests.Persistence.Repositories
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
EntityContainer container;
using (var repository = CreateRepository(unitOfWork))
using (var containerRepository = CreateContainerRepository(unitOfWork))
{
container = repository.CreateContainer(-1, "blah", 0);
container = new EntityContainer(Constants.ObjectTypes.DocumentTypeGuid) { Name = "blah" };
containerRepository.AddOrUpdate(container);
unitOfWork.Commit();
}
using (var repository = CreateRepository(unitOfWork))
using (var containerRepository = CreateContainerRepository(unitOfWork))
{
// Act
repository.DeleteContainer(container.Id);
containerRepository.Delete(container);
unitOfWork.Commit();
using (var entityRepo = new EntityContainerRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>(), SqlSyntax,
new Guid(Constants.ObjectTypes.DocumentTypeContainer), new Guid(Constants.ObjectTypes.DocumentType)))
{
var found = entityRepo.Get(container.Id);
Assert.IsNull(found);
}
}
using (var containerRepository = CreateContainerRepository(unitOfWork))
{
var found = containerRepository.Get(container.Id);
Assert.IsNull(found);
}
}
@@ -189,10 +202,11 @@ namespace Umbraco.Tests.Persistence.Repositories
{
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
EntityContainer container;
using (var containerRepository = CreateContainerRepository(unitOfWork))
using (var repository = CreateRepository(unitOfWork))
{
container = repository.CreateContainer(-1, "blah", 0);
var container = new EntityContainer(Constants.ObjectTypes.MediaTypeGuid) { Name = "blah" };
containerRepository.AddOrUpdate(container);
unitOfWork.Commit();
var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test", propertyGroupName: "testGroup");
@@ -210,29 +224,28 @@ namespace Umbraco.Tests.Persistence.Repositories
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
EntityContainer container;
IContentType contentType;
using (var repository = CreateRepository(unitOfWork))
IMediaType contentType;
using (var containerRepository = CreateContainerRepository(unitOfWork))
using (var repository = CreateMediaTypeRepository(unitOfWork))
{
container = repository.CreateContainer(-1, "blah", 0);
container = new EntityContainer(Constants.ObjectTypes.MediaTypeGuid) { Name = "blah" };
containerRepository.AddOrUpdate(container);
unitOfWork.Commit();
contentType = MockedContentTypes.CreateSimpleContentType("test", "Test", propertyGroupName: "testGroup");
contentType = MockedContentTypes.CreateSimpleMediaType("test", "Test", propertyGroupName: "testGroup");
contentType.ParentId = container.Id;
repository.AddOrUpdate(contentType);
unitOfWork.Commit();
}
using (var repository = CreateRepository(unitOfWork))
using (var containerRepository = CreateContainerRepository(unitOfWork))
using (var repository = CreateMediaTypeRepository(unitOfWork))
{
// Act
repository.DeleteContainer(container.Id);
containerRepository.Delete(container);
unitOfWork.Commit();
using (var entityRepo = new EntityContainerRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>(), SqlSyntax,
new Guid(Constants.ObjectTypes.DocumentTypeContainer), new Guid(Constants.ObjectTypes.DocumentType)))
{
var found = entityRepo.Get(container.Id);
Assert.IsNull(found);
}
var found = containerRepository.Get(container.Id);
Assert.IsNull(found);
contentType = repository.Get(contentType.Id);
Assert.IsNotNull(contentType);

View File

@@ -42,6 +42,11 @@ namespace Umbraco.Tests.Persistence.Repositories
return dataTypeDefinitionRepository;
}
private EntityContainerRepository CreateContainerRepository(IDatabaseUnitOfWork unitOfWork)
{
return new EntityContainerRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>(), SqlSyntax);
}
[TestCase("UmbracoPreVal87-21,3,48", 3, true)]
[TestCase("UmbracoPreVal87-21,33,48", 3, false)]
[TestCase("UmbracoPreVal87-21,33,48", 33, true)]
@@ -64,12 +69,15 @@ namespace Umbraco.Tests.Persistence.Repositories
{
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
using (var containerRepository = CreateContainerRepository(unitOfWork))
using (var repository = CreateRepository(unitOfWork))
{
var container = repository.CreateContainer(-1, "blah", 0);
var container1 = new EntityContainer(Constants.ObjectTypes.DataTypeGuid) { Name = "blah1" };
containerRepository.AddOrUpdate(container1);
unitOfWork.Commit();
var container2 = repository.CreateContainer(container.Id, "blah2", 0);
var container2 = new EntityContainer(Constants.ObjectTypes.DataTypeGuid) { Name = "blah2", ParentId = container1.Id };
containerRepository.AddOrUpdate(container2);
unitOfWork.Commit();
var dataType = (IDataTypeDefinition) new DataTypeDefinition(container2.Id, Constants.PropertyEditors.RadioButtonListAlias)
@@ -87,7 +95,7 @@ namespace Umbraco.Tests.Persistence.Repositories
repository.AddOrUpdate(dataType2);
unitOfWork.Commit();
var result = repository.Move(dataType, container.Id).ToArray();
var result = repository.Move(dataType, container1).ToArray();
unitOfWork.Commit();
Assert.AreEqual(2, result.Count());
@@ -96,7 +104,7 @@ namespace Umbraco.Tests.Persistence.Repositories
dataType = repository.Get(dataType.Id);
dataType2 = repository.Get(dataType2.Id);
Assert.AreEqual(container.Id, dataType.ParentId);
Assert.AreEqual(container1.Id, dataType.ParentId);
Assert.AreNotEqual(result.Single(x => x.Entity.Id == dataType.Id).OriginalPath, dataType.Path);
Assert.AreNotEqual(result.Single(x => x.Entity.Id == dataType2.Id).OriginalPath, dataType2.Path);
}
@@ -109,16 +117,16 @@ namespace Umbraco.Tests.Persistence.Repositories
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
EntityContainer container;
using (var repository = CreateRepository(unitOfWork))
using (var containerRepository = CreateContainerRepository(unitOfWork))
{
container = repository.CreateContainer(-1, "blah", 0);
container = new EntityContainer(Constants.ObjectTypes.DataTypeGuid) { Name = "blah" };
containerRepository.AddOrUpdate(container);
unitOfWork.Commit();
Assert.That(container.Id, Is.GreaterThan(0));
}
using (var entityRepo = new EntityContainerRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>(), SqlSyntax,
new Guid(Constants.ObjectTypes.DataTypeContainer), new Guid(Constants.ObjectTypes.DataType)))
using (var containerRepository = CreateContainerRepository(unitOfWork))
{
var found = entityRepo.Get(container.Id);
var found = containerRepository.Get(container.Id);
Assert.IsNotNull(found);
}
}
@@ -129,23 +137,22 @@ namespace Umbraco.Tests.Persistence.Repositories
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
EntityContainer container;
using (var repository = CreateRepository(unitOfWork))
using (var containerRepository = CreateContainerRepository(unitOfWork))
{
container = repository.CreateContainer(-1, "blah", 0);
container = new EntityContainer(Constants.ObjectTypes.DataTypeGuid) { Name = "blah" };
containerRepository.AddOrUpdate(container);
unitOfWork.Commit();
}
using (var repository = CreateRepository(unitOfWork))
using (var containerRepository = CreateContainerRepository(unitOfWork))
{
// Act
repository.DeleteContainer(container.Id);
containerRepository.Delete(container);
unitOfWork.Commit();
using (var entityRepo = new EntityContainerRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>(), SqlSyntax,
new Guid(Constants.ObjectTypes.DataTypeContainer), new Guid(Constants.ObjectTypes.DataType)))
{
var found = entityRepo.Get(container.Id);
Assert.IsNull(found);
}
}
using (var containerRepository = CreateContainerRepository(unitOfWork))
{
var found = containerRepository.Get(container.Id);
Assert.IsNull(found);
}
}
@@ -154,10 +161,11 @@ namespace Umbraco.Tests.Persistence.Repositories
{
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
EntityContainer container;
using (var containerRepository = CreateContainerRepository(unitOfWork))
using (var repository = CreateRepository(unitOfWork))
{
container = repository.CreateContainer(-1, "blah", 0);
var container = new EntityContainer(Constants.ObjectTypes.DataTypeGuid) { Name = "blah" };
containerRepository.AddOrUpdate(container);
unitOfWork.Commit();
var dataTypeDefinition = new DataTypeDefinition(container.Id, Constants.PropertyEditors.RadioButtonListAlias) { Name = "test" };
@@ -175,27 +183,26 @@ namespace Umbraco.Tests.Persistence.Repositories
var unitOfWork = provider.GetUnitOfWork();
EntityContainer container;
IDataTypeDefinition dataType;
using (var containerRepository = CreateContainerRepository(unitOfWork))
using (var repository = CreateRepository(unitOfWork))
{
container = repository.CreateContainer(-1, "blah", 0);
container = new EntityContainer(Constants.ObjectTypes.DataTypeGuid) { Name = "blah" };
containerRepository.AddOrUpdate(container);
unitOfWork.Commit();
dataType = new DataTypeDefinition(container.Id, Constants.PropertyEditors.RadioButtonListAlias) { Name = "test" };
repository.AddOrUpdate(dataType);
unitOfWork.Commit();
}
using (var containerRepository = CreateContainerRepository(unitOfWork))
using (var repository = CreateRepository(unitOfWork))
{
// Act
repository.DeleteContainer(container.Id);
containerRepository.Delete(container);
unitOfWork.Commit();
using (var entityRepo = new EntityContainerRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>(), SqlSyntax,
new Guid(Constants.ObjectTypes.DataTypeContainer), new Guid(Constants.ObjectTypes.DataType)))
{
var found = entityRepo.Get(container.Id);
Assert.IsNull(found);
}
var found = containerRepository.Get(container.Id);
Assert.IsNull(found);
dataType = repository.Get(dataType.Id);
Assert.IsNotNull(dataType);

View File

@@ -31,17 +31,25 @@ namespace Umbraco.Tests.Persistence.Repositories
return new MediaTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>(), SqlSyntax);
}
private EntityContainerRepository CreateContainerRepository(IDatabaseUnitOfWork unitOfWork)
{
return new EntityContainerRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>(), SqlSyntax);
}
[Test]
public void Can_Move()
{
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
using (var containerRepository = CreateContainerRepository(unitOfWork))
using (var repository = CreateRepository(unitOfWork))
{
var container = repository.CreateContainer(-1, "blah", 0);
var container1 = new EntityContainer(Constants.ObjectTypes.MediaTypeGuid) { Name = "blah1" };
containerRepository.AddOrUpdate(container1);
unitOfWork.Commit();
var container2 = repository.CreateContainer(container.Id, "blah2", 0);
var container2 = new EntityContainer(Constants.ObjectTypes.MediaTypeGuid) { Name = "blah2", ParentId = container1.Id };
containerRepository.AddOrUpdate(container2);
unitOfWork.Commit();
var contentType = (IMediaType)MockedContentTypes.CreateVideoMediaType();
@@ -58,7 +66,7 @@ namespace Umbraco.Tests.Persistence.Repositories
repository.AddOrUpdate(contentType2);
unitOfWork.Commit();
var result = repository.Move(contentType, container.Id).ToArray();
var result = repository.Move(contentType, container1).ToArray();
unitOfWork.Commit();
Assert.AreEqual(2, result.Count());
@@ -67,7 +75,7 @@ namespace Umbraco.Tests.Persistence.Repositories
contentType = repository.Get(contentType.Id);
contentType2 = repository.Get(contentType2.Id);
Assert.AreEqual(container.Id, contentType.ParentId);
Assert.AreEqual(container1.Id, contentType.ParentId);
Assert.AreNotEqual(result.Single(x => x.Entity.Id == contentType.Id).OriginalPath, contentType.Path);
Assert.AreNotEqual(result.Single(x => x.Entity.Id == contentType2.Id).OriginalPath, contentType2.Path);
}
@@ -80,16 +88,16 @@ namespace Umbraco.Tests.Persistence.Repositories
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
EntityContainer container;
using (var repository = CreateRepository(unitOfWork))
using (var containerRepository = CreateContainerRepository(unitOfWork))
{
container = repository.CreateContainer(-1, "blah", 0);
container = new EntityContainer(Constants.ObjectTypes.DataTypeGuid) { Name = "blah" };
containerRepository.AddOrUpdate(container);
unitOfWork.Commit();
Assert.That(container.Id, Is.GreaterThan(0));
}
using (var entityRepo = new EntityContainerRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>(), SqlSyntax,
new Guid(Constants.ObjectTypes.MediaTypeContainer), new Guid(Constants.ObjectTypes.MediaType)))
using (var containerRepository = CreateContainerRepository(unitOfWork))
{
var found = entityRepo.Get(container.Id);
var found = containerRepository.Get(container.Id);
Assert.IsNotNull(found);
}
}
@@ -100,23 +108,22 @@ namespace Umbraco.Tests.Persistence.Repositories
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
EntityContainer container;
using (var repository = CreateRepository(unitOfWork))
using (var containerRepository = CreateContainerRepository(unitOfWork))
{
container = repository.CreateContainer(-1, "blah", 0);
container = new EntityContainer(Constants.ObjectTypes.DataTypeGuid) { Name = "blah" };
containerRepository.AddOrUpdate(container);
unitOfWork.Commit();
}
using (var repository = CreateRepository(unitOfWork))
using (var containerRepository = CreateContainerRepository(unitOfWork))
{
// Act
repository.DeleteContainer(container.Id);
containerRepository.Delete(container);
unitOfWork.Commit();
using (var entityRepo = new EntityContainerRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>(), SqlSyntax,
new Guid(Constants.ObjectTypes.MediaTypeContainer), new Guid(Constants.ObjectTypes.MediaType)))
{
var found = entityRepo.Get(container.Id);
Assert.IsNull(found);
}
}
using (var containerRepository = CreateContainerRepository(unitOfWork))
{
var found = containerRepository.Get(container.Id);
Assert.IsNull(found);
}
}
@@ -125,10 +132,11 @@ namespace Umbraco.Tests.Persistence.Repositories
{
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
EntityContainer container;
using (var containerRepository = CreateContainerRepository(unitOfWork))
using (var repository = CreateRepository(unitOfWork))
{
container = repository.CreateContainer(-1, "blah", 0);
var container = new EntityContainer(Constants.ObjectTypes.DataTypeGuid) { Name = "blah" };
containerRepository.AddOrUpdate(container);
unitOfWork.Commit();
var contentType = MockedContentTypes.CreateVideoMediaType();
@@ -147,9 +155,11 @@ namespace Umbraco.Tests.Persistence.Repositories
var unitOfWork = provider.GetUnitOfWork();
EntityContainer container;
IMediaType contentType;
using (var containerRepository = CreateContainerRepository(unitOfWork))
using (var repository = CreateRepository(unitOfWork))
{
container = repository.CreateContainer(-1, "blah", 0);
container = new EntityContainer(Constants.ObjectTypes.MediaTypeGuid) { Name = "blah" };
containerRepository.AddOrUpdate(container);
unitOfWork.Commit();
contentType = MockedContentTypes.CreateVideoMediaType();
@@ -157,18 +167,15 @@ namespace Umbraco.Tests.Persistence.Repositories
repository.AddOrUpdate(contentType);
unitOfWork.Commit();
}
using (var containerRepository = CreateContainerRepository(unitOfWork))
using (var repository = CreateRepository(unitOfWork))
{
// Act
repository.DeleteContainer(container.Id);
containerRepository.Delete(container);
unitOfWork.Commit();
using (var entityRepo = new EntityContainerRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>(), SqlSyntax,
new Guid(Constants.ObjectTypes.MediaTypeContainer), new Guid(Constants.ObjectTypes.MediaType)))
{
var found = entityRepo.Get(container.Id);
Assert.IsNull(found);
}
var found = containerRepository.Get(container.Id);
Assert.IsNull(found);
contentType = repository.Get(contentType.Id);
Assert.IsNotNull(contentType);

View File

@@ -986,7 +986,9 @@ namespace Umbraco.Tests.Services
Assert.That(contentType, Is.Not.Null);
var compositionPropertyGroups = contentType.CompositionPropertyGroups;
Assert.That(compositionPropertyGroups.Count(x => x.Name.Equals("Content_")), Is.EqualTo(0));
// now it is still 1, because we don't propagate renames anymore
Assert.That(compositionPropertyGroups.Count(x => x.Name.Equals("Content_")), Is.EqualTo(1));
var propertyTypeCount = contentType.PropertyTypes.Count();
var compPropertyTypeCount = contentType.CompositionPropertyTypes.Count();
@@ -1059,7 +1061,9 @@ namespace Umbraco.Tests.Services
var advancedPageReloaded = service.GetContentType("advancedPage");
var contentUnderscoreTabExists = advancedPageReloaded.CompositionPropertyGroups.Any(x => x.Name.Equals("Content_"));
Assert.That(contentUnderscoreTabExists, Is.False);
// now is true, because we don't propagate renames anymore
Assert.That(contentUnderscoreTabExists, Is.True);
var numberOfContentTabs = advancedPageReloaded.CompositionPropertyGroups.Count(x => x.Name.Equals("Content"));
Assert.That(numberOfContentTabs, Is.EqualTo(4));
@@ -1162,7 +1166,6 @@ namespace Umbraco.Tests.Services
var contentType = service.GetContentType("contentPage");
var propertyGroup = contentType.PropertyGroups["Content"];
Assert.That(propertyGroup.ParentId.HasValue, Is.False);
}
[Test]
@@ -1259,7 +1262,6 @@ namespace Umbraco.Tests.Services
var contentType = service.GetContentType("contentPage");
var propertyGroup = contentType.PropertyGroups["Content"];
Assert.That(propertyGroup.ParentId.HasValue, Is.False);
var numberOfContentTabs = contentType.CompositionPropertyGroups.Count(x => x.Name.Equals("Content"));
Assert.That(numberOfContentTabs, Is.EqualTo(3));
@@ -1278,7 +1280,6 @@ namespace Umbraco.Tests.Services
var propertyGroupReloaded = contentPageReloaded.PropertyGroups["Content"];
var hasDescriptionPropertyType = propertyGroupReloaded.PropertyTypes.Contains("description");
Assert.That(hasDescriptionPropertyType, Is.True);
Assert.That(propertyGroupReloaded.ParentId.HasValue, Is.False);
var descriptionPropertyTypeReloaded = propertyGroupReloaded.PropertyTypes["description"];
Assert.That(descriptionPropertyTypeReloaded.PropertyGroupId.IsValueCreated, Is.False);

View File

@@ -185,24 +185,41 @@ namespace Umbraco.Tests.TestHelpers.Entities
var pg = new PropertyGroup(contentCollection) {Name = propertyGroupName, SortOrder = 1};
contentType.PropertyGroups.Add(pg);
if (parent != null)
{
var foundPg = parent.PropertyGroups.FirstOrDefault(x => x.Name == propertyGroupName);
if (foundPg != null)
{
//this exists on the parent, so set the parent id
pg.SetLazyParentId(new Lazy<int?>(() => foundPg.Id));
}
}
//ensure that nothing is marked as dirty
contentType.ResetDirtyProperties(false);
contentType.SetDefaultTemplate(new Template("Textpage", "textpage"));
return contentType;
}
}
public static MediaType CreateSimpleMediaType(string alias, string name, IMediaType parent = null, bool randomizeAliases = false, string propertyGroupName = "Content")
{
var contentType = parent == null ? new MediaType(-1) : new MediaType(parent, alias);
contentType.Alias = alias;
contentType.Name = name;
contentType.Description = "ContentType used for simple text pages";
contentType.Icon = ".sprTreeDoc3";
contentType.Thumbnail = "doc2.png";
contentType.SortOrder = 1;
contentType.CreatorId = 0;
contentType.Trashed = false;
var contentCollection = new PropertyTypeCollection();
contentCollection.Add(new PropertyType(Constants.PropertyEditors.TextboxAlias, DataTypeDatabaseType.Ntext) { Alias = RandomAlias("title", randomizeAliases), Name = "Title", Description = "", Mandatory = false, SortOrder = 1, DataTypeDefinitionId = -88 });
contentCollection.Add(new PropertyType(Constants.PropertyEditors.TinyMCEAlias, DataTypeDatabaseType.Ntext) { Alias = RandomAlias("bodyText", randomizeAliases), Name = "Body Text", Description = "", Mandatory = false, SortOrder = 2, DataTypeDefinitionId = -87 });
contentCollection.Add(new PropertyType(Constants.PropertyEditors.TextboxAlias, DataTypeDatabaseType.Ntext) { Alias = RandomAlias("author", randomizeAliases), Name = "Author", Description = "Name of the author", Mandatory = false, SortOrder = 3, DataTypeDefinitionId = -88 });
var pg = new PropertyGroup(contentCollection) { Name = propertyGroupName, SortOrder = 1 };
contentType.PropertyGroups.Add(pg);
//ensure that nothing is marked as dirty
contentType.ResetDirtyProperties(false);
return contentType;
}
public static ContentType CreateSimpleContentType(string alias, string name, bool mandatory)
{
var contentType = new ContentType(-1)