using System.Collections.Generic; using System.IO; using Autofac; using Autofac.Features.Metadata; using NUnit.Framework; using Orchard.Caching; using Orchard.CodeGeneration.Commands; using Orchard.Commands; using Orchard.Data; using Orchard.Data.Migration.Generator; using Orchard.Data.Providers; using Orchard.Environment; using Orchard.Environment.Configuration; using Orchard.Environment.Extensions; using Orchard.Environment.ShellBuilders; using Orchard.Environment.ShellBuilders.Models; using Orchard.FileSystems.AppData; using Orchard.Tests.Environment; using Orchard.Tests.FileSystems.AppData; using Orchard.Tests.Stubs; namespace Orchard.Tests.Modules.CodeGeneration.Commands { [TestFixture] public class CodeGenerationCommandsTests { private IContainer _container; private IExtensionManager _extensionManager; private ISchemaCommandGenerator _schemaCommandGenerator; [SetUp] public void Init() { string databaseFileName = Path.GetTempFileName(); IDataServicesProviderFactory dataServicesProviderFactory = new DataServicesProviderFactory(new[] { new Meta( (dataFolder, connectionString) => new SqlCeDataServicesProvider(dataFolder, connectionString), new Dictionary {{"ProviderName", "SqlCe"}}) }); var builder = new ContainerBuilder(); builder.RegisterInstance(new ShellBlueprint()); builder.RegisterInstance(new ShellSettings { Name = ShellSettings.DefaultName, DataTablePrefix = "Test", DataProvider = "SqlCe" }); builder.RegisterInstance(dataServicesProviderFactory).As(); builder.RegisterInstance(AppDataFolderTests.CreateAppDataFolder(Path.GetDirectoryName(databaseFileName))).As(); builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); _container = builder.Build(); _extensionManager = _container.Resolve(); _schemaCommandGenerator = _container.Resolve(); } [Test] public void CreateDataMigrationTestNonExistentFeature() { CodeGenerationCommands codeGenerationCommands = new CodeGenerationCommands(_extensionManager, _schemaCommandGenerator); TextWriter textWriterOutput = new StringWriter(); codeGenerationCommands.Context = new CommandContext { Output = textWriterOutput }; codeGenerationCommands.CreateDataMigration("feature"); Assert.That(textWriterOutput.ToString(), Does.Contain("Creating data migration failed")); } } }