using System; using System.Configuration; using System.Data.SqlServerCe; using System.IO; using NUnit.Framework; using Umbraco.Core.Models.Rdbms; using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.SqlSyntax; using Umbraco.Tests.TestHelpers; namespace Umbraco.Tests.Persistence { /// /// Test with basic setup of an Sql CE database, which runs tests for the creation of all tables /// with their referenced dependencies. The creation isn't committed to the database or asserted, but /// the tests will fail if the creation isn't possible. /// [TestFixture] public class DatabaseExtensionsTest { [SetUp] public virtual void Initialize() { string path = TestHelper.CurrentAssemblyDirectory; AppDomain.CurrentDomain.SetData("DataDirectory", path); //Delete database file before continueing string filePath = string.Concat(path, "\\test.sdf"); if(File.Exists(filePath)) { File.Delete(filePath); } //Get the connectionstring settings from config var settings = ConfigurationManager.ConnectionStrings["umbracoDbDsn"]; //Create the Sql CE database var engine = new SqlCeEngine(settings.ConnectionString); engine.CreateDatabase(); SyntaxConfig.SqlSyntaxProvider = SqlCeSyntaxProvider.Instance; //Create the umbraco database //DatabaseFactory.Current.Database.Initialize(); } [Test] public void Can_Create_umbracoNode_Table() { var factory = DatabaseFactory.Current; using(Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_umbracoApp_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_umbracoAppTree_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_cmsContentType2ContentType_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_cmsContentTypeAllowedContentType_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); factory.Database.CreateTable(); factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_cmsContentType_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_cmsContentVersion_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); factory.Database.CreateTable(); factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_cmsContentXml_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); factory.Database.CreateTable(); factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_cmsDataType_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_cmsDataTypePreValues_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); factory.Database.CreateTable(); factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_cmsDictionary_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_cmsLanguageText_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_cmsTemplate_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_cmsDocument_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); factory.Database.CreateTable(); factory.Database.CreateTable(); factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_cmsDocumentType_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); factory.Database.CreateTable(); factory.Database.CreateTable(); factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_umbracoDomains_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_umbracoLanguage_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_umbracoLog_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_cmsMacro_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_cmsMacroPropertyType_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_cmsMacroProperty_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); factory.Database.CreateTable(); factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_cmsMember_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); factory.Database.CreateTable(); factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_cmsMember2MemberGroup_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); factory.Database.CreateTable(); factory.Database.CreateTable(); factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_cmsMemberType_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); factory.Database.CreateTable(); factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_cmsPreviewXml_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); factory.Database.CreateTable(); factory.Database.CreateTable(); factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_cmsPropertyData_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); factory.Database.CreateTable(); factory.Database.CreateTable(); factory.Database.CreateTable(); factory.Database.CreateTable(); factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_cmsPropertyType_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); factory.Database.CreateTable(); factory.Database.CreateTable(); factory.Database.CreateTable(); factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_cmsPropertyTypeGroup_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); factory.Database.CreateTable(); factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_umbracoRelation_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); factory.Database.CreateTable(); factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_umbracoRelationType_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_cmsStylesheet_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_cmsStylesheetProperty_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_cmsTags_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_cmsTagRelationship_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); factory.Database.CreateTable(); factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_cmsTask_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); factory.Database.CreateTable(); factory.Database.CreateTable(); factory.Database.CreateTable(); factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_cmsTaskType_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_umbracoUserLogins_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_umbracoUser_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_umbracoUserType_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_umbracoUser2app_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); factory.Database.CreateTable(); factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_umbracoUser2NodeNotify_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); factory.Database.CreateTable(); factory.Database.CreateTable(); factory.Database.CreateTable(); //transaction.Complete(); } } [Test] public void Can_Create_umbracoUser2NodePermission_Table() { var factory = DatabaseFactory.Current; using (Transaction transaction = factory.Database.GetTransaction()) { factory.Database.CreateTable(); factory.Database.CreateTable(); factory.Database.CreateTable(); factory.Database.CreateTable(); //transaction.Complete(); } } } }