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); }
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)); }
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)); }
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); }