public void Test_entity_conversion_to_generated_class_output_model() { var ns = new Namespace("MyApp.MyTest", null); var entity = new Entity("MyClass", ns); var targetPlatform = new TargetPlatform("test"); targetPlatform.RegisterNamingConvention(BasePluginConstants.Language_CSharp, new CSharpClassNamingConvention()); entity.AddAttribute(new EntityAttribute("Id", TestDataTypes.Int, null, null)); entity.AddAttribute(new EntityAttribute("Name", TestDataTypes.String, null, null)); entity.OutputConfiguration.RegisterOutputFolder(new Filter(NHibernatePluginConstants.OutputModelType_Entity_GeneratedClass), new ProjectFolder("")); entity.OutputConfiguration.RegisterTargetPlatformForDesignModelType(entity.DesignModelType, targetPlatform); var templateCollection = new TemplateCollection(); templateCollection.LoadTemplates(typeof(NHibernatePluginConstants).Assembly, NHibernatePluginConstants.TemplateResourcePrefix, NHibernatePluginConstants.TemplateNamePrefix); var template = templateCollection.GetTemplate(NHibernatePluginConstants.OutputTemplateName_Entity_GeneratedClass); targetPlatform.RegisterOutputTemplate(NHibernatePluginConstants.OutputTemplateName_Entity_GeneratedClass, template); var converter = new EntityConverter(templateCollection); var generatedClass = converter.CreateEntityGeneratedClass(entity, BasePluginConstants.Language_CSharp); generatedClass.Should().NotBeNull(); generatedClass.ClassName.Should().Be("MyClass"); generatedClass.ClassNamespace.Should().Be("MyApp.MyTest"); var properties = generatedClass .Properties .Select(x => (name: x.Name, type: x.Type.TypeName)); properties.Should().BeEquivalentTo(new[]
public override void Execute() { var targetPlatform = new TargetPlatform("NHibernate") as ITargetPlatform; targetPlatform.RegisterNamingConvention(BasePluginConstants.Language_CSharp, NamingConventionCollection.GetNamingConvention(BasePluginConstants.Language_CSharp)); targetPlatform.RegisterOutputModelGenerator(BasePluginConstants.DesignModelType_Entity, EntityOutputModelGenerator, overwrite: true); targetPlatform.RegisterOutputTemplate(NHibernatePluginConstants.OutputModelType_Entity_GeneratedClass, TemplateCollection.GetTemplate(NHibernatePluginConstants.OutputTemplateName_Entity_GeneratedClass)); targetPlatform.RegisterOutputTemplate(NHibernatePluginConstants.OutputModelType_Entity_CustomClass, TemplateCollection.GetTemplate(NHibernatePluginConstants.OutputTemplateName_Entity_CustomClass)); TargetPlatformCollection.RegisterTargetPlatform(targetPlatform); }