Ejemplo n.º 1
0
        public void ReadSimpleConfiguration()
        {
            List <ConfigurationSet> configurations = this.reader.Parse(Resources.simple_generator);

            Assert.AreEqual(1, configurations.Count, "Unexpected number of configurations");
            Assert.AreEqual(1, configurations[0].Readers.Count, "Unexpected number of readers");
            Assert.AreEqual("Resources/simple.json", configurations[0].Readers[0].CastTo <JsonReadConfiguration>().Source);
            Assert.AreEqual(1, configurations[0].Writers.Count, "Unexpected number of writers");
            JsonWriteConfiguration writeConfiguration = configurations[0].Writers[0].CastTo <JsonWriteConfiguration>();

            Assert.AreEqual(CsharpLanguage.Instance, writeConfiguration.Language);
            Assert.AreEqual("SimpleWithoutReader", writeConfiguration.Object.Name);
            Assert.AreEqual("KY.Generator.Examples.Json", writeConfiguration.Object.Namespace);
            Assert.AreEqual(true, writeConfiguration.Object.FormatNames);
        }
Ejemplo n.º 2
0
        public IEnumerable <FileTemplate> Write(JsonWriteConfiguration configuration, List <ITransferObject> transferObjects)
        {
            this.jsonConfiguration = configuration;
            ModelWriteConfiguration modelWriteConfiguration = new ModelWriteConfiguration();

            modelWriteConfiguration.CopyBaseFrom(configuration);
            modelWriteConfiguration.Name               = configuration.Object.Name;
            modelWriteConfiguration.Namespace          = configuration.Object.Namespace;
            modelWriteConfiguration.SkipNamespace      = configuration.Object.SkipNamespace;
            modelWriteConfiguration.RelativePath       = configuration.Object.RelativePath;
            modelWriteConfiguration.FieldsToProperties = configuration.Object.FieldsToProperties;
            modelWriteConfiguration.PropertiesToFields = configuration.Object.PropertiesToFields;
            modelWriteConfiguration.FormatNames        = configuration.Object.FormatNames;
            return(this.Write(modelWriteConfiguration, transferObjects));
        }
Ejemplo n.º 3
0
        public void Write(ConfigurationBase configurationBase, List <ITransferObject> transferObjects, IOutput output)
        {
            JsonWriteConfiguration configuration = (JsonWriteConfiguration)configurationBase;
            List <FileTemplate>    files         = new List <FileTemplate>();

            if (configuration.Object != null)
            {
                this.resolver.Create <ObjectWriter>().Write(configuration, transferObjects).ForEach(files.Add);
            }
            if (configuration.Reader != null)
            {
                this.resolver.Create <ObjectReaderWriter>().Write(configuration, transferObjects).ForEach(files.Add);
            }
            if (configuration.Object == null && configuration.Reader == null)
            {
                Logger.Warning("Json configuration has no model and no reader property. Set at least one of them to start generation");
            }
            files.ForEach(file => configuration.Language.Write(file, output));
        }
Ejemplo n.º 4
0
        public IEnumerable <FileTemplate> Write(JsonWriteConfiguration configuration, List <ITransferObject> transferObjects)
        {
            ModelTransferObject model = transferObjects.OfType <ModelTransferObject>().FirstOrDefault();

            if (model == null)
            {
                throw new InvalidOperationException("Can not create JsonObjectReader without object. Add in settings a read configuration");
            }
            if (!configuration.Language.IsCsharp())
            {
                throw new InvalidOperationException($"Can not generate JsonReader ({configuration.Reader.Name}) for language {configuration.Language}");
            }
            Logger.Trace("Write JsonReader...");
            string        className     = configuration.Reader.Name ?? model.Name + "Reader";
            FileTemplate  fileTemplate  = new FileTemplate(configuration.Reader.RelativePath, configuration.AddHeader);
            ClassTemplate classTemplate = fileTemplate.AddNamespace(configuration.Reader.Namespace ?? model.Namespace ?? configuration.Object.Namespace)
                                          .AddClass(className)
                                          .FormatName(configuration);

            WriteReader(classTemplate, model, configuration.FormatNames);

            yield return(fileTemplate);
        }