Removing dependency on DbProviderFactories in DatabaseFactory.
Refactoring mocked content used by ContentTests. Refactoring dirty-usage.
This commit is contained in:
@@ -70,18 +70,17 @@ namespace Umbraco.Core
|
||||
if (providerName.StartsWith("MySql"))
|
||||
{
|
||||
SyntaxConfig.SqlSyntaxProvider = MySqlSyntax.Provider;
|
||||
_configured = true;
|
||||
}
|
||||
else if (providerName.Contains("SqlServerCe"))
|
||||
{
|
||||
SyntaxConfig.SqlSyntaxProvider = SqlCeSyntax.Provider;
|
||||
_configured = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
SyntaxConfig.SqlSyntaxProvider = SqlServerSyntax.Provider;
|
||||
_configured = true;
|
||||
}
|
||||
|
||||
_configured = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Runtime.Serialization;
|
||||
|
||||
@@ -200,28 +201,6 @@ namespace Umbraco.Core.Models
|
||||
ChangeContentType(contentType);
|
||||
}
|
||||
|
||||
//TODO Possibly add a ToXml method, which will generate valid xml for the current Content object
|
||||
|
||||
/// <summary>
|
||||
/// Method to call when Entity is being saved
|
||||
/// </summary>
|
||||
/// <remarks>Created date is set and a Unique key is assigned</remarks>
|
||||
internal override void AddingEntity()
|
||||
{
|
||||
base.AddingEntity();
|
||||
Key = Guid.NewGuid();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method to call when Entity is being updated
|
||||
/// </summary>
|
||||
/// <remarks>Modified Date is set and a new Version guid is set</remarks>
|
||||
internal override void UpdatingEntity()
|
||||
{
|
||||
base.UpdatingEntity();
|
||||
Version = Guid.NewGuid();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Changes the Published state of the content object
|
||||
/// </summary>
|
||||
@@ -272,5 +251,69 @@ namespace Umbraco.Core.Models
|
||||
|
||||
return clone;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Indicates whether a specific property on the current <see cref="IContent"/> entity is dirty.
|
||||
/// </summary>
|
||||
/// <param name="propertyName">Name of the property to check</param>
|
||||
/// <returns>True if Property is dirty, otherwise False</returns>
|
||||
public override bool IsPropertyDirty(string propertyName)
|
||||
{
|
||||
bool existsInEntity = base.IsPropertyDirty(propertyName);
|
||||
|
||||
bool anyDirtyProperties = Properties.Any(x => x.IsPropertyDirty(propertyName));
|
||||
|
||||
return existsInEntity || anyDirtyProperties;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Indicates whether the current entity is dirty.
|
||||
/// </summary>
|
||||
/// <returns>True if entity is dirty, otherwise False</returns>
|
||||
public override bool IsDirty()
|
||||
{
|
||||
bool dirtyEntity = base.IsDirty();
|
||||
|
||||
bool dirtyProperties = Properties.Any(x => x.IsDirty());
|
||||
|
||||
return dirtyEntity || dirtyProperties;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Resets dirty properties by clearing the dictionary used to track changes.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Please note that resetting the dirty properties could potentially
|
||||
/// obstruct the saving of a new or updated entity.
|
||||
/// </remarks>
|
||||
public override void ResetDirtyProperties()
|
||||
{
|
||||
base.ResetDirtyProperties();
|
||||
|
||||
foreach (var property in Properties)
|
||||
{
|
||||
property.ResetDirtyProperties();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method to call when Entity is being saved
|
||||
/// </summary>
|
||||
/// <remarks>Created date is set and a Unique key is assigned</remarks>
|
||||
internal override void AddingEntity()
|
||||
{
|
||||
base.AddingEntity();
|
||||
Key = Guid.NewGuid();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method to call when Entity is being updated
|
||||
/// </summary>
|
||||
/// <remarks>Modified Date is set and a new Version guid is set</remarks>
|
||||
internal override void UpdatingEntity()
|
||||
{
|
||||
base.UpdatingEntity();
|
||||
Version = Guid.NewGuid();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -8,37 +8,39 @@ namespace Umbraco.Core.Models
|
||||
/// <summary>
|
||||
/// Set property values by alias with an annonymous object
|
||||
/// </summary>
|
||||
public static void PropertyValues(this IContent content, object value)
|
||||
{
|
||||
if (value == null)
|
||||
throw new Exception("No properties has been passed in");
|
||||
public static void PropertyValues(this IContent content, object value)
|
||||
{
|
||||
if (value == null)
|
||||
throw new Exception("No properties has been passed in");
|
||||
|
||||
var propertyInfos = value.GetType().GetProperties();
|
||||
foreach (var propertyInfo in propertyInfos)
|
||||
{
|
||||
//Check if a PropertyType with alias exists thus being a valid property
|
||||
var propertyType = content.PropertyTypes.FirstOrDefault(x => x.Alias == propertyInfo.Name);
|
||||
if (propertyType == null)
|
||||
throw new Exception(
|
||||
string.Format(
|
||||
"The property alias {0} is not valid, because no PropertyType with this alias exists",
|
||||
propertyInfo.Name));
|
||||
var propertyInfos = value.GetType().GetProperties();
|
||||
foreach (var propertyInfo in propertyInfos)
|
||||
{
|
||||
//Check if a PropertyType with alias exists thus being a valid property
|
||||
var propertyType = content.PropertyTypes.FirstOrDefault(x => x.Alias == propertyInfo.Name);
|
||||
if (propertyType == null)
|
||||
throw new Exception(
|
||||
string.Format(
|
||||
"The property alias {0} is not valid, because no PropertyType with this alias exists",
|
||||
propertyInfo.Name));
|
||||
|
||||
//Check if a Property with the alias already exists in the collection thus being updated or inserted
|
||||
var item = content.Properties.FirstOrDefault(x => x.Alias == propertyInfo.Name);
|
||||
if (item != null)
|
||||
{
|
||||
item.Value = propertyInfo.GetValue(value, null);
|
||||
//Update item with newly added value
|
||||
content.Properties.Add(item);
|
||||
}
|
||||
else
|
||||
{
|
||||
//Create new Property to add to collection
|
||||
var property = propertyType.CreatePropertyFromValue(propertyInfo.GetValue(value, null));
|
||||
content.Properties.Add(property);
|
||||
}
|
||||
}
|
||||
}
|
||||
//Check if a Property with the alias already exists in the collection thus being updated or inserted
|
||||
var item = content.Properties.FirstOrDefault(x => x.Alias == propertyInfo.Name);
|
||||
if (item != null)
|
||||
{
|
||||
item.Value = propertyInfo.GetValue(value, null);
|
||||
//Update item with newly added value
|
||||
content.Properties.Add(item);
|
||||
}
|
||||
else
|
||||
{
|
||||
//Create new Property to add to collection
|
||||
var property = propertyType.CreatePropertyFromValue(propertyInfo.GetValue(value, null));
|
||||
content.Properties.Add(property);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//TODO Possibly add a ToXml method, which will generate valid xml for the current Content object
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Runtime.Serialization;
|
||||
|
||||
@@ -50,6 +51,56 @@ namespace Umbraco.Core.Models
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Indicates whether a specific property on the current <see cref="IContent"/> entity is dirty.
|
||||
/// </summary>
|
||||
/// <param name="propertyName">Name of the property to check</param>
|
||||
/// <returns>True if Property is dirty, otherwise False</returns>
|
||||
public override bool IsPropertyDirty(string propertyName)
|
||||
{
|
||||
bool existsInEntity = base.IsPropertyDirty(propertyName);
|
||||
|
||||
bool anyDirtyGroups = PropertyGroups.Any(x => x.IsPropertyDirty(propertyName));
|
||||
bool anyDirtyTypes = PropertyTypes.Any(x => x.IsPropertyDirty(propertyName));
|
||||
|
||||
return existsInEntity || anyDirtyGroups || anyDirtyTypes;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Indicates whether the current entity is dirty.
|
||||
/// </summary>
|
||||
/// <returns>True if entity is dirty, otherwise False</returns>
|
||||
public override bool IsDirty()
|
||||
{
|
||||
bool dirtyEntity = base.IsDirty();
|
||||
|
||||
bool dirtyGroups = PropertyGroups.Any(x => x.IsDirty());
|
||||
bool dirtyTypes = PropertyTypes.Any(x => x.IsDirty());
|
||||
|
||||
return dirtyEntity || dirtyGroups || dirtyTypes;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Resets dirty properties by clearing the dictionary used to track changes.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Please note that resetting the dirty properties could potentially
|
||||
/// obstruct the saving of a new or updated entity.
|
||||
/// </remarks>
|
||||
public override void ResetDirtyProperties()
|
||||
{
|
||||
base.ResetDirtyProperties();
|
||||
|
||||
foreach (var propertyGroup in PropertyGroups)
|
||||
{
|
||||
propertyGroup.ResetDirtyProperties();
|
||||
foreach (var propertyType in propertyGroup.PropertyTypes)
|
||||
{
|
||||
propertyType.ResetDirtyProperties();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method to call when Entity is being saved
|
||||
/// </summary>
|
||||
|
||||
@@ -115,20 +115,20 @@ namespace Umbraco.Core.Models.EntityBase
|
||||
private readonly IDictionary<string, bool> _propertyChangedInfo = new Dictionary<string, bool>();
|
||||
|
||||
/// <summary>
|
||||
/// Returns true if the property referenced by the name has been changed on the class
|
||||
/// Indicates whether a specific property on the current entity is dirty.
|
||||
/// </summary>
|
||||
/// <param name="propertyName"></param>
|
||||
/// <returns></returns>
|
||||
public bool IsPropertyDirty(string propertyName)
|
||||
/// <param name="propertyName">Name of the property to check</param>
|
||||
/// <returns>True if Property is dirty, otherwise False</returns>
|
||||
public virtual bool IsPropertyDirty(string propertyName)
|
||||
{
|
||||
return _propertyChangedInfo.Any(x => x.Key == propertyName);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns true if any properties have been changed on the class
|
||||
/// Indicates whether the current entity is dirty.
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public bool IsDirty()
|
||||
/// <returns>True if entity is dirty, otherwise False</returns>
|
||||
public virtual bool IsDirty()
|
||||
{
|
||||
return _propertyChangedInfo.Any();
|
||||
}
|
||||
@@ -136,7 +136,11 @@ namespace Umbraco.Core.Models.EntityBase
|
||||
/// <summary>
|
||||
/// Resets dirty properties by clearing the dictionary used to track changes.
|
||||
/// </summary>
|
||||
public void ResetDirtyProperties()
|
||||
/// <remarks>
|
||||
/// Please note that resetting the dirty properties could potentially
|
||||
/// obstruct the saving of a new or updated entity.
|
||||
/// </remarks>
|
||||
public virtual void ResetDirtyProperties()
|
||||
{
|
||||
_propertyChangedInfo.Clear();
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ namespace Umbraco.Core.Models
|
||||
[DataContract(IsReference = true)]
|
||||
public class PropertyGroupCollection : KeyedCollection<string, PropertyGroup>, INotifyCollectionChanged
|
||||
{
|
||||
private readonly ReaderWriterLockSlim _addLocker = new ReaderWriterLockSlim();
|
||||
private readonly ReaderWriterLockSlim _addLocker = new ReaderWriterLockSlim();
|
||||
internal Action OnAdd;
|
||||
|
||||
internal PropertyGroupCollection()
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System;
|
||||
using System.Configuration;
|
||||
using System.Data.Common;
|
||||
using Umbraco.Core.Configuration;
|
||||
|
||||
namespace Umbraco.Core.Persistence
|
||||
@@ -60,15 +59,13 @@ namespace Umbraco.Core.Persistence
|
||||
{
|
||||
get
|
||||
{
|
||||
var factory = DbProviderFactories.GetFactory(ProviderName);
|
||||
|
||||
string dbtype = (factory.GetType()).Name;
|
||||
string dbtype = _database.Connection == null ? ProviderName : _database.Connection.GetType().Name;
|
||||
|
||||
if (dbtype.StartsWith("MySql")) return DatabaseProviders.MySql;
|
||||
if (dbtype.StartsWith("SqlCe")) return DatabaseProviders.SqlServerCE;
|
||||
/*if (dbtype.StartsWith("Npgsql")) return DatabaseProviders.PostgreSQL;
|
||||
if (dbtype.StartsWith("SqlCe") || dbtype.Contains("SqlServerCe")) return DatabaseProviders.SqlServerCE;
|
||||
if (dbtype.StartsWith("Npgsql")) return DatabaseProviders.PostgreSQL;
|
||||
if (dbtype.StartsWith("Oracle")) return DatabaseProviders.Oracle;
|
||||
if (dbtype.StartsWith("SQLite")) return DatabaseProviders.SQLite;*/
|
||||
if (dbtype.StartsWith("SQLite")) return DatabaseProviders.SQLite;
|
||||
|
||||
return DatabaseProviders.SqlServer;
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ namespace Umbraco.Tests.Models
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextpageContentType();
|
||||
var content = MockedContent.CreateTextpageContent(contentType);
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
|
||||
// Act
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace Umbraco.Tests.Models
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextpageContentType();
|
||||
var content = MockedContent.CreateTextpageContent(contentType);
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
|
||||
// Act
|
||||
content.Properties["title"].Value = "This is the new title";
|
||||
@@ -44,7 +44,7 @@ namespace Umbraco.Tests.Models
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextpageContentType();
|
||||
var content = MockedContent.CreateTextpageContent(contentType);
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
content.Id = 10;
|
||||
content.Key = new Guid("29181B97-CB8F-403F-86DE-5FEB497F4800");
|
||||
|
||||
@@ -84,7 +84,7 @@ namespace Umbraco.Tests.Models
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextpageContentType();
|
||||
var content = MockedContent.CreateTextpageContent(contentType);
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
|
||||
// Act
|
||||
content.PropertyValues(new {title = "This is the new title"});
|
||||
@@ -94,7 +94,7 @@ namespace Umbraco.Tests.Models
|
||||
Assert.That(content.Properties["title"], Is.Not.Null);
|
||||
Assert.That(content.Properties["title"].Alias, Is.EqualTo("title"));
|
||||
Assert.That(content.Properties["title"].Value, Is.EqualTo("This is the new title"));
|
||||
Assert.That(content.Properties["metaDescription"].Value, Is.EqualTo("The Lorem Ipsum company"));
|
||||
Assert.That(content.Properties["metaDescription"].Value, Is.EqualTo("This is the meta description for a textpage"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -102,7 +102,7 @@ namespace Umbraco.Tests.Models
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextpageContentType();
|
||||
var content = MockedContent.CreateTextpageContent(contentType);
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
|
||||
// Act
|
||||
content.ResetDirtyProperties();
|
||||
@@ -118,7 +118,7 @@ namespace Umbraco.Tests.Models
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextpageContentType();
|
||||
var content = MockedContent.CreateTextpageContent(contentType);
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
|
||||
// Act
|
||||
contentType.PropertyGroups.Add(new PropertyGroup{ Name = "Test Group", SortOrder = 3 });
|
||||
@@ -140,7 +140,7 @@ namespace Umbraco.Tests.Models
|
||||
|
||||
// Assert
|
||||
Assert.That(contentType.PropertyGroups.Count, Is.EqualTo(1));
|
||||
Assert.That(contentType.IsPropertyDirty("PropertyGroups"), Is.True);
|
||||
//Assert.That(contentType.IsPropertyDirty("PropertyGroups"), Is.True);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -148,7 +148,7 @@ namespace Umbraco.Tests.Models
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextpageContentType();
|
||||
var content = MockedContent.CreateTextpageContent(contentType);
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
|
||||
// Act
|
||||
contentType.PropertyGroups["Content"].PropertyTypes.Add(new PropertyType(new Guid(), DataTypeDatabaseType.Ntext)
|
||||
@@ -172,7 +172,7 @@ namespace Umbraco.Tests.Models
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextpageContentType();
|
||||
var content = MockedContent.CreateTextpageContent(contentType);
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
|
||||
// Act
|
||||
var propertyType = new PropertyType(new Guid(), DataTypeDatabaseType.Ntext)
|
||||
@@ -192,7 +192,7 @@ namespace Umbraco.Tests.Models
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextpageContentType();
|
||||
var content = MockedContent.CreateTextpageContent(contentType);
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
|
||||
// Act
|
||||
var propertyType = new PropertyType(new Guid(), DataTypeDatabaseType.Ntext)
|
||||
@@ -215,7 +215,7 @@ namespace Umbraco.Tests.Models
|
||||
Assert.That(content.PropertyTypes.Count(), Is.EqualTo(5));
|
||||
Assert.That(content.PropertyGroups.Count(), Is.EqualTo(3));
|
||||
Assert.That(content.Properties["subtitle"].Value, Is.EqualTo("Subtitle Test"));
|
||||
Assert.That(content.Properties["title"].Value, Is.EqualTo("Welcome to our Home page"));
|
||||
Assert.That(content.Properties["title"].Value, Is.EqualTo("Textpage textpage"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -223,7 +223,7 @@ namespace Umbraco.Tests.Models
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextpageContentType();
|
||||
var content = MockedContent.CreateTextpageContent(contentType);
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
|
||||
// Act - note that the PropertyType's properties like SortOrder is not updated through the Content object
|
||||
var propertyType = new PropertyType(new Guid(), DataTypeDatabaseType.Ntext)
|
||||
@@ -235,7 +235,7 @@ namespace Umbraco.Tests.Models
|
||||
// Assert
|
||||
Assert.That(content.Properties.Count, Is.EqualTo(4));
|
||||
Assert.That(contentType.PropertyTypes.First(x => x.Alias == "title").SortOrder, Is.EqualTo(1));
|
||||
Assert.That(content.Properties["title"].Value, Is.EqualTo("Welcome to our Home page"));
|
||||
Assert.That(content.Properties["title"].Value, Is.EqualTo("Textpage textpage"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -244,7 +244,7 @@ namespace Umbraco.Tests.Models
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextpageContentType();
|
||||
var simpleContentType = MockedContentTypes.CreateSimpleContentType();
|
||||
var content = MockedContent.CreateTextpageContent(contentType);
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
|
||||
// Act
|
||||
content.ChangeContentType(simpleContentType);
|
||||
@@ -263,7 +263,7 @@ namespace Umbraco.Tests.Models
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextpageContentType();
|
||||
var simpleContentType = MockedContentTypes.CreateSimpleContentType();
|
||||
var content = MockedContent.CreateTextpageContent(contentType);
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
|
||||
// Act
|
||||
content.ChangeContentType(simpleContentType);
|
||||
@@ -280,7 +280,7 @@ namespace Umbraco.Tests.Models
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextpageContentType();
|
||||
var simpleContentType = MockedContentTypes.CreateSimpleContentType();
|
||||
var content = MockedContent.CreateTextpageContent(contentType);
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
|
||||
// Act
|
||||
content.ChangeContentType(simpleContentType);
|
||||
@@ -289,8 +289,8 @@ namespace Umbraco.Tests.Models
|
||||
Assert.That(content.Properties.Contains("author"), Is.True);
|
||||
Assert.That(content.Properties.Contains("keywords"), Is.True);
|
||||
Assert.That(content.Properties.Contains("metaDescription"), Is.True);
|
||||
Assert.That(content.Properties["keywords"].Value, Is.EqualTo("text,home,page"));
|
||||
Assert.That(content.Properties["metaDescription"].Value, Is.EqualTo("The Lorem Ipsum company"));
|
||||
Assert.That(content.Properties["keywords"].Value, Is.EqualTo("text,page,meta"));
|
||||
Assert.That(content.Properties["metaDescription"].Value, Is.EqualTo("This is the meta description for a textpage"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -299,7 +299,7 @@ namespace Umbraco.Tests.Models
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextpageContentType();
|
||||
var simpleContentType = MockedContentTypes.CreateSimpleContentType();
|
||||
var content = MockedContent.CreateTextpageContent(contentType);
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
|
||||
// Act
|
||||
content.ChangeContentType(simpleContentType, true);
|
||||
@@ -315,7 +315,7 @@ namespace Umbraco.Tests.Models
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextpageContentType();
|
||||
var content = MockedContent.CreateTextpageContent(contentType);
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
|
||||
// Act
|
||||
content.ResetDirtyProperties();
|
||||
@@ -332,7 +332,7 @@ namespace Umbraco.Tests.Models
|
||||
{
|
||||
// Arrange
|
||||
var contentType = MockedContentTypes.CreateTextpageContentType();
|
||||
var content = MockedContent.CreateTextpageContent(contentType);
|
||||
var content = MockedContent.CreateTextpageContent(contentType, "Textpage", -1);
|
||||
|
||||
// Act
|
||||
content.ResetDirtyProperties();
|
||||
@@ -357,7 +357,8 @@ namespace Umbraco.Tests.Models
|
||||
|
||||
// Assert
|
||||
Assert.That(contentType.IsDirty(), Is.True);
|
||||
Assert.That(contentType.IsPropertyDirty("PropertyGroups"), Is.True);
|
||||
Assert.That(contentType.PropertyGroups.Any(x => x.Name == "Test Group"), Is.True);
|
||||
//Assert.That(contentType.IsPropertyDirty("PropertyGroups"), Is.True);
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
||||
@@ -22,7 +22,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
var repository = new ContentRepository(unitOfWork, InMemoryCacheProvider.Current, contentTypeRepository);
|
||||
|
||||
ContentType contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage", "Textpage");
|
||||
Content textpage = MockedContent.CreateTextpageContent(contentType);
|
||||
Content textpage = MockedContent.CreateSimpleContent(contentType);
|
||||
|
||||
// Act
|
||||
contentTypeRepository.AddOrUpdate(contentType);
|
||||
@@ -44,14 +44,14 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
var repository = new ContentRepository(unitOfWork, InMemoryCacheProvider.Current, contentTypeRepository);
|
||||
|
||||
ContentType contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage", "Textpage");
|
||||
Content textpage = MockedContent.CreateTextpageContent(contentType);
|
||||
Content textpage = MockedContent.CreateSimpleContent(contentType);
|
||||
|
||||
// Act
|
||||
contentTypeRepository.AddOrUpdate(contentType);
|
||||
repository.AddOrUpdate(textpage);
|
||||
unitOfWork.Commit();
|
||||
|
||||
Content subpage = MockedContent.CreateTextpageContent(contentType, "Text Page 1", textpage.Id);
|
||||
Content subpage = MockedContent.CreateSimpleContent(contentType, "Text Page 1", textpage.Id);
|
||||
repository.AddOrUpdate(subpage);
|
||||
unitOfWork.Commit();
|
||||
|
||||
@@ -72,7 +72,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
var repository = RepositoryResolver.ResolveByType<IContentRepository, IContent, int>(unitOfWork);
|
||||
|
||||
ContentType contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage", "Textpage");
|
||||
Content textpage = MockedContent.CreateTextpageContent(contentType);
|
||||
Content textpage = MockedContent.CreateSimpleContent(contentType);
|
||||
|
||||
// Act
|
||||
contentTypeRepository.AddOrUpdate(contentType);
|
||||
@@ -80,7 +80,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
unitOfWork.Commit();
|
||||
|
||||
var repository2 = RepositoryResolver.ResolveByType<IContentRepository, IContent, int>(unitOfWork);
|
||||
Content subpage = MockedContent.CreateTextpageContent(contentType, "Text Page 1", textpage.Id);
|
||||
Content subpage = MockedContent.CreateSimpleContent(contentType, "Text Page 1", textpage.Id);
|
||||
repository2.AddOrUpdate(subpage);
|
||||
unitOfWork.Commit();
|
||||
|
||||
|
||||
@@ -265,7 +265,7 @@ namespace Umbraco.Tests.Services
|
||||
var contentType = MockedContentTypes.CreateSimpleContentType("umbMandatory", "Mandatory Doc Type", true);
|
||||
contentTypeService.Save(contentType);
|
||||
|
||||
Content content = MockedContent.CreateTextpageContent(contentType, "Invalid Content", 1046);
|
||||
Content content = MockedContent.CreateSimpleContent(contentType, "Invalid Content", 1046);
|
||||
content.SetValue("author", string.Empty);
|
||||
contentService.Save(content, 0);
|
||||
|
||||
@@ -415,8 +415,8 @@ namespace Umbraco.Tests.Services
|
||||
var contentTypeService = ServiceContext.ContentTypeService;
|
||||
|
||||
var contentType = contentTypeService.GetContentType("umbTextpage");
|
||||
Content subpage = MockedContent.CreateTextpageContent(contentType, "Text Subpage 1", 1047);
|
||||
Content subpage2 = MockedContent.CreateTextpageContent(contentType, "Text Subpage 2", 1047);
|
||||
Content subpage = MockedContent.CreateSimpleContent(contentType, "Text Subpage 1", 1047);
|
||||
Content subpage2 = MockedContent.CreateSimpleContent(contentType, "Text Subpage 2", 1047);
|
||||
var list = new List<IContent> {subpage, subpage2};
|
||||
|
||||
// Act
|
||||
@@ -554,23 +554,23 @@ namespace Umbraco.Tests.Services
|
||||
ServiceContext.ContentTypeService.Save(contentType);
|
||||
|
||||
//Create and Save Content "Homepage" based on "umbTextpage" -> 1046
|
||||
Content textpage = MockedContent.CreateTextpageContent(contentType);
|
||||
Content textpage = MockedContent.CreateSimpleContent(contentType);
|
||||
ServiceContext.ContentService.Save(textpage, 0);
|
||||
|
||||
//Create and Save Content "Text Page 1" based on "umbTextpage" -> 1047
|
||||
Content subpage = MockedContent.CreateTextpageContent(contentType, "Text Page 1", textpage.Id);
|
||||
Content subpage = MockedContent.CreateSimpleContent(contentType, "Text Page 1", textpage.Id);
|
||||
subpage.ReleaseDate = DateTime.UtcNow.AddMinutes(-5);
|
||||
subpage.ChangePublishedState(false);
|
||||
ServiceContext.ContentService.Save(subpage, 0);
|
||||
|
||||
//Create and Save Content "Text Page 1" based on "umbTextpage" -> 1048
|
||||
Content subpage2 = MockedContent.CreateTextpageContent(contentType, "Text Page 2", textpage.Id);
|
||||
Content subpage2 = MockedContent.CreateSimpleContent(contentType, "Text Page 2", textpage.Id);
|
||||
subpage2.ExpireDate = DateTime.UtcNow.AddMinutes(-5);
|
||||
subpage2.ChangePublishedState(true);
|
||||
ServiceContext.ContentService.Save(subpage2, 0);
|
||||
|
||||
//Create and Save Content "Text Page Deleted" based on "umbTextpage" -> 1049
|
||||
Content trashed = MockedContent.CreateTextpageContent(contentType, "Text Page Deleted", -20);
|
||||
Content trashed = MockedContent.CreateSimpleContent(contentType, "Text Page Deleted", -20);
|
||||
trashed.Trashed = true;
|
||||
ServiceContext.ContentService.Save(trashed, 0);
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ namespace Umbraco.Tests.TestHelpers.Entities
|
||||
{
|
||||
public class MockedContent
|
||||
{
|
||||
public static Content CreateTextpageContent(IContentType contentType)
|
||||
public static Content CreateSimpleContent(IContentType contentType)
|
||||
{
|
||||
var content = new Content(-1, contentType) {Name = "Home", Language = "en-US", Level = 1, ParentId = -1, SortOrder = 1, Template = "~/masterpages/umbTextPage.master", UserId = 0};
|
||||
object obj =
|
||||
@@ -20,7 +20,7 @@ namespace Umbraco.Tests.TestHelpers.Entities
|
||||
return content;
|
||||
}
|
||||
|
||||
public static Content CreateTextpageContent(IContentType contentType, string name, int parentId)
|
||||
public static Content CreateSimpleContent(IContentType contentType, string name, int parentId)
|
||||
{
|
||||
var content = new Content(parentId, contentType) { Name = name, Language = "en-US", ParentId = parentId, Template = "~/masterpages/umbTextPage.master", UserId = 0 };
|
||||
object obj =
|
||||
@@ -35,5 +35,22 @@ namespace Umbraco.Tests.TestHelpers.Entities
|
||||
|
||||
return content;
|
||||
}
|
||||
|
||||
public static Content CreateTextpageContent(IContentType contentType, string name, int parentId)
|
||||
{
|
||||
var content = new Content(parentId, contentType) { Name = name, Language = "en-US", ParentId = parentId, Template = "~/masterpages/umbTextPage.master", UserId = 0 };
|
||||
object obj =
|
||||
new
|
||||
{
|
||||
title = name + " textpage",
|
||||
bodyText = string.Format("This is a textpage based on the {0} ContentType", contentType.Alias),
|
||||
keywords = "text,page,meta",
|
||||
metaDescription = "This is the meta description for a textpage"
|
||||
};
|
||||
|
||||
content.PropertyValues(obj);
|
||||
|
||||
return content;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user