Merge remote-tracking branch 'origin/netcore/netcore' into netcore/feature/migrate-persistance-tests
This commit is contained in:
@@ -21,7 +21,6 @@ namespace Umbraco.Core.Services
|
||||
_textService = textService;
|
||||
}
|
||||
|
||||
|
||||
public IEnumerable<ValidationResult> ValidatePropertyValue(
|
||||
IPropertyType propertyType,
|
||||
object postedValue)
|
||||
|
||||
@@ -30,6 +30,7 @@ namespace Umbraco.Tests.Common.Builders
|
||||
private GenericDictionaryBuilder<ContentBuilder, string, object> _propertyDataBuilder;
|
||||
|
||||
private int? _id;
|
||||
private int? _versionId;
|
||||
private Guid? _key;
|
||||
private DateTime? _createDate;
|
||||
private DateTime? _updateDate;
|
||||
@@ -48,12 +49,10 @@ namespace Umbraco.Tests.Common.Builders
|
||||
private string _propertyValuesCulture;
|
||||
private string _propertyValuesSegment;
|
||||
|
||||
public ContentTypeBuilder AddContentType()
|
||||
public ContentBuilder WithVersionId(int versionId)
|
||||
{
|
||||
_contentType = null;
|
||||
var builder = new ContentTypeBuilder(this);
|
||||
_contentTypeBuilder = builder;
|
||||
return builder;
|
||||
_versionId = versionId;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ContentBuilder WithParent(IContent parent)
|
||||
@@ -87,6 +86,14 @@ namespace Umbraco.Tests.Common.Builders
|
||||
return this;
|
||||
}
|
||||
|
||||
public ContentTypeBuilder AddContentType()
|
||||
{
|
||||
_contentType = null;
|
||||
var builder = new ContentTypeBuilder(this);
|
||||
_contentTypeBuilder = builder;
|
||||
return builder;
|
||||
}
|
||||
|
||||
public GenericDictionaryBuilder<ContentBuilder, string, object> AddPropertyData()
|
||||
{
|
||||
var builder = new GenericDictionaryBuilder<ContentBuilder, string, object>(this);
|
||||
@@ -97,6 +104,7 @@ namespace Umbraco.Tests.Common.Builders
|
||||
public override Content Build()
|
||||
{
|
||||
var id = _id ?? 0;
|
||||
var versionId = _versionId ?? 0;
|
||||
var key = _key ?? Guid.NewGuid();
|
||||
var parentId = _parentId ?? -1;
|
||||
var parent = _parent ?? null;
|
||||
@@ -131,6 +139,7 @@ namespace Umbraco.Tests.Common.Builders
|
||||
}
|
||||
|
||||
content.Id = id;
|
||||
content.VersionId = versionId;
|
||||
content.Key = key;
|
||||
content.CreateDate = createDate;
|
||||
content.UpdateDate = updateDate;
|
||||
|
||||
@@ -20,6 +20,7 @@ namespace Umbraco.Tests.Common.Builders
|
||||
private int? _propertyTypeIdsIncrementingFrom;
|
||||
private int? _defaultTemplateId;
|
||||
private ContentVariation? _contentVariation;
|
||||
private PropertyTypeCollection _propertyTypeCollection;
|
||||
|
||||
public ContentTypeBuilder() : base(null)
|
||||
{
|
||||
@@ -41,6 +42,12 @@ namespace Umbraco.Tests.Common.Builders
|
||||
return this;
|
||||
}
|
||||
|
||||
public ContentTypeBuilder WithPropertyTypeCollection(PropertyTypeCollection propertyTypeCollection)
|
||||
{
|
||||
_propertyTypeCollection = propertyTypeCollection;
|
||||
return this;
|
||||
}
|
||||
|
||||
public PropertyGroupBuilder<ContentTypeBuilder> AddPropertyGroup()
|
||||
{
|
||||
var builder = new PropertyGroupBuilder<ContentTypeBuilder>(this);
|
||||
@@ -104,9 +111,21 @@ namespace Umbraco.Tests.Common.Builders
|
||||
|
||||
contentType.Variations = contentVariation;
|
||||
|
||||
contentType.NoGroupPropertyTypes = _noGroupPropertyTypeBuilders.Select(x => x.Build());
|
||||
BuildPropertyGroups(contentType, _propertyGroupBuilders.Select(x => x.Build()));
|
||||
BuildPropertyTypeIds(contentType, _propertyTypeIdsIncrementingFrom);
|
||||
if (_propertyTypeCollection != null)
|
||||
{
|
||||
var propertyGroup = new PropertyGroupBuilder()
|
||||
.WithName("Content")
|
||||
.WithSortOrder(1)
|
||||
.WithPropertyTypeCollection(_propertyTypeCollection)
|
||||
.Build();
|
||||
contentType.PropertyGroups.Add(propertyGroup);
|
||||
}
|
||||
else
|
||||
{
|
||||
contentType.NoGroupPropertyTypes = _noGroupPropertyTypeBuilders.Select(x => x.Build());
|
||||
BuildPropertyGroups(contentType, _propertyGroupBuilders.Select(x => x.Build()));
|
||||
BuildPropertyTypeIds(contentType, _propertyTypeIdsIncrementingFrom);
|
||||
}
|
||||
|
||||
contentType.AllowedContentTypes = _allowedContentTypeBuilders.Select(x => x.Build());
|
||||
|
||||
@@ -134,7 +153,7 @@ namespace Umbraco.Tests.Common.Builders
|
||||
|
||||
public static ContentType CreateSimpleContentType2(string alias, string name, IContentType parent = null, bool randomizeAliases = false, string propertyGroupName = "Content")
|
||||
{
|
||||
var builder = CreateSimpleContentTypeHelper(alias, name, parent, randomizeAliases, propertyGroupName);
|
||||
var builder = CreateSimpleContentTypeHelper(alias, name, parent, randomizeAliases: randomizeAliases, propertyGroupName: propertyGroupName);
|
||||
|
||||
builder.AddPropertyType()
|
||||
.WithAlias(RandomAlias("gen", randomizeAliases))
|
||||
@@ -146,54 +165,70 @@ namespace Umbraco.Tests.Common.Builders
|
||||
.Done();
|
||||
|
||||
return (ContentType)builder.Build();
|
||||
}public static ContentType CreateSimpleContentType(string alias = null, string name = null, IContentType parent = null, bool randomizeAliases = false, string propertyGroupName = "Content", bool mandatoryProperties = false, int defaultTemplateId = 0)
|
||||
{
|
||||
return (ContentType)CreateSimpleContentTypeHelper(alias, name, parent, randomizeAliases, propertyGroupName, mandatoryProperties, defaultTemplateId).Build();
|
||||
}
|
||||
|
||||
public static ContentTypeBuilder CreateSimpleContentTypeHelper(string alias = null, string name = null, IContentType parent = null, bool randomizeAliases = false, string propertyGroupName = "Content", bool mandatoryProperties = false, int defaultTemplateId = 0)
|
||||
public static ContentType CreateSimpleContentType(string alias = null, string name = null, IContentType parent = null, PropertyTypeCollection propertyTypeCollection = null, bool randomizeAliases = false, string propertyGroupName = "Content", bool mandatoryProperties = false, int defaultTemplateId = 0)
|
||||
{
|
||||
return new ContentTypeBuilder()
|
||||
return (ContentType)CreateSimpleContentTypeHelper(alias, name, parent, propertyTypeCollection, randomizeAliases, propertyGroupName, mandatoryProperties, defaultTemplateId).Build();
|
||||
}
|
||||
|
||||
public static ContentTypeBuilder CreateSimpleContentTypeHelper(string alias = null, string name = null, IContentType parent = null, PropertyTypeCollection propertyTypeCollection = null, bool randomizeAliases = false, string propertyGroupName = "Content", bool mandatoryProperties = false, int defaultTemplateId = 0)
|
||||
{
|
||||
var builder = new ContentTypeBuilder()
|
||||
.WithAlias(alias ?? "simple")
|
||||
.WithName(name ?? "Simple Page")
|
||||
.WithParentContentType(parent)
|
||||
.AddPropertyGroup()
|
||||
.WithName(propertyGroupName)
|
||||
.WithSortOrder(1)
|
||||
.WithSupportsPublishing(true)
|
||||
.AddPropertyType()
|
||||
.WithAlias(RandomAlias("title", randomizeAliases))
|
||||
.WithName("Title")
|
||||
.WithParentContentType(parent);
|
||||
|
||||
if (propertyTypeCollection != null)
|
||||
{
|
||||
builder = builder
|
||||
.WithPropertyTypeCollection(propertyTypeCollection);
|
||||
}
|
||||
else
|
||||
{
|
||||
builder = builder
|
||||
.AddPropertyGroup()
|
||||
.WithName(propertyGroupName)
|
||||
.WithSortOrder(1)
|
||||
.WithMandatory(mandatoryProperties)
|
||||
.Done()
|
||||
.AddPropertyType()
|
||||
.WithPropertyEditorAlias(Constants.PropertyEditors.Aliases.TinyMce)
|
||||
.WithValueStorageType(ValueStorageType.Ntext)
|
||||
.WithAlias(RandomAlias("bodyText", randomizeAliases))
|
||||
.WithName("Body text")
|
||||
.WithSortOrder(2)
|
||||
.WithDataTypeId(Constants.DataTypes.RichtextEditor)
|
||||
.WithMandatory(mandatoryProperties)
|
||||
.Done()
|
||||
.AddPropertyType()
|
||||
.WithAlias(RandomAlias("author", randomizeAliases))
|
||||
.WithName("Author")
|
||||
.WithSortOrder(3)
|
||||
.WithMandatory(mandatoryProperties)
|
||||
.Done()
|
||||
.WithSupportsPublishing(true)
|
||||
.AddPropertyType()
|
||||
.WithAlias(RandomAlias("title", randomizeAliases))
|
||||
.WithName("Title")
|
||||
.WithSortOrder(1)
|
||||
.WithMandatory(mandatoryProperties)
|
||||
.Done()
|
||||
.AddPropertyType()
|
||||
.WithPropertyEditorAlias(Constants.PropertyEditors.Aliases.TinyMce)
|
||||
.WithValueStorageType(ValueStorageType.Ntext)
|
||||
.WithAlias(RandomAlias("bodyText", randomizeAliases))
|
||||
.WithName("Body text")
|
||||
.WithSortOrder(2)
|
||||
.WithDataTypeId(Constants.DataTypes.RichtextEditor)
|
||||
.WithMandatory(mandatoryProperties)
|
||||
.Done()
|
||||
.AddPropertyType()
|
||||
.WithAlias(RandomAlias("author", randomizeAliases))
|
||||
.WithName("Author")
|
||||
.WithSortOrder(3)
|
||||
.WithMandatory(mandatoryProperties)
|
||||
.Done()
|
||||
.Done();
|
||||
}
|
||||
|
||||
builder = builder
|
||||
.AddAllowedTemplate()
|
||||
.WithId(defaultTemplateId)
|
||||
.WithAlias("textPage")
|
||||
.WithName("Textpage")
|
||||
.Done()
|
||||
.AddAllowedTemplate()
|
||||
.WithId(defaultTemplateId)
|
||||
.WithAlias("textPage")
|
||||
.WithName("Textpage")
|
||||
.Done()
|
||||
.WithDefaultTemplateId(defaultTemplateId);
|
||||
.WithDefaultTemplateId(defaultTemplateId);
|
||||
|
||||
return builder;
|
||||
}
|
||||
|
||||
public static ContentType CreateSimpleTagsContentType(string alias, string name, IContentType parent = null, bool randomizeAliases = false, string propertyGroupName = "Content", int defaultTemplateId = 1)
|
||||
{
|
||||
var contentType = CreateSimpleContentType(alias, name, parent, randomizeAliases, propertyGroupName, defaultTemplateId: defaultTemplateId);
|
||||
var contentType = CreateSimpleContentType(alias, name, parent, randomizeAliases: randomizeAliases, propertyGroupName: propertyGroupName, defaultTemplateId: defaultTemplateId);
|
||||
|
||||
var propertyType = new PropertyTypeBuilder()
|
||||
.WithPropertyEditorAlias(Constants.PropertyEditors.Aliases.Tags)
|
||||
@@ -215,7 +250,6 @@ namespace Umbraco.Tests.Common.Builders
|
||||
.WithAlias(alias)
|
||||
.WithName(name)
|
||||
.AddPropertyGroup()
|
||||
.WithId(1)
|
||||
.WithName("Content")
|
||||
.WithSortOrder(1)
|
||||
.WithSupportsPublishing(true)
|
||||
@@ -234,7 +268,6 @@ namespace Umbraco.Tests.Common.Builders
|
||||
.Done()
|
||||
.Done()
|
||||
.AddPropertyGroup()
|
||||
.WithId(2)
|
||||
.WithName("Meta")
|
||||
.WithSortOrder(2)
|
||||
.WithSupportsPublishing(true)
|
||||
|
||||
@@ -18,9 +18,18 @@ namespace Umbraco.Tests.Common.Builders
|
||||
private Guid? _key;
|
||||
private DateTime? _createDate;
|
||||
private DateTime? _updateDate;
|
||||
private IPropertyType _propertyType;
|
||||
|
||||
public PropertyBuilder WithPropertyType(IPropertyType propertyType)
|
||||
{
|
||||
_propertyTypeBuilder = null;
|
||||
_propertyType = propertyType;
|
||||
return this;
|
||||
}
|
||||
|
||||
public PropertyTypeBuilder<PropertyBuilder> AddPropertyType()
|
||||
{
|
||||
_propertyType = null;
|
||||
var builder = new PropertyTypeBuilder<PropertyBuilder>(this);
|
||||
_propertyTypeBuilder = builder;
|
||||
return builder;
|
||||
@@ -33,8 +42,15 @@ namespace Umbraco.Tests.Common.Builders
|
||||
var createDate = _createDate ?? DateTime.Now;
|
||||
var updateDate = _updateDate ?? DateTime.Now;
|
||||
|
||||
if (_propertyTypeBuilder is null && _propertyType is null)
|
||||
{
|
||||
throw new InvalidOperationException("A property cannot be constructed without providing a property type. Use AddPropertyType() or WithPropertyType().");
|
||||
}
|
||||
|
||||
var propertyType = _propertyType ?? _propertyTypeBuilder.Build();
|
||||
|
||||
// Needs to be within collection to support publishing.
|
||||
var propertyTypeCollection = new PropertyTypeCollection(true, new[] { _propertyTypeBuilder.Build() });
|
||||
var propertyTypeCollection = new PropertyTypeCollection(true, new[] { propertyType });
|
||||
|
||||
return new Property(id, propertyTypeCollection[0])
|
||||
{
|
||||
|
||||
@@ -37,11 +37,18 @@ namespace Umbraco.Tests.Common.Builders
|
||||
private string _name;
|
||||
private int? _sortOrder;
|
||||
private bool? _supportsPublishing;
|
||||
private PropertyTypeCollection _propertyTypeCollection;
|
||||
|
||||
public PropertyGroupBuilder(TParent parentBuilder) : base(parentBuilder)
|
||||
{
|
||||
}
|
||||
|
||||
public PropertyGroupBuilder<TParent> WithPropertyTypeCollection(PropertyTypeCollection propertyTypeCollection)
|
||||
{
|
||||
_propertyTypeCollection = propertyTypeCollection;
|
||||
return this;
|
||||
}
|
||||
|
||||
public PropertyTypeBuilder<PropertyGroupBuilder<TParent>> AddPropertyType()
|
||||
{
|
||||
var builder = new PropertyTypeBuilder<PropertyGroupBuilder<TParent>>(this);
|
||||
@@ -51,7 +58,7 @@ namespace Umbraco.Tests.Common.Builders
|
||||
|
||||
public override PropertyGroup Build()
|
||||
{
|
||||
var id = _id ?? 1;
|
||||
var id = _id ?? 0;
|
||||
var key = _key ?? Guid.NewGuid();
|
||||
var createDate = _createDate ?? DateTime.Now;
|
||||
var updateDate = _updateDate ?? DateTime.Now;
|
||||
@@ -59,13 +66,21 @@ namespace Umbraco.Tests.Common.Builders
|
||||
var sortOrder = _sortOrder ?? 0;
|
||||
var supportsPublishing = _supportsPublishing ?? false;
|
||||
|
||||
var properties = new PropertyTypeCollection(supportsPublishing);
|
||||
foreach (var propertyType in _propertyTypeBuilders.Select(x => x.Build()))
|
||||
PropertyTypeCollection propertyTypeCollection;
|
||||
if (_propertyTypeCollection != null)
|
||||
{
|
||||
properties.Add(propertyType);
|
||||
propertyTypeCollection = _propertyTypeCollection;
|
||||
}
|
||||
else
|
||||
{
|
||||
propertyTypeCollection = new PropertyTypeCollection(supportsPublishing);
|
||||
foreach (var propertyType in _propertyTypeBuilders.Select(x => x.Build()))
|
||||
{
|
||||
propertyTypeCollection.Add(propertyType);
|
||||
}
|
||||
}
|
||||
|
||||
return new PropertyGroup(properties)
|
||||
return new PropertyGroup(propertyTypeCollection)
|
||||
{
|
||||
Id = id,
|
||||
Key = key,
|
||||
|
||||
@@ -756,7 +756,7 @@ namespace Umbraco.Tests.Models.Mapping
|
||||
Alias = "umbracoUrlName", Name = "Slug", Description = "", Mandatory = false, SortOrder = 1, DataTypeId = -88
|
||||
});
|
||||
ContentTypeBuilder.EnsureAllIds(ctMain, 8888);
|
||||
var ctChild1 = ContentTypeBuilder.CreateSimpleContentType("child1", "Child 1", ctMain, true);
|
||||
var ctChild1 = ContentTypeBuilder.CreateSimpleContentType("child1", "Child 1", ctMain, randomizeAliases: true);
|
||||
ctChild1.AddPropertyType(new PropertyType(ShortStringHelper, Constants.PropertyEditors.Aliases.TextBox, ValueStorageType.Ntext)
|
||||
{
|
||||
Alias = "someProperty",
|
||||
@@ -767,7 +767,7 @@ namespace Umbraco.Tests.Models.Mapping
|
||||
DataTypeId = -88
|
||||
}, "Another tab");
|
||||
ContentTypeBuilder.EnsureAllIds(ctChild1, 7777);
|
||||
var contentType = ContentTypeBuilder.CreateSimpleContentType("child2", "Child 2", ctChild1, true, "CustomGroup");
|
||||
var contentType = ContentTypeBuilder.CreateSimpleContentType("child2", "Child 2", ctChild1, randomizeAliases: true, propertyGroupName: "CustomGroup");
|
||||
//not assigned to tab
|
||||
contentType.AddPropertyType(new PropertyType(ShortStringHelper, Constants.PropertyEditors.Aliases.TextBox, ValueStorageType.Ntext)
|
||||
{
|
||||
|
||||
@@ -519,8 +519,8 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
{
|
||||
var repository = ContentTypeRepository;
|
||||
var ctMain = ContentTypeBuilder.CreateSimpleContentType(defaultTemplateId:0);
|
||||
var ctChild1 = ContentTypeBuilder.CreateSimpleContentType("child1", "Child 1", ctMain, true, defaultTemplateId:0);
|
||||
var ctChild2 = ContentTypeBuilder.CreateSimpleContentType("child2", "Child 2", ctChild1, true, defaultTemplateId:0);
|
||||
var ctChild1 = ContentTypeBuilder.CreateSimpleContentType("child1", "Child 1", ctMain, randomizeAliases: true, defaultTemplateId: 0);
|
||||
var ctChild2 = ContentTypeBuilder.CreateSimpleContentType("child2", "Child 2", ctChild1, randomizeAliases: true, defaultTemplateId: 0);
|
||||
|
||||
repository.Save(ctMain);
|
||||
repository.Save(ctChild1);
|
||||
|
||||
@@ -358,13 +358,13 @@ namespace Umbraco.Tests.Integration.Services
|
||||
var global = ContentTypeBuilder.CreateSimpleContentType("global", "Global", defaultTemplateId: template.Id);
|
||||
ContentTypeService.Save(global);
|
||||
|
||||
var components = ContentTypeBuilder.CreateSimpleContentType("components", "Components", global, true, defaultTemplateId: template.Id);
|
||||
var components = ContentTypeBuilder.CreateSimpleContentType("components", "Components", global, randomizeAliases: true, defaultTemplateId: template.Id);
|
||||
ContentTypeService.Save(components);
|
||||
|
||||
var component = ContentTypeBuilder.CreateSimpleContentType("component", "Component", components, true, defaultTemplateId: template.Id);
|
||||
var component = ContentTypeBuilder.CreateSimpleContentType("component", "Component", components, randomizeAliases: true, defaultTemplateId: template.Id);
|
||||
ContentTypeService.Save(component);
|
||||
|
||||
var category = ContentTypeBuilder.CreateSimpleContentType("category", "Category", global, true, defaultTemplateId: template.Id);
|
||||
var category = ContentTypeBuilder.CreateSimpleContentType("category", "Category", global, randomizeAliases: true, defaultTemplateId: template.Id);
|
||||
ContentTypeService.Save(category);
|
||||
|
||||
var success = category.AddContentType(component);
|
||||
@@ -378,10 +378,10 @@ namespace Umbraco.Tests.Integration.Services
|
||||
var template = TemplateBuilder.CreateTextPageTemplate();
|
||||
FileService.SaveTemplate(template);
|
||||
|
||||
var contentType = ContentTypeBuilder.CreateSimpleContentType("page", "Page", null, true, defaultTemplateId: template.Id);
|
||||
var contentType = ContentTypeBuilder.CreateSimpleContentType("page", "Page", randomizeAliases: true, defaultTemplateId: template.Id);
|
||||
ContentTypeService.Save(contentType);
|
||||
|
||||
var childContentType = ContentTypeBuilder.CreateSimpleContentType("childPage", "Child Page", contentType, true, "Child Content", defaultTemplateId: template.Id);
|
||||
var childContentType = ContentTypeBuilder.CreateSimpleContentType("childPage", "Child Page", contentType, randomizeAliases: true, propertyGroupName: "Child Content", defaultTemplateId: template.Id);
|
||||
ContentTypeService.Save(childContentType);
|
||||
var content = ContentService.Create("Page 1", -1, childContentType.Alias);
|
||||
ContentService.Save(content);
|
||||
@@ -593,10 +593,10 @@ namespace Umbraco.Tests.Integration.Services
|
||||
|
||||
var parentContentType1 = ContentTypeBuilder.CreateSimpleContentType("parent1", "Parent1", defaultTemplateId: template.Id);
|
||||
ContentTypeService.Save(parentContentType1);
|
||||
var parentContentType2 = ContentTypeBuilder.CreateSimpleContentType("parent2", "Parent2", null, true, defaultTemplateId: template.Id);
|
||||
var parentContentType2 = ContentTypeBuilder.CreateSimpleContentType("parent2", "Parent2", randomizeAliases: true, defaultTemplateId: template.Id);
|
||||
ContentTypeService.Save(parentContentType2);
|
||||
|
||||
var simpleContentType = ContentTypeBuilder.CreateSimpleContentType("category", "Category", parentContentType1, true, defaultTemplateId: template.Id) as IContentType;
|
||||
var simpleContentType = ContentTypeBuilder.CreateSimpleContentType("category", "Category", parentContentType1, randomizeAliases: true, defaultTemplateId: template.Id) as IContentType;
|
||||
ContentTypeService.Save(simpleContentType);
|
||||
|
||||
// Act
|
||||
@@ -690,10 +690,10 @@ namespace Umbraco.Tests.Integration.Services
|
||||
|
||||
var parentContentType1 = ContentTypeBuilder.CreateSimpleContentType("parent1", "Parent1", defaultTemplateId: template.Id);
|
||||
ContentTypeService.Save(parentContentType1);
|
||||
var parentContentType2 = ContentTypeBuilder.CreateSimpleContentType("parent2", "Parent2", null, true, defaultTemplateId: template.Id);
|
||||
var parentContentType2 = ContentTypeBuilder.CreateSimpleContentType("parent2", "Parent2", randomizeAliases: true, defaultTemplateId: template.Id);
|
||||
ContentTypeService.Save(parentContentType2);
|
||||
|
||||
var simpleContentType = ContentTypeBuilder.CreateSimpleContentType("category", "Category", parentContentType1, true, defaultTemplateId: template.Id);
|
||||
var simpleContentType = ContentTypeBuilder.CreateSimpleContentType("category", "Category", parentContentType1, randomizeAliases: true, defaultTemplateId: template.Id);
|
||||
ContentTypeService.Save(simpleContentType);
|
||||
|
||||
// Act
|
||||
@@ -733,7 +733,7 @@ namespace Umbraco.Tests.Integration.Services
|
||||
|
||||
var parent = ContentTypeBuilder.CreateSimpleContentType(defaultTemplateId: template.Id);
|
||||
ContentTypeService.Save(parent);
|
||||
var child = ContentTypeBuilder.CreateSimpleContentType("simpleChildPage", "Simple Child Page", parent, true, defaultTemplateId: template.Id);
|
||||
var child = ContentTypeBuilder.CreateSimpleContentType("simpleChildPage", "Simple Child Page", parent, randomizeAliases: true, defaultTemplateId: template.Id);
|
||||
ContentTypeService.Save(child);
|
||||
var composition = ContentTypeBuilder.CreateMetaContentType();
|
||||
ContentTypeService.Save(composition);
|
||||
@@ -762,11 +762,11 @@ namespace Umbraco.Tests.Integration.Services
|
||||
var template = TemplateBuilder.CreateTextPageTemplate();
|
||||
FileService.SaveTemplate(template);
|
||||
|
||||
var basePage = ContentTypeBuilder.CreateSimpleContentType("basePage", "Base Page", null, true, defaultTemplateId: template.Id);
|
||||
var basePage = ContentTypeBuilder.CreateSimpleContentType("basePage", "Base Page", randomizeAliases: true, defaultTemplateId: template.Id);
|
||||
ContentTypeService.Save(basePage);
|
||||
var contentPage = ContentTypeBuilder.CreateSimpleContentType("contentPage", "Content Page", basePage, defaultTemplateId: template.Id);
|
||||
ContentTypeService.Save(contentPage);
|
||||
var advancedPage = ContentTypeBuilder.CreateSimpleContentType("advancedPage", "Advanced Page", contentPage, true, defaultTemplateId: template.Id);
|
||||
var advancedPage = ContentTypeBuilder.CreateSimpleContentType("advancedPage", "Advanced Page", contentPage, randomizeAliases: true, defaultTemplateId: template.Id);
|
||||
ContentTypeService.Save(advancedPage);
|
||||
|
||||
var metaComposition = ContentTypeBuilder.CreateMetaContentType();
|
||||
@@ -1048,11 +1048,11 @@ namespace Umbraco.Tests.Integration.Services
|
||||
var template = TemplateBuilder.CreateTextPageTemplate();
|
||||
FileService.SaveTemplate(template);
|
||||
|
||||
var page = ContentTypeBuilder.CreateSimpleContentType("page", "Page", null, true, "Content", defaultTemplateId: template.Id);
|
||||
var page = ContentTypeBuilder.CreateSimpleContentType("page", "Page", randomizeAliases: true, defaultTemplateId: template.Id);
|
||||
ContentTypeService.Save(page);
|
||||
var contentPage = ContentTypeBuilder.CreateSimpleContentType("contentPage", "Content Page", page, true, "Content_", defaultTemplateId: template.Id);
|
||||
var contentPage = ContentTypeBuilder.CreateSimpleContentType("contentPage", "Content Page", page, randomizeAliases: true, propertyGroupName: "Content_", defaultTemplateId: template.Id);
|
||||
ContentTypeService.Save(contentPage);
|
||||
var advancedPage = ContentTypeBuilder.CreateSimpleContentType("advancedPage", "Advanced Page", contentPage, true, "Details", defaultTemplateId: template.Id);
|
||||
var advancedPage = ContentTypeBuilder.CreateSimpleContentType("advancedPage", "Advanced Page", contentPage, randomizeAliases: true, propertyGroupName: "Details", defaultTemplateId: template.Id);
|
||||
ContentTypeService.Save(advancedPage);
|
||||
|
||||
var contentMetaComposition = ContentTypeBuilder.CreateContentMetaContentType();
|
||||
@@ -1157,11 +1157,11 @@ namespace Umbraco.Tests.Integration.Services
|
||||
// Arrange
|
||||
var template = TemplateBuilder.CreateTextPageTemplate();
|
||||
FileService.SaveTemplate(template);
|
||||
var basePage = ContentTypeBuilder.CreateSimpleContentType("basePage", "Base Page", null, true, defaultTemplateId: template.Id);
|
||||
var basePage = ContentTypeBuilder.CreateSimpleContentType("basePage", "Base Page", randomizeAliases: true, defaultTemplateId: template.Id);
|
||||
ContentTypeService.Save(basePage);
|
||||
var contentPage = ContentTypeBuilder.CreateSimpleContentType("contentPage", "Content Page", basePage, true, defaultTemplateId: template.Id);
|
||||
var contentPage = ContentTypeBuilder.CreateSimpleContentType("contentPage", "Content Page", basePage, randomizeAliases: true, defaultTemplateId: template.Id);
|
||||
ContentTypeService.Save(contentPage);
|
||||
var advancedPage = ContentTypeBuilder.CreateSimpleContentType("advancedPage", "Advanced Page", contentPage, true, defaultTemplateId: template.Id);
|
||||
var advancedPage = ContentTypeBuilder.CreateSimpleContentType("advancedPage", "Advanced Page", contentPage, randomizeAliases: true, defaultTemplateId: template.Id);
|
||||
ContentTypeService.Save(advancedPage);
|
||||
|
||||
var metaComposition = ContentTypeBuilder.CreateMetaContentType();
|
||||
@@ -1200,7 +1200,7 @@ namespace Umbraco.Tests.Integration.Services
|
||||
// create 'page' content type with a 'Content_' group
|
||||
var template = TemplateBuilder.CreateTextPageTemplate();
|
||||
FileService.SaveTemplate(template);
|
||||
var page = ContentTypeBuilder.CreateSimpleContentType("page", "Page", null, false, "Content_", defaultTemplateId: template.Id);
|
||||
var page = ContentTypeBuilder.CreateSimpleContentType("page", "Page", propertyGroupName: "Content_", defaultTemplateId: template.Id);
|
||||
Assert.AreEqual(1, page.PropertyGroups.Count);
|
||||
Assert.AreEqual("Content_", page.PropertyGroups.First().Name);
|
||||
Assert.AreEqual(3, page.PropertyTypes.Count());
|
||||
@@ -1210,7 +1210,7 @@ namespace Umbraco.Tests.Integration.Services
|
||||
ContentTypeService.Save(page);
|
||||
|
||||
// create 'contentPage' content type as a child of 'page'
|
||||
var contentPage = ContentTypeBuilder.CreateSimpleContentType("contentPage", "Content Page", page, true, defaultTemplateId: template.Id);
|
||||
var contentPage = ContentTypeBuilder.CreateSimpleContentType("contentPage", "Content Page", page, randomizeAliases: true, defaultTemplateId: template.Id);
|
||||
Assert.AreEqual(1, page.PropertyGroups.Count);
|
||||
Assert.AreEqual("Content_", page.PropertyGroups.First().Name);
|
||||
Assert.AreEqual(3, contentPage.PropertyTypes.Count());
|
||||
@@ -1281,11 +1281,11 @@ namespace Umbraco.Tests.Integration.Services
|
||||
// Arrange
|
||||
var template = TemplateBuilder.CreateTextPageTemplate();
|
||||
FileService.SaveTemplate(template);
|
||||
var page = ContentTypeBuilder.CreateSimpleContentType("page", "Page", null, true, "Content_", defaultTemplateId: template.Id);
|
||||
var page = ContentTypeBuilder.CreateSimpleContentType("page", "Page", randomizeAliases: true, propertyGroupName: "Content_", defaultTemplateId: template.Id);
|
||||
ContentTypeService.Save(page);
|
||||
var contentPage = ContentTypeBuilder.CreateSimpleContentType("contentPage", "Content Page", page, true, "Contentx", defaultTemplateId: template.Id);
|
||||
var contentPage = ContentTypeBuilder.CreateSimpleContentType("contentPage", "Content Page", page, randomizeAliases: true, propertyGroupName: "Contentx", defaultTemplateId: template.Id);
|
||||
ContentTypeService.Save(contentPage);
|
||||
var advancedPage = ContentTypeBuilder.CreateSimpleContentType("advancedPage", "Advanced Page", contentPage, true, "Contenty", defaultTemplateId: template.Id);
|
||||
var advancedPage = ContentTypeBuilder.CreateSimpleContentType("advancedPage", "Advanced Page", contentPage, randomizeAliases: true, propertyGroupName: "Contenty", defaultTemplateId: template.Id);
|
||||
ContentTypeService.Save(advancedPage);
|
||||
|
||||
var contentMetaComposition = ContentTypeBuilder.CreateContentMetaContentType();
|
||||
@@ -1355,9 +1355,9 @@ namespace Umbraco.Tests.Integration.Services
|
||||
// Arrange
|
||||
var template = TemplateBuilder.CreateTextPageTemplate();
|
||||
FileService.SaveTemplate(template);
|
||||
var page = ContentTypeBuilder.CreateSimpleContentType("page", "Page", null, true, "Content_", defaultTemplateId: template.Id);
|
||||
var page = ContentTypeBuilder.CreateSimpleContentType("page", "Page", randomizeAliases: true, propertyGroupName: "Content_", defaultTemplateId: template.Id);
|
||||
ContentTypeService.Save(page);
|
||||
var contentPage = ContentTypeBuilder.CreateSimpleContentType("contentPage", "Content Page", page, true, "Content", defaultTemplateId: template.Id);
|
||||
var contentPage = ContentTypeBuilder.CreateSimpleContentType("contentPage", "Content Page", page, randomizeAliases: true, propertyGroupName: "Content", defaultTemplateId: template.Id);
|
||||
ContentTypeService.Save(contentPage);
|
||||
|
||||
var contentMetaComposition = ContentTypeBuilder.CreateContentMetaContentType();
|
||||
@@ -1589,11 +1589,11 @@ namespace Umbraco.Tests.Integration.Services
|
||||
typeA.PropertyTypes.First(x => x.Alias.InvariantEquals("title")).Variations = ContentVariation.Culture; // with a variant property
|
||||
ContentTypeService.Save(typeA);
|
||||
|
||||
var typeB = ContentTypeBuilder.CreateSimpleContentType("b", "B", typeA, true, defaultTemplateId: template.Id);
|
||||
var typeB = ContentTypeBuilder.CreateSimpleContentType("b", "B", typeA, randomizeAliases: true, defaultTemplateId: template.Id);
|
||||
typeB.Variations = ContentVariation.Nothing; // make it invariant
|
||||
ContentTypeService.Save(typeB);
|
||||
|
||||
var typeC = ContentTypeBuilder.CreateSimpleContentType("c", "C", typeA, true, defaultTemplateId: template.Id);
|
||||
var typeC = ContentTypeBuilder.CreateSimpleContentType("c", "C", typeA, randomizeAliases: true, defaultTemplateId: template.Id);
|
||||
typeC.Variations = ContentVariation.Culture; // make it variant
|
||||
ContentTypeService.Save(typeC);
|
||||
|
||||
@@ -1705,7 +1705,7 @@ namespace Umbraco.Tests.Integration.Services
|
||||
{
|
||||
var contentType = ContentTypeBuilder.CreateSimpleContentType("childType" + i, "ChildType" + i,
|
||||
//make the last entry in the list, this one's parent
|
||||
list.Last(), true, defaultTemplateId: template.Id);
|
||||
list.Last(), randomizeAliases: true, defaultTemplateId: template.Id);
|
||||
|
||||
list.Add(contentType);
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ using System.Linq;
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Core.Models;
|
||||
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Infrastructure.Models
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Core.Models
|
||||
{
|
||||
[TestFixture]
|
||||
public class ContentScheduleTests
|
||||
@@ -7,62 +7,40 @@ using System.Threading;
|
||||
using Microsoft.Extensions.Logging.Abstractions;
|
||||
using Moq;
|
||||
using Newtonsoft.Json;
|
||||
using Umbraco.Core;
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Cache;
|
||||
using Umbraco.Core.Composing.CompositionExtensions;
|
||||
using Umbraco.Core.Logging;
|
||||
using Umbraco.Core.Models;
|
||||
using Umbraco.Core.Models.Entities;
|
||||
using Umbraco.Core.PropertyEditors;
|
||||
using Umbraco.Core.Services;
|
||||
using Umbraco.Core.Services.Implement;
|
||||
using Umbraco.Tests.TestHelpers.Entities;
|
||||
using Umbraco.Tests.Common.Builders;
|
||||
using Umbraco.Tests.Common.Builders.Extensions;
|
||||
using Umbraco.Tests.TestHelpers.Stubs;
|
||||
using Umbraco.Tests.Testing;
|
||||
using Umbraco.Web.PropertyEditors;
|
||||
|
||||
namespace Umbraco.Tests.Models
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Core.Models
|
||||
{
|
||||
[TestFixture]
|
||||
public class ContentTests : UmbracoTestBase
|
||||
public class ContentTests
|
||||
{
|
||||
private IContentTypeService _contentTypeService;
|
||||
|
||||
protected override void Compose()
|
||||
{
|
||||
base.Compose();
|
||||
|
||||
Composition.ComposeFileSystems();
|
||||
|
||||
Composition.Register(_ => Mock.Of<IDataTypeService>());
|
||||
|
||||
// all this is required so we can validate properties...
|
||||
var editor = new TextboxPropertyEditor(NullLoggerFactory.Instance, Mock.Of<IDataTypeService>(), Mock.Of<ILocalizationService>(), IOHelper, ShortStringHelper, LocalizedTextService) { Alias = "test" };
|
||||
Composition.Register(_ => new DataEditorCollection(new [] { editor }));
|
||||
Composition.Register<PropertyEditorCollection>();
|
||||
var dataType = Mock.Of<IDataType>();
|
||||
Mock.Get(dataType).Setup(x => x.Configuration).Returns(() => new object());
|
||||
var dataTypeService = Mock.Of<IDataTypeService>();
|
||||
Mock.Get(dataTypeService)
|
||||
.Setup(x => x.GetDataType(It.IsAny<int>()))
|
||||
.Returns(() => dataType);
|
||||
|
||||
_contentTypeService = Mock.Of<IContentTypeService>();
|
||||
var mediaTypeService = Mock.Of<IMediaTypeService>();
|
||||
var memberTypeService = Mock.Of<IMemberTypeService>();
|
||||
Composition.Register(_ => ServiceContext.CreatePartial(dataTypeService: dataTypeService, contentTypeBaseServiceProvider: new ContentTypeBaseServiceProvider(_contentTypeService, mediaTypeService, memberTypeService)));
|
||||
|
||||
}
|
||||
private IContentTypeService _contentTypeService = Mock.Of<IContentTypeService>();
|
||||
|
||||
[Test]
|
||||
public void Variant_Culture_Names_Track_Dirty_Changes()
|
||||
{
|
||||
var contentType = new ContentType(ShortStringHelper, -1) { Alias = "contentType" };
|
||||
contentType.Variations = ContentVariation.Culture;
|
||||
var contentType = new ContentTypeBuilder()
|
||||
.WithAlias("contentType")
|
||||
.WithContentVariation(ContentVariation.Culture)
|
||||
.Build();
|
||||
Mock.Get(_contentTypeService).As<IContentTypeBaseService>().Setup(x => x.Get(It.IsAny<int>())).Returns(contentType);
|
||||
|
||||
var content = new Content("content", -1, contentType) { Id = 1, VersionId = 1 };
|
||||
var content = new ContentBuilder()
|
||||
.WithId(1)
|
||||
.WithVersionId(1)
|
||||
.WithName("content")
|
||||
.WithContentType(contentType)
|
||||
.Build();
|
||||
|
||||
const string langFr = "fr-FR";
|
||||
|
||||
@@ -88,13 +66,19 @@ namespace Umbraco.Tests.Models
|
||||
[Test]
|
||||
public void Variant_Published_Culture_Names_Track_Dirty_Changes()
|
||||
{
|
||||
var contentType = new ContentType(ShortStringHelper, -1) { Alias = "contentType" };
|
||||
var content = new Content("content", -1, contentType) { Id = 1, VersionId = 1 };
|
||||
var contentType = new ContentTypeBuilder()
|
||||
.WithAlias("contentType")
|
||||
.WithContentVariation(ContentVariation.Culture)
|
||||
.Build();
|
||||
var content = new ContentBuilder()
|
||||
.WithId(1)
|
||||
.WithVersionId(1)
|
||||
.WithName("content")
|
||||
.WithContentType(contentType)
|
||||
.Build();
|
||||
|
||||
const string langFr = "fr-FR";
|
||||
|
||||
contentType.Variations = ContentVariation.Culture;
|
||||
|
||||
content.ChangeContentType(contentType);
|
||||
|
||||
Assert.IsFalse(content.IsPropertyDirty("PublishCultureInfos")); //hasn't been changed
|
||||
@@ -121,18 +105,25 @@ namespace Umbraco.Tests.Models
|
||||
[Test]
|
||||
public void Get_Non_Grouped_Properties()
|
||||
{
|
||||
var contentType = MockedContentTypes.CreateSimpleContentType();
|
||||
//add non-grouped properties
|
||||
contentType.AddPropertyType(new PropertyType(ShortStringHelper, "test", ValueStorageType.Ntext, "nonGrouped1") { Name = "Non Grouped 1", Description = "", Mandatory = false, SortOrder = 1, DataTypeId = -88 });
|
||||
contentType.AddPropertyType(new PropertyType(ShortStringHelper, "test", ValueStorageType.Ntext, "nonGrouped2") { Name = "Non Grouped 2", Description = "", Mandatory = false, SortOrder = 1, DataTypeId = -88 });
|
||||
var contentType = ContentTypeBuilder.CreateSimpleContentType();
|
||||
|
||||
//ensure that nothing is marked as dirty
|
||||
// Add non-grouped properties
|
||||
var pt1 = new PropertyTypeBuilder()
|
||||
.WithAlias("nonGrouped1")
|
||||
.WithName("Non Grouped 1")
|
||||
.Build();
|
||||
var pt2 = new PropertyTypeBuilder()
|
||||
.WithAlias("nonGrouped2")
|
||||
.WithName("Non Grouped 2")
|
||||
.Build();
|
||||
contentType.AddPropertyType(pt1);
|
||||
contentType.AddPropertyType(pt2);
|
||||
|
||||
// Ensure that nothing is marked as dirty
|
||||
contentType.ResetDirtyProperties(false);
|
||||
Mock.Get(_contentTypeService).As<IContentTypeBaseService>().Setup(x => x.Get(It.IsAny<int>())).Returns(contentType);
|
||||
|
||||
|
||||
var content = MockedContent.CreateSimpleContent(contentType);
|
||||
//need to id the p
|
||||
var content = ContentBuilder.CreateSimpleContent(contentType);
|
||||
|
||||
var nonGrouped = content.GetNonGroupedProperties();
|
||||
|
||||
@@ -143,10 +134,10 @@ namespace Umbraco.Tests.Models
|
||||
[Test]
|
||||
public void All_Dirty_Properties_Get_Reset()
|
||||
{
|
||||
var contentType = MockedContentTypes.CreateTextPageContentType();
|
||||
var contentType = ContentTypeBuilder.CreateTextPageContentType();
|
||||
Mock.Get(_contentTypeService).As<IContentTypeBaseService>().Setup(x => x.Get(It.IsAny<int>())).Returns(contentType);
|
||||
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
var content = ContentBuilder.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
|
||||
content.ResetDirtyProperties(false);
|
||||
|
||||
@@ -161,10 +152,10 @@ namespace Umbraco.Tests.Models
|
||||
public void Can_Verify_Mocked_Content()
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextPageContentType();
|
||||
var contentType = ContentTypeBuilder.CreateTextPageContentType();
|
||||
Mock.Get(_contentTypeService).As<IContentTypeBaseService>().Setup(x => x.Get(It.IsAny<int>())).Returns(contentType);
|
||||
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
var content = ContentBuilder.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
|
||||
// Act
|
||||
|
||||
@@ -176,10 +167,10 @@ namespace Umbraco.Tests.Models
|
||||
public void Can_Change_Property_Value()
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextPageContentType();
|
||||
var contentType = ContentTypeBuilder.CreateTextPageContentType();
|
||||
Mock.Get(_contentTypeService).As<IContentTypeBaseService>().Setup(x => x.Get(It.IsAny<int>())).Returns(contentType);
|
||||
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
var content = ContentBuilder.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
|
||||
// Act
|
||||
content.Properties["title"].SetValue("This is the new title");
|
||||
@@ -194,10 +185,10 @@ namespace Umbraco.Tests.Models
|
||||
public void Can_Set_Property_Value_As_String()
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextPageContentType();
|
||||
var contentType = ContentTypeBuilder.CreateTextPageContentType();
|
||||
Mock.Get(_contentTypeService).As<IContentTypeBaseService>().Setup(x => x.Get(It.IsAny<int>())).Returns(contentType);
|
||||
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
var content = ContentBuilder.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
|
||||
// Act
|
||||
content.SetValue("title", "This is the new title");
|
||||
@@ -212,10 +203,10 @@ namespace Umbraco.Tests.Models
|
||||
public void Can_Clone_Content_With_Reset_Identity()
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextPageContentType();
|
||||
var contentType = ContentTypeBuilder.CreateTextPageContentType();
|
||||
Mock.Get(_contentTypeService).As<IContentTypeBaseService>().Setup(x => x.Get(It.IsAny<int>())).Returns(contentType);
|
||||
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
var content = ContentBuilder.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
content.Id = 10;
|
||||
content.Key = new Guid("29181B97-CB8F-403F-86DE-5FEB497F4800");
|
||||
|
||||
@@ -243,9 +234,9 @@ namespace Umbraco.Tests.Models
|
||||
public void Can_Deep_Clone_Perf_Test()
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextPageContentType();
|
||||
var contentType = ContentTypeBuilder.CreateTextPageContentType();
|
||||
contentType.Id = 99;
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
var content = ContentBuilder.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
var i = 200;
|
||||
foreach (var property in content.Properties)
|
||||
{
|
||||
@@ -291,12 +282,12 @@ namespace Umbraco.Tests.Models
|
||||
public void Can_Deep_Clone()
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextPageContentType();
|
||||
var contentType = ContentTypeBuilder.CreateTextPageContentType();
|
||||
contentType.Id = 99;
|
||||
contentType.Variations = ContentVariation.Culture;
|
||||
Mock.Get(_contentTypeService).As<IContentTypeBaseService>().Setup(x => x.Get(It.IsAny<int>())).Returns(contentType);
|
||||
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
var content = ContentBuilder.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
|
||||
content.SetCultureName("Hello", "en-US");
|
||||
content.SetCultureName("World", "es-ES");
|
||||
@@ -313,6 +304,7 @@ namespace Umbraco.Tests.Models
|
||||
{
|
||||
property.Id = ++i;
|
||||
}
|
||||
|
||||
content.Id = 10;
|
||||
content.CreateDate = DateTime.Now;
|
||||
content.CreatorId = 22;
|
||||
@@ -326,8 +318,6 @@ namespace Umbraco.Tests.Models
|
||||
content.UpdateDate = DateTime.Now;
|
||||
content.WriterId = 23;
|
||||
|
||||
|
||||
|
||||
// Act
|
||||
var clone = (Content)content.DeepClone();
|
||||
|
||||
@@ -378,20 +368,25 @@ namespace Umbraco.Tests.Models
|
||||
Assert.AreEqual(clone.CultureInfos[key], content.CultureInfos[key]);
|
||||
}
|
||||
|
||||
//This double verifies by reflection
|
||||
// This double verifies by reflection
|
||||
var allProps = clone.GetType().GetProperties();
|
||||
foreach (var propertyInfo in allProps)
|
||||
{
|
||||
Assert.AreEqual(propertyInfo.GetValue(clone, null), propertyInfo.GetValue(content, null));
|
||||
}
|
||||
|
||||
//need to ensure the event handlers are wired
|
||||
// Need to ensure the event handlers are wired
|
||||
|
||||
var asDirty = (ICanBeDirty)clone;
|
||||
|
||||
Assert.IsFalse(asDirty.IsPropertyDirty("Properties"));
|
||||
var propertyType = new PropertyType(ShortStringHelper, "test", ValueStorageType.Ntext, "blah");
|
||||
var newProperty = new Property(1, propertyType);
|
||||
var propertyType = new PropertyTypeBuilder()
|
||||
.WithAlias("blah")
|
||||
.Build();
|
||||
var newProperty = new PropertyBuilder()
|
||||
.WithId(1)
|
||||
.WithPropertyType(propertyType)
|
||||
.Build();
|
||||
newProperty.SetValue("blah");
|
||||
clone.Properties.Add(newProperty);
|
||||
|
||||
@@ -402,12 +397,12 @@ namespace Umbraco.Tests.Models
|
||||
public void Remember_Dirty_Properties()
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextPageContentType();
|
||||
var contentType = ContentTypeBuilder.CreateTextPageContentType();
|
||||
contentType.Id = 99;
|
||||
contentType.Variations = ContentVariation.Culture;
|
||||
Mock.Get(_contentTypeService).As<IContentTypeBaseService>().Setup(x => x.Get(It.IsAny<int>())).Returns(contentType);
|
||||
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
var content = ContentBuilder.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
|
||||
content.SetCultureName("Hello", "en-US");
|
||||
content.SetCultureName("World", "es-ES");
|
||||
@@ -418,6 +413,7 @@ namespace Umbraco.Tests.Models
|
||||
{
|
||||
property.Id = ++i;
|
||||
}
|
||||
|
||||
content.Id = 10;
|
||||
content.CreateDate = DateTime.Now;
|
||||
content.CreatorId = 22;
|
||||
@@ -427,7 +423,6 @@ namespace Umbraco.Tests.Models
|
||||
content.Path = "-1,4,10";
|
||||
content.SortOrder = 5;
|
||||
content.TemplateId = 88;
|
||||
|
||||
content.Trashed = true;
|
||||
content.UpdateDate = DateTime.Now;
|
||||
content.WriterId = 23;
|
||||
@@ -454,6 +449,7 @@ namespace Umbraco.Tests.Models
|
||||
Assert.IsTrue(prop.WasDirty());
|
||||
Assert.IsTrue(prop.WasPropertyDirty("Id"));
|
||||
}
|
||||
|
||||
Assert.IsTrue(content.WasPropertyDirty("CultureInfos"));
|
||||
foreach (var culture in content.CultureInfos)
|
||||
{
|
||||
@@ -461,6 +457,7 @@ namespace Umbraco.Tests.Models
|
||||
Assert.IsTrue(culture.WasPropertyDirty("Name"));
|
||||
Assert.IsTrue(culture.WasPropertyDirty("Date"));
|
||||
}
|
||||
|
||||
Assert.IsTrue(content.WasPropertyDirty("PublishCultureInfos"));
|
||||
foreach (var culture in content.PublishCultureInfos)
|
||||
{
|
||||
@@ -474,16 +471,17 @@ namespace Umbraco.Tests.Models
|
||||
public void Can_Serialize_Without_Error()
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextPageContentType();
|
||||
var contentType = ContentTypeBuilder.CreateTextPageContentType();
|
||||
contentType.Id = 99;
|
||||
Mock.Get(_contentTypeService).As<IContentTypeBaseService>().Setup(x => x.Get(It.IsAny<int>())).Returns(contentType);
|
||||
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
var content = ContentBuilder.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
var i = 200;
|
||||
foreach (var property in content.Properties)
|
||||
{
|
||||
property.Id = ++i;
|
||||
}
|
||||
|
||||
content.Id = 10;
|
||||
content.CreateDate = DateTime.Now;
|
||||
content.CreatorId = 22;
|
||||
@@ -506,8 +504,8 @@ namespace Umbraco.Tests.Models
|
||||
public void Cannot_Change_Property_With_Invalid_Value()
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextpageContentType();
|
||||
var content = MockedContent.CreateTextpageContent(contentType);
|
||||
var contentType = ContentTypeBuilder.CreateTextpageContentType();
|
||||
var content = ContentBuilder.CreateTextpageContent(contentType);
|
||||
|
||||
// Act
|
||||
var model = new TestEditorModel
|
||||
@@ -527,10 +525,10 @@ namespace Umbraco.Tests.Models
|
||||
public void Can_Change_Property_Value_Through_Anonymous_Object()
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextPageContentType();
|
||||
var contentType = ContentTypeBuilder.CreateTextPageContentType();
|
||||
Mock.Get(_contentTypeService).As<IContentTypeBaseService>().Setup(x => x.Get(It.IsAny<int>())).Returns(contentType);
|
||||
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
var content = ContentBuilder.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
|
||||
// Act
|
||||
content.PropertyValues(new { title = "This is the new title" });
|
||||
@@ -547,10 +545,10 @@ namespace Umbraco.Tests.Models
|
||||
public void Can_Verify_Dirty_Property_On_Content()
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextPageContentType();
|
||||
var contentType = ContentTypeBuilder.CreateTextPageContentType();
|
||||
Mock.Get(_contentTypeService).As<IContentTypeBaseService>().Setup(x => x.Get(It.IsAny<int>())).Returns(contentType);
|
||||
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
var content = ContentBuilder.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
|
||||
// Act
|
||||
content.ResetDirtyProperties();
|
||||
@@ -565,7 +563,7 @@ namespace Umbraco.Tests.Models
|
||||
public void Can_Add_PropertyGroup_On_ContentType()
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextPageContentType();
|
||||
var contentType = ContentTypeBuilder.CreateTextPageContentType();
|
||||
|
||||
// Act
|
||||
contentType.PropertyGroups.Add(new PropertyGroup(true) { Name = "Test Group", SortOrder = 3 });
|
||||
@@ -578,7 +576,7 @@ namespace Umbraco.Tests.Models
|
||||
public void Can_Remove_PropertyGroup_From_ContentType()
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextPageContentType();
|
||||
var contentType = ContentTypeBuilder.CreateTextPageContentType();
|
||||
contentType.ResetDirtyProperties();
|
||||
|
||||
// Act
|
||||
@@ -593,17 +591,14 @@ namespace Umbraco.Tests.Models
|
||||
public void Can_Add_PropertyType_To_Group_On_ContentType()
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextPageContentType();
|
||||
var contentType = ContentTypeBuilder.CreateTextPageContentType();
|
||||
|
||||
// Act
|
||||
contentType.PropertyGroups["Content"].PropertyTypes.Add(new PropertyType(ShortStringHelper, "test", ValueStorageType.Ntext, "subtitle")
|
||||
{
|
||||
Name = "Subtitle",
|
||||
Description = "Optional subtitle",
|
||||
Mandatory = false,
|
||||
SortOrder = 3,
|
||||
DataTypeId = -88
|
||||
});
|
||||
var propertyType = new PropertyTypeBuilder()
|
||||
.WithAlias("subtitle")
|
||||
.WithName("Subtitle")
|
||||
.Build();
|
||||
contentType.PropertyGroups["Content"].PropertyTypes.Add(propertyType);
|
||||
|
||||
// Assert
|
||||
Assert.That(contentType.PropertyGroups["Content"].PropertyTypes.Count, Is.EqualTo(3));
|
||||
@@ -613,20 +608,16 @@ namespace Umbraco.Tests.Models
|
||||
public void Can_Add_New_Property_To_New_PropertyType()
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextPageContentType();
|
||||
var contentType = ContentTypeBuilder.CreateTextPageContentType();
|
||||
Mock.Get(_contentTypeService).As<IContentTypeBaseService>().Setup(x => x.Get(It.IsAny<int>())).Returns(contentType);
|
||||
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
var content = ContentBuilder.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
|
||||
// Act
|
||||
var propertyType = new PropertyType(ShortStringHelper, "test", ValueStorageType.Ntext, "subtitle")
|
||||
{
|
||||
Name = "Subtitle",
|
||||
Description = "Optional subtitle",
|
||||
Mandatory = false,
|
||||
SortOrder = 3,
|
||||
DataTypeId = -88
|
||||
};
|
||||
var propertyType = new PropertyTypeBuilder()
|
||||
.WithAlias("subtitle")
|
||||
.WithName("Subtitle")
|
||||
.Build();
|
||||
contentType.PropertyGroups["Content"].PropertyTypes.Add(propertyType);
|
||||
var newProperty = new Property(propertyType);
|
||||
newProperty.SetValue("This is a subtitle Test");
|
||||
@@ -641,20 +632,16 @@ namespace Umbraco.Tests.Models
|
||||
public void Can_Add_New_Property_To_New_PropertyType_In_New_PropertyGroup()
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextPageContentType();
|
||||
var contentType = ContentTypeBuilder.CreateTextPageContentType();
|
||||
Mock.Get(_contentTypeService).As<IContentTypeBaseService>().Setup(x => x.Get(It.IsAny<int>())).Returns(contentType);
|
||||
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
var content = ContentBuilder.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
|
||||
// Act
|
||||
var propertyType = new PropertyType(ShortStringHelper, "test", ValueStorageType.Ntext, "subtitle")
|
||||
{
|
||||
Name = "Subtitle",
|
||||
Description = "Optional subtitle",
|
||||
Mandatory = false,
|
||||
SortOrder = 3,
|
||||
DataTypeId = -88
|
||||
};
|
||||
var propertyType = new PropertyTypeBuilder()
|
||||
.WithAlias("subtitle")
|
||||
.WithName("Subtitle")
|
||||
.Build();
|
||||
var propertyGroup = new PropertyGroup(true) { Name = "Test Group", SortOrder = 3 };
|
||||
propertyGroup.PropertyTypes.Add(propertyType);
|
||||
contentType.PropertyGroups.Add(propertyGroup);
|
||||
@@ -672,20 +659,16 @@ namespace Umbraco.Tests.Models
|
||||
public void Can_Update_PropertyType_Through_Content_Properties()
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextPageContentType();
|
||||
var contentType = ContentTypeBuilder.CreateTextPageContentType();
|
||||
Mock.Get(_contentTypeService).As<IContentTypeBaseService>().Setup(x => x.Get(It.IsAny<int>())).Returns(contentType);
|
||||
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
var content = ContentBuilder.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
|
||||
// Act - note that the PropertyType's properties like SortOrder is not updated through the Content object
|
||||
var propertyType = new PropertyType(ShortStringHelper, "test", ValueStorageType.Ntext, "title")
|
||||
{
|
||||
Name = "Title",
|
||||
Description = "Title description added",
|
||||
Mandatory = false,
|
||||
SortOrder = 10,
|
||||
DataTypeId = -88
|
||||
};
|
||||
var propertyType = new PropertyTypeBuilder()
|
||||
.WithAlias("title")
|
||||
.WithName("Title")
|
||||
.Build();
|
||||
content.Properties.Add(new Property(propertyType));
|
||||
|
||||
// Assert
|
||||
@@ -698,11 +681,11 @@ namespace Umbraco.Tests.Models
|
||||
public void Can_Change_ContentType_On_Content()
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextPageContentType();
|
||||
var simpleContentType = MockedContentTypes.CreateSimpleContentType();
|
||||
var contentType = ContentTypeBuilder.CreateTextPageContentType();
|
||||
var simpleContentType = ContentTypeBuilder.CreateSimpleContentType();
|
||||
Mock.Get(_contentTypeService).As<IContentTypeBaseService>().Setup(x => x.Get(It.IsAny<int>())).Returns(contentType);
|
||||
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
var content = ContentBuilder.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
|
||||
// Act
|
||||
content.ChangeContentType(simpleContentType);
|
||||
@@ -717,11 +700,11 @@ namespace Umbraco.Tests.Models
|
||||
public void Can_Change_ContentType_On_Content_And_Set_Property_Value()
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextPageContentType();
|
||||
var simpleContentType = MockedContentTypes.CreateSimpleContentType();
|
||||
var contentType = ContentTypeBuilder.CreateTextPageContentType();
|
||||
var simpleContentType = ContentTypeBuilder.CreateSimpleContentType();
|
||||
Mock.Get(_contentTypeService).As<IContentTypeBaseService>().Setup(x => x.Get(It.IsAny<int>())).Returns(contentType);
|
||||
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
var content = ContentBuilder.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
|
||||
// Act
|
||||
content.ChangeContentType(simpleContentType);
|
||||
@@ -736,11 +719,11 @@ namespace Umbraco.Tests.Models
|
||||
public void Can_Change_ContentType_On_Content_And_Still_Get_Old_Properties()
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextPageContentType();
|
||||
var simpleContentType = MockedContentTypes.CreateSimpleContentType();
|
||||
var contentType = ContentTypeBuilder.CreateTextPageContentType();
|
||||
var simpleContentType = ContentTypeBuilder.CreateSimpleContentType();
|
||||
Mock.Get(_contentTypeService).As<IContentTypeBaseService>().Setup(x => x.Get(It.IsAny<int>())).Returns(contentType);
|
||||
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
var content = ContentBuilder.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
|
||||
// Act
|
||||
content.ChangeContentType(simpleContentType);
|
||||
@@ -761,9 +744,9 @@ namespace Umbraco.Tests.Models
|
||||
//Mock.Get(_contentTypeService).As<IContentTypeBaseService>().Setup(x => x.Get(It.IsAny<int>())).Returns(contentType);
|
||||
|
||||
//// Arrange
|
||||
//var contentType = MockedContentTypes.CreateTextPageContentType();
|
||||
//var simpleContentType = MockedContentTypes.CreateSimpleContentType();
|
||||
//var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
//var contentType = ContentTypeBuilder.CreateTextPageContentType();
|
||||
//var simpleContentType = ContentTypeBuilder.CreateSimpleContentType();
|
||||
//var content = ContentBuilder.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
|
||||
//// Act
|
||||
//content.ChangeContentType(simpleContentType, true);
|
||||
@@ -777,10 +760,10 @@ namespace Umbraco.Tests.Models
|
||||
[Test]
|
||||
public void Can_Verify_Content_Is_Published()
|
||||
{
|
||||
var contentType = MockedContentTypes.CreateTextPageContentType();
|
||||
var contentType = ContentTypeBuilder.CreateTextPageContentType();
|
||||
Mock.Get(_contentTypeService).As<IContentTypeBaseService>().Setup(x => x.Get(It.IsAny<int>())).Returns(contentType);
|
||||
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
var content = ContentBuilder.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
|
||||
content.ResetDirtyProperties();
|
||||
content.PublishedState = PublishedState.Publishing;
|
||||
@@ -813,7 +796,7 @@ namespace Umbraco.Tests.Models
|
||||
public void Adding_PropertyGroup_To_ContentType_Results_In_Dirty_Entity()
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextPageContentType();
|
||||
var contentType = ContentTypeBuilder.CreateTextPageContentType();
|
||||
contentType.ResetDirtyProperties();
|
||||
|
||||
// Act
|
||||
@@ -830,7 +813,7 @@ namespace Umbraco.Tests.Models
|
||||
public void After_Committing_Changes_Was_Dirty_Is_True()
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextPageContentType();
|
||||
var contentType = ContentTypeBuilder.CreateTextPageContentType();
|
||||
contentType.ResetDirtyProperties(); //reset
|
||||
|
||||
// Act
|
||||
@@ -847,11 +830,11 @@ namespace Umbraco.Tests.Models
|
||||
public void After_Committing_Changes_Was_Dirty_Is_True_On_Changed_Property()
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextPageContentType();
|
||||
var contentType = ContentTypeBuilder.CreateTextPageContentType();
|
||||
contentType.ResetDirtyProperties(); //reset
|
||||
Mock.Get(_contentTypeService).As<IContentTypeBaseService>().Setup(x => x.Get(It.IsAny<int>())).Returns(contentType);
|
||||
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "test", -1);
|
||||
var content = ContentBuilder.CreateTextpageContent(contentType, "test", -1);
|
||||
content.ResetDirtyProperties();
|
||||
|
||||
// Act
|
||||
@@ -880,7 +863,7 @@ namespace Umbraco.Tests.Models
|
||||
public void If_Not_Committed_Was_Dirty_Is_False()
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextPageContentType();
|
||||
var contentType = ContentTypeBuilder.CreateTextPageContentType();
|
||||
|
||||
// Act
|
||||
contentType.Alias = "newAlias";
|
||||
@@ -894,7 +877,7 @@ namespace Umbraco.Tests.Models
|
||||
public void Detect_That_A_Property_Is_Removed()
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextPageContentType();
|
||||
var contentType = ContentTypeBuilder.CreateTextPageContentType();
|
||||
Assert.That(contentType.WasPropertyDirty("HasPropertyTypeBeenRemoved"), Is.False);
|
||||
|
||||
// Act
|
||||
@@ -908,18 +891,14 @@ namespace Umbraco.Tests.Models
|
||||
public void Adding_PropertyType_To_PropertyGroup_On_ContentType_Results_In_Dirty_Entity()
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextPageContentType();
|
||||
var contentType = ContentTypeBuilder.CreateTextPageContentType();
|
||||
contentType.ResetDirtyProperties();
|
||||
|
||||
// Act
|
||||
var propertyType = new PropertyType(ShortStringHelper, "test", ValueStorageType.Ntext, "subtitle")
|
||||
{
|
||||
Name = "Subtitle",
|
||||
Description = "Optional subtitle",
|
||||
Mandatory = false,
|
||||
SortOrder = 3,
|
||||
DataTypeId = -88
|
||||
};
|
||||
var propertyType = new PropertyTypeBuilder()
|
||||
.WithAlias("subtitle")
|
||||
.WithName("Subtitle")
|
||||
.Build();
|
||||
contentType.PropertyGroups["Content"].PropertyTypes.Add(propertyType);
|
||||
|
||||
// Assert
|
||||
@@ -932,20 +911,13 @@ namespace Umbraco.Tests.Models
|
||||
public void Can_Compose_Composite_ContentType_Collection()
|
||||
{
|
||||
// Arrange
|
||||
var simpleContentType = MockedContentTypes.CreateSimpleContentType();
|
||||
var simple2ContentType = MockedContentTypes.CreateSimpleContentType("anotherSimple", "Another Simple Page",
|
||||
new PropertyTypeCollection(true,
|
||||
new List<PropertyType>
|
||||
{
|
||||
new PropertyType(ShortStringHelper, "test", ValueStorageType.Ntext, "coauthor")
|
||||
{
|
||||
Name = "Co-Author",
|
||||
Description = "Name of the Co-Author",
|
||||
Mandatory = false,
|
||||
SortOrder = 4,
|
||||
DataTypeId = -88
|
||||
}
|
||||
}));
|
||||
var simpleContentType = ContentTypeBuilder.CreateSimpleContentType();
|
||||
var propertyType = new PropertyTypeBuilder()
|
||||
.WithAlias("coauthor")
|
||||
.WithName("Co-author")
|
||||
.Build();
|
||||
var simple2ContentType = ContentTypeBuilder.CreateSimpleContentType("anotherSimple", "Another Simple Page",
|
||||
propertyTypeCollection: new PropertyTypeCollection(true, new List<PropertyType> { propertyType }));
|
||||
|
||||
// Act
|
||||
var added = simpleContentType.AddContentType(simple2ContentType);
|
||||
@@ -962,21 +934,14 @@ namespace Umbraco.Tests.Models
|
||||
public void Can_Compose_Nested_Composite_ContentType_Collection()
|
||||
{
|
||||
// Arrange
|
||||
var metaContentType = MockedContentTypes.CreateMetaContentType();
|
||||
var simpleContentType = MockedContentTypes.CreateSimpleContentType();
|
||||
var simple2ContentType = MockedContentTypes.CreateSimpleContentType("anotherSimple", "Another Simple Page",
|
||||
new PropertyTypeCollection(true,
|
||||
new List<PropertyType>
|
||||
{
|
||||
new PropertyType(ShortStringHelper, "test", ValueStorageType.Ntext, "coauthor")
|
||||
{
|
||||
Name = "Co-Author",
|
||||
Description = "Name of the Co-Author",
|
||||
Mandatory = false,
|
||||
SortOrder = 4,
|
||||
DataTypeId = -88
|
||||
}
|
||||
}));
|
||||
var metaContentType = ContentTypeBuilder.CreateMetaContentType();
|
||||
var simpleContentType = ContentTypeBuilder.CreateSimpleContentType();
|
||||
var propertyType = new PropertyTypeBuilder()
|
||||
.WithAlias("coauthor")
|
||||
.WithName("Co-author")
|
||||
.Build();
|
||||
var simple2ContentType = ContentTypeBuilder.CreateSimpleContentType("anotherSimple", "Another Simple Page",
|
||||
propertyTypeCollection: new PropertyTypeCollection(true, new List<PropertyType> { propertyType }));
|
||||
|
||||
// Act
|
||||
var addedMeta = simple2ContentType.AddContentType(metaContentType);
|
||||
@@ -995,33 +960,21 @@ namespace Umbraco.Tests.Models
|
||||
[Test]
|
||||
public void Can_Avoid_Circular_Dependencies_In_Composition()
|
||||
{
|
||||
var textPage = MockedContentTypes.CreateTextPageContentType();
|
||||
var parent = MockedContentTypes.CreateSimpleContentType("parent", "Parent", null, true);
|
||||
var meta = MockedContentTypes.CreateMetaContentType();
|
||||
var mixin1 = MockedContentTypes.CreateSimpleContentType("mixin1", "Mixin1", new PropertyTypeCollection(true,
|
||||
new List<PropertyType>
|
||||
{
|
||||
new PropertyType(ShortStringHelper, "test", ValueStorageType.Ntext, "coauthor")
|
||||
{
|
||||
Name = "Co-Author",
|
||||
Description = "Name of the Co-Author",
|
||||
Mandatory = false,
|
||||
SortOrder = 4,
|
||||
DataTypeId = -88
|
||||
}
|
||||
}));
|
||||
var mixin2 = MockedContentTypes.CreateSimpleContentType("mixin2", "Mixin2", new PropertyTypeCollection(true,
|
||||
new List<PropertyType>
|
||||
{
|
||||
new PropertyType(ShortStringHelper, "test", ValueStorageType.Ntext, "author")
|
||||
{
|
||||
Name = "Author",
|
||||
Description = "Name of the Author",
|
||||
Mandatory = false,
|
||||
SortOrder = 4,
|
||||
DataTypeId = -88
|
||||
}
|
||||
}));
|
||||
var textPage = ContentTypeBuilder.CreateTextPageContentType();
|
||||
var parent = ContentTypeBuilder.CreateSimpleContentType("parent", "Parent", null, randomizeAliases: true);
|
||||
var meta = ContentTypeBuilder.CreateMetaContentType();
|
||||
var propertyType1 = new PropertyTypeBuilder()
|
||||
.WithAlias("coauthor")
|
||||
.WithName("Co-author")
|
||||
.Build();
|
||||
var mixin1 = ContentTypeBuilder.CreateSimpleContentType("mixin1", "Mixin1",
|
||||
propertyTypeCollection: new PropertyTypeCollection(true, new List<PropertyType> { propertyType1 }));
|
||||
var propertyType2 = new PropertyTypeBuilder()
|
||||
.WithAlias("author")
|
||||
.WithName("Author")
|
||||
.Build();
|
||||
var mixin2 = ContentTypeBuilder.CreateSimpleContentType("mixin2", "Mixin2",
|
||||
propertyTypeCollection: new PropertyTypeCollection(true, new List<PropertyType> { propertyType2 }));
|
||||
|
||||
// Act
|
||||
var addedMetaMixin2 = mixin2.AddContentType(meta);
|
||||
@@ -3,13 +3,12 @@ using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using Newtonsoft.Json;
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Models;
|
||||
using Umbraco.Core.Models.Entities;
|
||||
using Umbraco.Tests.Common.Builders;
|
||||
using Umbraco.Tests.Common.Builders.Extensions;
|
||||
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Infrastructure.Models
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Core.Models
|
||||
{
|
||||
[TestFixture]
|
||||
public class ContentTypeTests
|
||||
@@ -2,7 +2,7 @@
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Core.Models;
|
||||
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Infrastructure.Models
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Core.Models
|
||||
{
|
||||
[TestFixture]
|
||||
public class CultureImpactTests
|
||||
@@ -5,7 +5,7 @@ using System.Linq;
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Core.Models;
|
||||
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Infrastructure.Models
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Core.Models
|
||||
{
|
||||
[TestFixture]
|
||||
public class DeepCloneHelperTests
|
||||
@@ -4,7 +4,7 @@ using NUnit.Framework;
|
||||
using Umbraco.Core.Models;
|
||||
using Umbraco.Tests.Common.Builders;
|
||||
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Infrastructure.Models
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Core.Models
|
||||
{
|
||||
[TestFixture]
|
||||
public class DictionaryItemTests
|
||||
@@ -6,7 +6,7 @@ using Umbraco.Core.Models;
|
||||
using Umbraco.Tests.Common.Builders;
|
||||
using Umbraco.Tests.Common.Builders.Extensions;
|
||||
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Infrastructure.Models
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Core.Models
|
||||
{
|
||||
[TestFixture]
|
||||
public class DictionaryTranslationTests
|
||||
@@ -4,7 +4,7 @@ using NUnit.Framework;
|
||||
using Umbraco.Tests.Common.Builders;
|
||||
using Umbraco.Tests.Common.Builders.Extensions;
|
||||
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Infrastructure.Models
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Core.Models
|
||||
{
|
||||
[TestFixture]
|
||||
public class DocumentEntityTests
|
||||
@@ -4,7 +4,7 @@ using Umbraco.Core.Models;
|
||||
using Umbraco.Tests.Common.Builders;
|
||||
using Umbraco.Tests.Common.Builders.Extensions;
|
||||
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Infrastructure.Models
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Core.Models
|
||||
{
|
||||
[TestFixture]
|
||||
public class LanguageTests
|
||||
@@ -6,7 +6,7 @@ using Umbraco.Core.Models.Entities;
|
||||
using Umbraco.Tests.Common.Builders;
|
||||
using Umbraco.Tests.Common.Builders.Extensions;
|
||||
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Infrastructure.Models
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Core.Models
|
||||
{
|
||||
[TestFixture]
|
||||
public class MacroTests
|
||||
@@ -6,7 +6,7 @@ using Umbraco.Core.Models;
|
||||
using Umbraco.Tests.Common.Builders;
|
||||
using Umbraco.Tests.Common.Builders.Extensions;
|
||||
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Infrastructure.Models
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Core.Models
|
||||
{
|
||||
[TestFixture]
|
||||
public class MemberGroupTests
|
||||
@@ -1,14 +1,12 @@
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using Newtonsoft.Json;
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Models;
|
||||
using Umbraco.Tests.Common.Builders;
|
||||
using Umbraco.Tests.Common.Builders.Extensions;
|
||||
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Infrastructure.Models
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Core.Models
|
||||
{
|
||||
[TestFixture]
|
||||
public class MemberTests
|
||||
@@ -6,7 +6,7 @@ using Umbraco.Core.Models;
|
||||
using Umbraco.Tests.Common.Builders;
|
||||
using Umbraco.Tests.Common.Builders.Extensions;
|
||||
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Infrastructure.Models
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Core.Models
|
||||
{
|
||||
[TestFixture]
|
||||
public class PropertyGroupTests
|
||||
@@ -5,7 +5,7 @@ using Umbraco.Core.Models;
|
||||
using Umbraco.Tests.Common.Builders;
|
||||
using Umbraco.Tests.Common.Builders.Extensions;
|
||||
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Infrastructure.Models
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Core.Models
|
||||
{
|
||||
[TestFixture]
|
||||
public class PropertyTests
|
||||
@@ -8,7 +8,7 @@ using Umbraco.Core.Models;
|
||||
using Umbraco.Tests.Common.Builders;
|
||||
using Umbraco.Tests.Common.Builders.Extensions;
|
||||
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Infrastructure.Models
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Core.Models
|
||||
{
|
||||
[TestFixture]
|
||||
public class PropertyTypeTests
|
||||
@@ -6,7 +6,7 @@ using Umbraco.Core.Models;
|
||||
using Umbraco.Tests.Common.Builders;
|
||||
using Umbraco.Tests.Common.Builders.Extensions;
|
||||
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Infrastructure.Models
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Core.Models
|
||||
{
|
||||
[TestFixture]
|
||||
public class RelationTests
|
||||
@@ -5,7 +5,7 @@ using Umbraco.Core.Models;
|
||||
using Umbraco.Tests.Common.Builders;
|
||||
using Umbraco.Tests.Common.Builders.Extensions;
|
||||
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Infrastructure.Models
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Core.Models
|
||||
{
|
||||
[TestFixture]
|
||||
public class RelationTypeTests
|
||||
@@ -6,7 +6,7 @@ using NUnit.Framework;
|
||||
using Umbraco.Core.Models;
|
||||
using Umbraco.Tests.Common.Builders;
|
||||
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Infrastructure.Models
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Core.Models
|
||||
{
|
||||
[TestFixture]
|
||||
public class StylesheetTests
|
||||
@@ -8,7 +8,7 @@ using Umbraco.Core.Models;
|
||||
using Umbraco.Tests.Common.Builders;
|
||||
using Umbraco.Tests.Common.Builders.Extensions;
|
||||
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Infrastructure.Models
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Core.Models
|
||||
{
|
||||
[TestFixture]
|
||||
public class TemplateTests
|
||||
@@ -8,7 +8,7 @@ using Umbraco.Core.Models.Entities;
|
||||
using Umbraco.Core.Services;
|
||||
using Umbraco.Tests.Common.Builders;
|
||||
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Infrastructure.Models
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Core.Models
|
||||
{
|
||||
[TestFixture]
|
||||
public class UserExtensionsTests
|
||||
@@ -1,5 +1,4 @@
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using Newtonsoft.Json;
|
||||
using NUnit.Framework;
|
||||
@@ -7,7 +6,7 @@ using Umbraco.Core.Models.Membership;
|
||||
using Umbraco.Tests.Common.Builders;
|
||||
using Umbraco.Tests.Common.Builders.Extensions;
|
||||
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Infrastructure.Models
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Core.Models
|
||||
{
|
||||
[TestFixture]
|
||||
public class UserTests
|
||||
@@ -3,69 +3,21 @@ using Microsoft.Extensions.Logging.Abstractions;
|
||||
using Moq;
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Composing;
|
||||
using Umbraco.Core.IO;
|
||||
using Umbraco.Core.Models;
|
||||
using Umbraco.Core.PropertyEditors;
|
||||
using Umbraco.Core.Services;
|
||||
using Umbraco.Core.Strings;
|
||||
using Umbraco.Tests.Common.Builders;
|
||||
using Umbraco.Tests.Common.Builders.Extensions;
|
||||
using Umbraco.Tests.TestHelpers;
|
||||
using Umbraco.Tests.TestHelpers.Entities;
|
||||
using Current = Umbraco.Web.Composing.Current;
|
||||
using Umbraco.Web.PropertyEditors;
|
||||
|
||||
namespace Umbraco.Tests.Models
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Core.Models
|
||||
{
|
||||
[TestFixture]
|
||||
public class VariationTests
|
||||
{
|
||||
private IFactory _factory;
|
||||
private IShortStringHelper ShortStringHelper { get; } = TestHelper.ShortStringHelper;
|
||||
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
// well, this is also annoying, but...
|
||||
// validating a value is performed by its data editor,
|
||||
// based upon the configuration in the data type, so we
|
||||
// need to be able to retrieve them all...
|
||||
|
||||
Current.Reset();
|
||||
|
||||
_factory = Mock.Of<IFactory>();
|
||||
|
||||
var dataTypeService = Mock.Of<IDataTypeService>();
|
||||
var localizationService = Mock.Of<ILocalizationService>();
|
||||
|
||||
var dataEditors = new DataEditorCollection(new IDataEditor[]
|
||||
{
|
||||
new DataEditor(NullLoggerFactory.Instance, Mock.Of<IDataTypeService>(), Mock.Of<ILocalizationService>(), Mock.Of<ILocalizedTextService>(), Mock.Of<IShortStringHelper>()) { Alias = "editor", ExplicitValueEditor = MockedValueEditors.CreateDataValueEditor("view") }
|
||||
});
|
||||
var propertyEditors = new PropertyEditorCollection(dataEditors);
|
||||
|
||||
var dataType = Mock.Of<IDataType>();
|
||||
Mock.Get(dataType)
|
||||
.Setup(x => x.Configuration)
|
||||
.Returns(null);
|
||||
|
||||
Mock.Get(dataTypeService)
|
||||
.Setup(x => x.GetDataType(It.IsAny<int>()))
|
||||
.Returns<int>(x => dataType);
|
||||
|
||||
var serviceContext = ServiceContext.CreatePartial(
|
||||
dataTypeService: dataTypeService,
|
||||
localizedTextService: Mock.Of<ILocalizedTextService>());
|
||||
|
||||
Mock.Get(_factory)
|
||||
.Setup(x => x.GetInstance(It.IsAny<Type>()))
|
||||
.Returns<Type>(x =>
|
||||
{
|
||||
//if (x == typeof(Configs)) return configs;
|
||||
if (x == typeof(PropertyEditorCollection)) return propertyEditors;
|
||||
if (x == typeof(ServiceContext)) return serviceContext;
|
||||
if (x == typeof(ILocalizedTextService)) return serviceContext.LocalizationService;
|
||||
throw new NotSupportedException(x.FullName);
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ValidateVariationTests()
|
||||
{
|
||||
@@ -292,8 +244,10 @@ namespace Umbraco.Tests.Models
|
||||
[Test]
|
||||
public void ContentNames()
|
||||
{
|
||||
var contentType = new ContentType(ShortStringHelper, -1) { Alias = "contentType" };
|
||||
var content = new Content("content", -1, contentType) { Id = 1, VersionId = 1 };
|
||||
var contentType = new ContentTypeBuilder()
|
||||
.WithAlias("contentType")
|
||||
.Build();
|
||||
var content = CreateContent(contentType);
|
||||
|
||||
const string langFr = "fr-FR";
|
||||
const string langUk = "en-UK";
|
||||
@@ -305,7 +259,7 @@ namespace Umbraco.Tests.Models
|
||||
contentType.Variations = ContentVariation.Culture;
|
||||
|
||||
// recreate content to re-capture content type variations
|
||||
content = new Content("content", -1, contentType) { Id = 1, VersionId = 1 };
|
||||
content = CreateContent(contentType);
|
||||
|
||||
// invariant name works
|
||||
content.Name = "name";
|
||||
@@ -333,11 +287,15 @@ namespace Umbraco.Tests.Models
|
||||
{
|
||||
const string langFr = "fr-FR";
|
||||
|
||||
var propertyType = new PropertyType(ShortStringHelper, "editor", ValueStorageType.Nvarchar) { Alias = "prop" };
|
||||
var contentType = new ContentType(ShortStringHelper, -1) { Alias = "contentType" };
|
||||
var propertyType = new PropertyTypeBuilder()
|
||||
.WithAlias("prop")
|
||||
.Build();
|
||||
var contentType = new ContentTypeBuilder()
|
||||
.WithAlias("contentType")
|
||||
.Build();
|
||||
contentType.AddPropertyType(propertyType);
|
||||
|
||||
var content = new Content("content", -1, contentType) { Id = 1, VersionId = 1 };
|
||||
var content = CreateContent(contentType);
|
||||
|
||||
// can set value
|
||||
// and get edited value, published is null
|
||||
@@ -419,7 +377,8 @@ namespace Umbraco.Tests.Models
|
||||
Assert.IsNull(content.GetValue("prop"));
|
||||
Assert.IsNull(content.GetValue("prop", published: true));
|
||||
|
||||
var other = new Content("other", -1, contentType) { Id = 2, VersionId = 1 };
|
||||
var other = CreateContent(contentType, 2, "other");
|
||||
|
||||
Assert.Throws<NotSupportedException>(() => other.SetValue("prop", "o")); // don't even try
|
||||
other.SetValue("prop", "o1", langFr);
|
||||
|
||||
@@ -441,26 +400,32 @@ namespace Umbraco.Tests.Models
|
||||
[Test]
|
||||
public void ContentPublishValuesWithMixedPropertyTypeVariations()
|
||||
{
|
||||
var propertyValidationService = new PropertyValidationService(
|
||||
_factory.GetInstance<PropertyEditorCollection>(),
|
||||
_factory.GetInstance<ServiceContext>().DataTypeService,
|
||||
_factory.GetInstance<ServiceContext>().TextService);
|
||||
var propertyValidationService = GetPropertyValidationService();
|
||||
const string langFr = "fr-FR";
|
||||
|
||||
// content type varies by Culture
|
||||
// prop1 varies by Culture
|
||||
// prop2 is invariant
|
||||
|
||||
var contentType = new ContentType(ShortStringHelper, -1) { Alias = "contentType" };
|
||||
var contentType = new ContentTypeBuilder()
|
||||
.WithAlias("contentType")
|
||||
.Build();
|
||||
contentType.Variations |= ContentVariation.Culture;
|
||||
|
||||
var variantPropType = new PropertyType(ShortStringHelper, "editor", ValueStorageType.Nvarchar) { Alias = "prop1", Variations = ContentVariation.Culture, Mandatory = true };
|
||||
var invariantPropType = new PropertyType(ShortStringHelper, "editor", ValueStorageType.Nvarchar) { Alias = "prop2", Variations = ContentVariation.Nothing, Mandatory = true};
|
||||
|
||||
var variantPropType = new PropertyTypeBuilder()
|
||||
.WithAlias("prop1")
|
||||
.WithVariations(ContentVariation.Culture)
|
||||
.WithMandatory(true)
|
||||
.Build();
|
||||
var invariantPropType = new PropertyTypeBuilder()
|
||||
.WithAlias("prop2")
|
||||
.WithVariations(ContentVariation.Nothing)
|
||||
.WithMandatory(true)
|
||||
.Build();
|
||||
contentType.AddPropertyType(variantPropType);
|
||||
contentType.AddPropertyType(invariantPropType);
|
||||
|
||||
var content = new Content("content", -1, contentType) { Id = 1, VersionId = 1 };
|
||||
var content = CreateContent(contentType);
|
||||
|
||||
content.SetCultureName("hello", langFr);
|
||||
|
||||
@@ -490,11 +455,15 @@ namespace Umbraco.Tests.Models
|
||||
const string langUk = "en-UK";
|
||||
const string langEs = "es-ES";
|
||||
|
||||
var propertyType = new PropertyType(ShortStringHelper, "editor", ValueStorageType.Nvarchar) { Alias = "prop" };
|
||||
var contentType = new ContentType(ShortStringHelper, -1) { Alias = "contentType" };
|
||||
var propertyType = new PropertyTypeBuilder()
|
||||
.WithAlias("prop")
|
||||
.Build();
|
||||
var contentType = new ContentTypeBuilder()
|
||||
.WithAlias("contentType")
|
||||
.Build();
|
||||
contentType.AddPropertyType(propertyType);
|
||||
|
||||
var content = new Content("content", -1, contentType) { Id = 1, VersionId = 1 };
|
||||
var content = CreateContent(contentType);
|
||||
|
||||
// change - now we vary by culture
|
||||
contentType.Variations |= ContentVariation.Culture;
|
||||
@@ -545,12 +514,16 @@ namespace Umbraco.Tests.Models
|
||||
[Test]
|
||||
public void IsDirtyTests()
|
||||
{
|
||||
var propertyType = new PropertyType(ShortStringHelper, "editor", ValueStorageType.Nvarchar) { Alias = "prop" };
|
||||
var propertyType = new PropertyTypeBuilder()
|
||||
.WithAlias("prop")
|
||||
.Build();
|
||||
var prop = new Property(propertyType);
|
||||
var contentType = new ContentType(ShortStringHelper, -1) { Alias = "contentType" };
|
||||
var contentType = new ContentTypeBuilder()
|
||||
.WithAlias("contentType")
|
||||
.Build();
|
||||
contentType.AddPropertyType(propertyType);
|
||||
|
||||
var content = new Content("content", -1, contentType) { Id = 1, VersionId = 1 };
|
||||
var content = CreateContent(contentType);
|
||||
|
||||
prop.SetValue("a");
|
||||
Assert.AreEqual("a", prop.GetValue());
|
||||
@@ -570,17 +543,17 @@ namespace Umbraco.Tests.Models
|
||||
[Test]
|
||||
public void ValidationTests()
|
||||
{
|
||||
var propertyType = new PropertyType(ShortStringHelper, "editor", ValueStorageType.Nvarchar) { Alias = "prop", SupportsPublishing = true };
|
||||
var propertyType = new PropertyTypeBuilder()
|
||||
.WithAlias("prop")
|
||||
.WithSupportsPublishing(true)
|
||||
.Build();
|
||||
|
||||
var prop = new Property(propertyType);
|
||||
|
||||
prop.SetValue("a");
|
||||
Assert.AreEqual("a", prop.GetValue());
|
||||
Assert.IsNull(prop.GetValue(published: true));
|
||||
var propertyValidationService = new PropertyValidationService(
|
||||
_factory.GetInstance<PropertyEditorCollection>(),
|
||||
_factory.GetInstance<ServiceContext>().DataTypeService,
|
||||
_factory.GetInstance<ServiceContext>().TextService
|
||||
);
|
||||
var propertyValidationService = GetPropertyValidationService();
|
||||
|
||||
Assert.IsTrue(propertyValidationService.IsPropertyValid(prop));
|
||||
|
||||
@@ -593,5 +566,43 @@ namespace Umbraco.Tests.Models
|
||||
// can publish, even though invalid
|
||||
prop.PublishValues();
|
||||
}
|
||||
|
||||
private static Content CreateContent(IContentType contentType, int id = 1, string name = "content")
|
||||
{
|
||||
return new ContentBuilder()
|
||||
.WithId(id)
|
||||
.WithVersionId(1)
|
||||
.WithName(name)
|
||||
.WithContentType(contentType)
|
||||
.Build();
|
||||
}
|
||||
|
||||
private static PropertyValidationService GetPropertyValidationService()
|
||||
{
|
||||
var ioHelper = Mock.Of<IIOHelper>();
|
||||
var dataTypeService = Mock.Of<IDataTypeService>();
|
||||
var localizedTextService = Mock.Of<ILocalizedTextService>();
|
||||
var localizationService = Mock.Of<ILocalizationService>();
|
||||
var shortStringHelper = Mock.Of<IShortStringHelper>();
|
||||
|
||||
var textBoxEditor = new TextboxPropertyEditor(
|
||||
NullLoggerFactory.Instance,
|
||||
dataTypeService,
|
||||
localizationService,
|
||||
ioHelper,
|
||||
shortStringHelper,
|
||||
localizedTextService
|
||||
);
|
||||
|
||||
var mockDataTypeService = new Mock<IDataTypeService>();
|
||||
Mock.Get(dataTypeService).Setup(x => x.GetDataType(It.Is<int>(y => y == Constants.DataTypes.Textbox)))
|
||||
.Returns(new DataType(textBoxEditor));
|
||||
|
||||
var propertyEditorCollection = new PropertyEditorCollection(new DataEditorCollection(new[] { textBoxEditor }));
|
||||
return new PropertyValidationService(
|
||||
propertyEditorCollection,
|
||||
dataTypeService,
|
||||
localizedTextService);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,10 +3,10 @@ using Umbraco.Core.Models;
|
||||
using Umbraco.Infrastructure.Media;
|
||||
using Umbraco.Web.Models;
|
||||
|
||||
namespace Umbraco.Tests.Models
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Infrastructure.Media
|
||||
{
|
||||
[TestFixture]
|
||||
public class ImageProcessorImageUrlGeneratorTest
|
||||
public class ImageSharpImageUrlGeneratorTests
|
||||
{
|
||||
private const string MediaPath = "/media/1005/img_0671.jpg";
|
||||
private static readonly ImageUrlGenerationOptions.CropCoordinates Crop = new ImageUrlGenerationOptions.CropCoordinates(0.58729977382575338m, 0.055768992440203169m, 0m, 0.32457553600198386m);
|
||||
@@ -4,7 +4,7 @@ using Umbraco.Core.Models;
|
||||
using Umbraco.Tests.Common.Builders;
|
||||
using Umbraco.Tests.Common.Builders.Extensions;
|
||||
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Infrastructure.Models
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Infrastucture.Models
|
||||
{
|
||||
[TestFixture]
|
||||
public class DataTypeTests
|
||||
|
||||
@@ -7,7 +7,7 @@ using Umbraco.Core.Models.Entities;
|
||||
using Umbraco.Tests.Common.Builders;
|
||||
using Umbraco.Tests.Common.Builders.Extensions;
|
||||
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Infrastructure.Models
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Infrastucture.Models
|
||||
{
|
||||
[TestFixture]
|
||||
public class PathValidationTests
|
||||
|
||||
@@ -141,6 +141,7 @@
|
||||
<Compile Include="Models\ContentXmlTest.cs" />
|
||||
<Compile Include="Models\ImageProcessorImageUrlGeneratorTest.cs" />
|
||||
<Compile Include="Models\VariationTests.cs" />
|
||||
<Compile Include="Persistence\Mappers\MapperTestBase.cs" />
|
||||
<Compile Include="PublishedContent\SolidPublishedSnapshot.cs" />
|
||||
<Compile Include="Published\ConvertersTests.cs" />
|
||||
<Compile Include="Published\ModelTypeTests.cs" />
|
||||
@@ -285,7 +286,6 @@
|
||||
<Compile Include="PublishedContent\PublishedContentTests.cs" />
|
||||
<Compile Include="PublishedContent\PublishedMediaTests.cs" />
|
||||
<Compile Include="Web\Mvc\HtmlHelperExtensionMethodsTests.cs" />
|
||||
<Compile Include="Models\ContentTests.cs" />
|
||||
<Compile Include="Persistence\SqlCeTableByTableTest.cs" />
|
||||
<Compile Include="Persistence\DatabaseContextTests.cs" />
|
||||
<Compile Include="Persistence\NPocoTests\NPocoSqlTests.cs" />
|
||||
@@ -439,6 +439,9 @@
|
||||
<ItemGroup>
|
||||
<Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="Integration\" />
|
||||
</ItemGroup>
|
||||
<!-- get NuGet packages directory -->
|
||||
<PropertyGroup>
|
||||
<NuGetPackages>$(NuGetPackageFolders.Split(';')[0])</NuGetPackages>
|
||||
|
||||
Reference in New Issue
Block a user