Files
Umbraco-CMS/test/umbraco.Test/DataTypeDefinitionTest.cs
shannon@ShandemVaio 21203b8070 Renamed umbraco.Test to Umbraco.LegacyTests
Updated InternalsVisibleTo declarations.
Updated the ApplicationTest test to use a new base class as a test to install a local sqlce database
for testing against.
Added Umbraco.Core project.
Added Umbraco.Web project.
Created new sln folder Legacy
2012-07-17 01:32:46 +06:00

360 lines
14 KiB
C#

using umbraco.cms.businesslogic.datatype;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using umbraco.BusinessLogic;
using umbraco.interfaces;
using umbraco.editorControls.textfield;
using umbraco.cms.businesslogic.web;
using System.Linq;
using umbraco.cms.businesslogic.propertytype;
using umbraco.editorControls;
namespace Umbraco.LegacyTests
{
/// <summary>
///This is a test class for DataTypeDefinitionTest and is intended
///to contain all DataTypeDefinitionTest Unit Tests
///</summary>
[TestClass()]
public class DataTypeDefinitionTest
{
/// <summary>
///A test for MakeNew
///</summary>
[TestMethod()]
public void DataTypeDefinition_Make_New()
{
//create data tyep definition
var dtd = DataTypeDefinition.MakeNew(m_User, "TEST" + Guid.NewGuid().ToString("N"));
Assert.IsTrue(dtd.Id > 0);
Assert.IsInstanceOfType(dtd, typeof(DataTypeDefinition));
//now delete it
dtd.delete();
Assert.IsFalse(DataTypeDefinition.IsNode(dtd.Id));
}
/// <summary>
/// Create a data type definition, add some prevalues to it then delete it
///</summary>
[TestMethod()]
public void DataTypeDefinition_Assign_Data_Type_With_PreValues()
{
//System.Diagnostics.Debugger.Launch();
//create datatype definition, assign data type
var dtd = DataTypeDefinition.MakeNew(m_User, "TEST" + Guid.NewGuid().ToString("N"));
Assert.IsTrue(dtd.Id > 0);
Assert.IsInstanceOfType(dtd, typeof(DataTypeDefinition));
IDataType dt = new TextFieldDataType();
dt.DataTypeDefinitionId = dtd.Id; //need to set the data types data type definition id
dtd.DataType = dt; //set our data type definition's data type to the text field... i know this is all too weird.
Assert.AreEqual(dt.Id, dtd.DataType.Id);
Assert.IsInstanceOfType(dtd.DataType, dt.GetType());
Assert.AreEqual(dtd.Id, dt.DataTypeDefinitionId);
//create the prevalues
((DefaultPrevalueEditor)dt.PrevalueEditor).Prevalue = "TEST" + Guid.NewGuid().ToString("N");
dt.PrevalueEditor.Save();
//verify that the prevalue is there
Assert.AreEqual<int>(1, PreValues.GetPreValues(dtd.Id).Count);
//now remove it
dtd.delete();
Assert.IsFalse(DataTypeDefinition.IsNode(dtd.Id));
}
/// <summary>
/// Create a new definition, assign a data type to it,
/// create a doc type and assign this new data type to it,
/// then create a document from the doc type and set the value for the property.
///
/// Once the data is all setup, we'll delete the data type definition which should:
/// 1. Remove all property type values associated with the property type of the dtd
/// 2. Remove all property types from document types associated with the dtd
/// 3. Remove the dtd
///
/// then we'll clean up the rest of the data.
/// </summary>
[TestMethod()]
public void DataTypeDefinition_Assign_Data_Type_To_Doc_Type_Then_Create_Doc_And_Set_Value()
{
//create datatype definition, assign data type
var dtd = DataTypeDefinition.MakeNew(m_User, "TEST" + Guid.NewGuid().ToString("N"));
Assert.IsTrue(dtd.Id > 0);
Assert.IsInstanceOfType(dtd, typeof(DataTypeDefinition));
IDataType dt = new TextFieldDataType();
dtd.DataType = dt;
Assert.AreEqual(dt.Id, dtd.DataType.Id);
Assert.IsInstanceOfType(dtd.DataType, dt.GetType());
//create new doc type
var docType = DocumentType.MakeNew(m_User, "TEST" + Guid.NewGuid().ToString("N"));
//create the property with this new data type definition
var alias = "TEST" + Guid.NewGuid().ToString("N");
docType.AddPropertyType(dtd, alias, alias);
Assert.AreEqual<int>(1, docType.PropertyTypes.Count());
//create a new doc with the new doc type
var doc = Document.MakeNew("TEST" + Guid.NewGuid().ToString("N"), docType, m_User, -1);
//set the value of the property
var prop = doc.getProperty(alias);
var propType = prop.PropertyType;
Assert.IsNotNull(prop);
var val = "TEST" + Guid.NewGuid().ToString("N");
prop.Value = val;
Assert.AreEqual(val, prop.Value);
//ok, now that all of the data is setup, we'll just delete the data type definition.
dtd.delete();
//make sure the property value is gone, check with sql
Assert.AreEqual<int>(0, Application.SqlHelper.ExecuteScalar<int>(
"SELECT COUNT(id) FROM cmsPropertyData WHERE propertytypeid=@propTypeId",
Application.SqlHelper.CreateParameter("@propTypeId", propType.Id)));
//make sure the property type is gone
var hasError = false;
try
{
var confirmPropType = new PropertyType(propType.Id);
}
catch (ArgumentException)
{
hasError = true;
}
Assert.IsTrue(hasError);
//make sure the dtd is gone
Assert.IsFalse(DataTypeDefinition.IsNode(dtd.Id));
//now cleanup the rest
doc.delete(true);
Assert.IsFalse(Document.IsNode(doc.Id));
docType.delete();
Assert.IsFalse(DocumentType.IsNode(docType.Id));
}
#region Private methods/members
private User m_User = new User(0);
#endregion
#region Tests to write
///// <summary>
/////A test for DataTypeDefinition Constructor
/////</summary>
//[TestMethod()]
//public void DataTypeDefinitionConstructorTest()
//{
// Guid id = new Guid(); // TODO: Initialize to an appropriate value
// DataTypeDefinition target = new DataTypeDefinition(id);
// Assert.Inconclusive("TODO: Implement code to verify target");
//}
///// <summary>
/////A test for DataTypeDefinition Constructor
/////</summary>
//[TestMethod()]
//public void DataTypeDefinitionConstructorTest1()
//{
// int id = 0; // TODO: Initialize to an appropriate value
// DataTypeDefinition target = new DataTypeDefinition(id);
// Assert.Inconclusive("TODO: Implement code to verify target");
//}
///// <summary>
/////A test for Delete
/////</summary>
//[TestMethod()]
//public void DeleteTest()
//{
// Guid id = new Guid(); // TODO: Initialize to an appropriate value
// DataTypeDefinition target = new DataTypeDefinition(id); // TODO: Initialize to an appropriate value
// target.Delete();
// Assert.Inconclusive("A method that does not return a value cannot be verified.");
//}
///// <summary>
/////A test for GetAll
/////</summary>
//[TestMethod()]
//public void GetAllTest()
//{
// DataTypeDefinition[] expected = null; // TODO: Initialize to an appropriate value
// DataTypeDefinition[] actual;
// actual = DataTypeDefinition.GetAll();
// Assert.AreEqual(expected, actual);
// Assert.Inconclusive("Verify the correctness of this test method.");
//}
///// <summary>
/////A test for GetByDataTypeId
/////</summary>
//[TestMethod()]
//public void GetByDataTypeIdTest()
//{
// Guid DataTypeId = new Guid(); // TODO: Initialize to an appropriate value
// DataTypeDefinition expected = null; // TODO: Initialize to an appropriate value
// DataTypeDefinition actual;
// actual = DataTypeDefinition.GetByDataTypeId(DataTypeId);
// Assert.AreEqual(expected, actual);
// Assert.Inconclusive("Verify the correctness of this test method.");
//}
///// <summary>
/////A test for GetDataTypeDefinition
/////</summary>
//[TestMethod()]
//public void GetDataTypeDefinitionTest()
//{
// int id = 0; // TODO: Initialize to an appropriate value
// DataTypeDefinition expected = null; // TODO: Initialize to an appropriate value
// DataTypeDefinition actual;
// actual = DataTypeDefinition.GetDataTypeDefinition(id);
// Assert.AreEqual(expected, actual);
// Assert.Inconclusive("Verify the correctness of this test method.");
//}
///// <summary>
/////A test for GetDataTypeDefinition
/////</summary>
//[TestMethod()]
//public void GetDataTypeDefinitionTest1()
//{
// Guid id = new Guid(); // TODO: Initialize to an appropriate value
// DataTypeDefinition expected = null; // TODO: Initialize to an appropriate value
// DataTypeDefinition actual;
// actual = DataTypeDefinition.GetDataTypeDefinition(id);
// Assert.AreEqual(expected, actual);
// Assert.Inconclusive("Verify the correctness of this test method.");
//}
///// <summary>
/////A test for Import
/////</summary>
//[TestMethod()]
//public void ImportTest()
//{
// XmlNode xmlData = null; // TODO: Initialize to an appropriate value
// DataTypeDefinition expected = null; // TODO: Initialize to an appropriate value
// DataTypeDefinition actual;
// actual = DataTypeDefinition.Import(xmlData);
// Assert.AreEqual(expected, actual);
// Assert.Inconclusive("Verify the correctness of this test method.");
//}
///// <summary>
/////A test for IsDefaultData
/////</summary>
//[TestMethod()]
//public void IsDefaultDataTest()
//{
// object Data = null; // TODO: Initialize to an appropriate value
// bool expected = false; // TODO: Initialize to an appropriate value
// bool actual;
// actual = DataTypeDefinition.IsDefaultData(Data);
// Assert.AreEqual(expected, actual);
// Assert.Inconclusive("Verify the correctness of this test method.");
//}
///// <summary>
/////A test for MakeNew
/////</summary>
//[TestMethod()]
//public void MakeNewTest1()
//{
// User u = null; // TODO: Initialize to an appropriate value
// string Text = string.Empty; // TODO: Initialize to an appropriate value
// Guid UniqueId = new Guid(); // TODO: Initialize to an appropriate value
// DataTypeDefinition expected = null; // TODO: Initialize to an appropriate value
// DataTypeDefinition actual;
// actual = DataTypeDefinition.MakeNew(u, Text, UniqueId);
// Assert.AreEqual(expected, actual);
// Assert.Inconclusive("Verify the correctness of this test method.");
//}
///// <summary>
/////A test for Save
/////</summary>
//[TestMethod()]
//public void SaveTest()
//{
// Guid id = new Guid(); // TODO: Initialize to an appropriate value
// DataTypeDefinition target = new DataTypeDefinition(id); // TODO: Initialize to an appropriate value
// target.Save();
// Assert.Inconclusive("A method that does not return a value cannot be verified.");
//}
///// <summary>
/////A test for ToXml
/////</summary>
//[TestMethod()]
//public void ToXmlTest()
//{
// Guid id = new Guid(); // TODO: Initialize to an appropriate value
// DataTypeDefinition target = new DataTypeDefinition(id); // TODO: Initialize to an appropriate value
// XmlDocument xd = null; // TODO: Initialize to an appropriate value
// XmlElement expected = null; // TODO: Initialize to an appropriate value
// XmlElement actual;
// actual = target.ToXml(xd);
// Assert.AreEqual(expected, actual);
// Assert.Inconclusive("Verify the correctness of this test method.");
//}
///// <summary>
/////A test for delete
/////</summary>
//[TestMethod()]
//public void deleteTest()
//{
// Guid id = new Guid(); // TODO: Initialize to an appropriate value
// DataTypeDefinition target = new DataTypeDefinition(id); // TODO: Initialize to an appropriate value
// target.delete();
// Assert.Inconclusive("A method that does not return a value cannot be verified.");
//}
#endregion
#region Additional test attributes
//
//You can use the following additional attributes as you write your tests:
//
//Use ClassInitialize to run code before running the first test in the class
//[ClassInitialize()]
//public static void MyClassInitialize(TestContext testContext)
//{
//}
//
//Use ClassCleanup to run code after all tests in a class have run
//[ClassCleanup()]
//public static void MyClassCleanup()
//{
//}
//
//Use TestInitialize to run code before running each test
//[TestInitialize()]
//public void MyTestInitialize()
//{
//}
//
//Use TestCleanup to run code after each test has run
//[TestCleanup()]
//public void MyTestCleanup()
//{
//}
//
#endregion
}
}