예제 #1
0
        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);
        }
예제 #2
0
        public void Test_entity_conversion_to_generated_class_output_model()
        {
            var ns             = new Namespace("MyApp.MyTest", null);
            var entity         = new Base.Models.Entity.Entity("MyClass", ns);
            var targetPlatform = new TargetPlatform("test");

            targetPlatform.RegisterClassNamingConvention(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(EntityPluginConstants.OutputModelType_Entity_GeneratedClass), new ProjectFolder(""));
            entity.OutputConfiguration.RegisterTargetPlatformForDesignModelType(entity.DesignModelType, targetPlatform);

            var templateCollection = new TemplateCollection();

            templateCollection.LoadTemplates(typeof(EntityPluginConstants).Assembly);

            var template = templateCollection.GetTemplate(EntityPluginConstants.OutputTemplateName_Entity_GeneratedClass);

            targetPlatform.RegisterOutputTemplate(EntityPluginConstants.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[]