public void GenerateWithAllNumberColumnName() { var generatorOptions = new GeneratorOptions(); var databaseModel = new DatabaseModel { DatabaseName = "TestDatabase", DefaultSchema = "dbo" }; var testTable = new DatabaseTable { Database = databaseModel, Name = "TestTable" }; databaseModel.Tables.Add(testTable); var identifierColumn = new DatabaseColumn { Table = testTable, Name = "Id", IsNullable = false, StoreType = "int" }; testTable.Columns.Add(identifierColumn); var numberColumn = new DatabaseColumn { Table = testTable, Name = "404", IsNullable = true, StoreType = "int" }; testTable.Columns.Add(numberColumn); var generator = new ModelGenerator(NullLoggerFactory.Instance); var result = generator.Generate(generatorOptions, databaseModel); result.ContextClass.Should().Be("TestDatabaseContext"); result.ContextNamespace.Should().Be("TestDatabase.Data"); result.Entities.Count.Should().Be(1); var firstEntity = result.Entities[0]; firstEntity.EntityClass.Should().Be("TestTable"); firstEntity.EntityNamespace.Should().Be("TestDatabase.Data.Entities"); firstEntity.Properties.Count.Should().Be(2); var identifierProperty = firstEntity.Properties.ByColumn("Id"); identifierProperty.Should().NotBeNull(); identifierProperty.PropertyName.Should().Be("Id"); var numberProperty = firstEntity.Properties.ByColumn("404"); numberProperty.Should().NotBeNull(); numberProperty.PropertyName.Should().Be("Number404"); }
static void Main(string[] args) { try { args = args.Length > 0 ? args : new[] { "-GenModel", @"D:\Lat Projects\WL_Main\Latitude.WhiteLabel.Models\bin\Release\Latitude.WhiteLabel.Models.dll", "Latitude.WhiteLabel.Models", @"D:\Lat Projects\WL_Main\Latitude.WhiteLabel.Models\obj\Debug\Temp", "tickbox.web.shared.dto", @"D:\Lat Projects\WL_Main\Latitude.WhiteLabel.Models\obj\Debug\TessellTemp", "latitude.gwt.tessellshared.tmodel", }; // : new[] // { // "-GenWebApi", // @"D:\Lat Projects\WL_SEO4SME\Latitude.SeoPortal.Ui\war\bin\Latitude.SeoPortal.Ui.dll", // "Latitude.SeoPortal.Ui.Controllers", // @"D:\Lat Projects\WL_SEO4SME\\latitude.seoportal.ui\src\latitude\seoportal\ui\client\remotelogic", // "latitude.seoportal.ui.client.remotelogic", // "Latitude.WhiteLabel.Models", // "tickbox.web.shared.dto" // }; if (args[0] == "-GenModel") { ModelGenerator.GenModel(args); } else if (args[0] == "-GenWebApi") { WebApiGenerator.GenGwt(args); } else { throw new Exception("Unknown generation type: " + args[0]); } } catch (ReflectionTypeLoadException rtle) { Console.WriteLine(rtle.Message); foreach (var e in rtle.LoaderExceptions) { Console.WriteLine(e.Message); } //Console.ReadLine(); throw; } catch (Exception e) { // Debugger.Break(); Console.WriteLine(e.Message); //Console.ReadLine(); throw; } }
public void ParentColumnAdded() { var generator = new ModelGenerator(); var config = new CustomConfig(); var results = generator.GenerateFiles(config.Maps, this.MakeSchema(config), TestNamespace, null); Assert.Contains("public Blog Blog { get; set; }", results["Post"]); }
public void PrimaryKeyAdded() { var generator = new ModelGenerator(); var config = new CustomConfig(); var results = generator.GenerateFiles(config.Maps, this.MakeSchema(config), TestNamespace, null); Assert.Contains("public System.Int32 PostId { get; set; }", results["Post"]); }
public void NamespaceAdded() { var generator = new ModelGenerator(); var config = new CustomConfig(); var results = generator.GenerateFiles(config.Maps, this.MakeSchema(config), TestNamespace, null); Assert.Contains("namespace " + TestNamespace, results.First().Value); }
public FoodTest() { _gameboard = ModelGenerator.GetGeneratedGameboard(); _snake = new Snake(); _food = new Food(); _cellProvider = new CellProvider(_gameboard, _snake); }
public void CanCallRemoveDocument() { var context = Provider.GetContext(); var newId = context.Documents.Add(ModelGenerator.Document(FolderId)); context.Documents.Remove(newId); }
public void CanCallRemoveFolder() { var context = Provider.GetContext(); var newId = context.Folders.Add(ModelGenerator.Folder()); context.Folders.Remove(newId); }
// called before every test public SnakeTest() { var gameboard = ModelGenerator.GetGeneratedGameboard(); _snake = new Snake(); _cellProvider = new CellProvider(gameboard, _snake); }
public void Bench(double amount, double fee, double minimum) { var modelGenerator = new ModelGenerator(); var model = modelGenerator.GetModels(amount, new ModelSettings { Fee = fee, MinPayment = minimum }); }
public void CollectionColumnInitStatementAdded() { var generator = new ModelGenerator(); var config = new CustomConfig(); var results = generator.GenerateFiles(config.Maps, this.MakeSchema(config), TestNamespace, null); Assert.Contains("this.Comments = new List<Comment>();", results["Post"]); }
private void GetModelGenerator() { modelGenerator = GameObject.Find("ModelGenerator"); if (modelGenerator != null) { modelGeneratorScript = modelGenerator.GetComponent <ModelGenerator>(); } }
static void Main() { xmile xmile = XMILEReader.ReadModel(@"../../Generated/EpidemicNode.xml"); IModelSource modelSource = new XMILEWrapper(xmile); ModelGenerator mg = new ModelGenerator(modelSource); string @class = mg.Class; File.WriteAllText(@"../../Generated/EpidemicNode.cs", @class); }
public void DerivedSchema() { var generator = new ModelGenerator(); var schema = new JObject(); const bool flatten = false; generator.EmitType(typeof(DerivedClass), ref schema, flatten); Console.WriteLine(schema.ToString()); }
public void CanCallAddFolder() { var context = Provider.GetContext(); var folder = ModelGenerator.Folder(); var newId = context.Folders.Add(folder); Assert.AreNotEqual(0, newId); }
public void CanCallAddDocument() { var context = Provider.GetContext(); var document = ModelGenerator.Document(FolderId); var newId = context.Documents.Add(document); Assert.AreNotEqual(0, newId); }
private void button2_Click(object sender, EventArgs e) { ModelGenerator.GenerateModel(DB.GetRows("Select * from customers").ToTable(), "Customer"); ModelGenerator.GenerateModel(DB.GetRows("Select * from categories").ToTable(), "Category", true); ModelGenerator.GenerateModel(DB.GetRows("Select * from employees").ToTable(), "Employee", true); ModelGenerator.GenerateModel(DB.GetRows("Select * from orders").ToTable(), "Order", true); ModelGenerator.GenerateModel(DB.GetRows("Select * from Products").ToTable(), "Product", true); ModelGenerator.GenerateModel(DB.GetRows("Select * from Shippers").ToTable(), "Shipper", true); MessageBox.Show("Done"); }
public void ModelGeneration_Class_Dependency() { // create syntax tree var personSyntaxTree = CSharpSyntaxTree.ParseText(@" using System; public class Person { public long Id { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public DateTime DateOfBirth { get; set; } public Address Address { get; set; } }"); var addressSyntaxTree = CSharpSyntaxTree.ParseText(@"public class Address { public int Id { get; set; } public string Country { get; set; } public string City { get; set; } public string PostalCode { get; set; } public string Street { get; set; } public string HouseNumber { get; set; } }"); // create compilation var compilation = RoslynTestHelpers.CreateTestCompilation(new[] { personSyntaxTree, addressSyntaxTree }); // analyze var context = new TestAnalysisContext(compilation); var analyzer = new ModelAnalyzer(context); var csClassModel = analyzer.AnalyzeClassSymbol(RoslynTestHelpers.GetClassSymbol(compilation, personSyntaxTree)); // convert var converter = new ModelConverter(); var tsClassModel = converter.ConvertClass(csClassModel); // generate var generator = new ModelGenerator(); var generated = generator.GenerateClass(tsClassModel, false); // assert var expected = @"import { Address } from './address.model'; export class Person { id: number; firstName: string; lastName: string; dateOfBirth: Date; address: Address; } "; Assert.AreEqual(expected, generated); }
private async Task <bool> Deploy( Settings settings, DryRunLevel?dryRun, string outputFilename, bool allowDataLoos, bool protectStack ) { var stopwatch = Stopwatch.StartNew(); // read input file Console.WriteLine(); Console.WriteLine($"Processing module: {settings.ModuleFileName}"); var source = await File.ReadAllTextAsync(settings.ModuleFileName); // preprocess file var tokenStream = new ModelPreprocessor(settings).Preprocess(source); if (ErrorCount > 0) { return(false); } // parse yaml module file var module = new ModelParser(settings).Parse(tokenStream, skipCompile: dryRun == DryRunLevel.CloudFormation); if (ErrorCount > 0) { return(false); } // generate cloudformation template var stack = new ModelGenerator().Generate(module); if (ErrorCount > 0) { return(false); } // serialize stack to disk var result = true; var outputPath = Path.Combine(settings.WorkingDirectory, outputFilename); var template = new JsonStackSerializer().Serialize(stack); File.WriteAllText(outputPath, template); if (dryRun == null) { result = await new StackUpdater().Deploy(module, template, allowDataLoos, protectStack); try { File.Delete(outputPath); } catch { } } Console.WriteLine($"Done (duration: {stopwatch.Elapsed:c})"); return(result); }
public ActionResult Overview(int?id) { if (id == null) { return(View("Error", null)); } var model = ModelGenerator.GenerateHospitalDataModel(id); return(View(model)); }
public async Task <IActionResult> Edit(Guid?id) { if (id != null) { var test = await testRepository.FirstOrDefaultAsync(x => x.Id == id); return(View(new TestModel(test))); } return(View(ModelGenerator.GenerateTestModel())); }
public void CanCallSaveFolder() { var context = Provider.GetContext(); // Get existing item var newId = context.Folders.Add(ModelGenerator.Folder()); var folder = context.Folders.GetItem(newId); // Save it context.Folders.Save(folder); }
public void CanCallSaveDocument() { var context = Provider.GetContext(); // Get existing item var newId = context.Documents.Add(ModelGenerator.Document(FolderId)); var document = context.Documents.GetItem(newId); // Save it context.Documents.Save(document); }
public IActionResult Get(int id) { var groups = ModelGenerator.GenerateGroupList(); var matchedGroup = groups.FirstOrDefault(s => s.Id == id); if (matchedGroup != null) { return(Ok(matchedGroup)); } return(NotFound()); }
public Post GeneratePost() { Logger.LogInformation($"Starting {Type} generation."); var model = ModelGenerator.GenerateModel(); var postText = PostGenerator.GeneratePostText(model); Logger.LogInformation($"Finished {Type} generation."); return(new Post() { Content = postText, Type = Models.Options.PostTypes.AdmissionsByAge }); }
public static string GetActual(Type typeToTest, string expected, bool flatten, JObject schema = null) { var converter = new ModelGenerator(); var target = new JObject(); converter.AssignSchemaType(typeToTest, ref target, ref schema, flatten); var actual = target.ToString(); Console.WriteLine("type:{0}\nexpected:\n{1}", typeToTest.FullName, expected); Console.WriteLine("actual :\n{0}", actual); return actual; }
public Post GeneratePost() { Logger.LogInformation($"Starting {Type} generation."); var model = ModelGenerator.GenerateModel(); var postText = PostGenerator.GeneratePostText(model); Logger.LogInformation($"Starting {Type} generation."); return(new Post() { Content = postText, Type = Type }); }
public void CanCallGetDocument() { var context = Provider.GetContext(); // Add random document and add to get its DB id var document = ModelGenerator.Document(FolderId); var newId = context.Documents.Add(document); // See if that id will return an object var savedDocument = context.Documents.GetItem(newId); Assert.IsNotNull(savedDocument); }
public void CanCallGetFolder() { var context = Provider.GetContext(); // Add random Folder and add to get its DB id var folder = ModelGenerator.Folder(); var newId = context.Folders.Add(folder); // See if that id will return an object var savedFolder = context.Folders.GetItem(newId); Assert.IsNotNull(savedFolder); }
public void NullableProperties() { // NOTE: // // This test doesn't work due to apparent limitations of // the DataWrapper class an perhaps .NET itself. The problem // is related to assigning a nullable Enum value. This // fails even though I explicitly cast the value to (MyEnum1?). // // I think the problem is related to the JIT compiler doing some // magic here and effectively stripping out the cast and // just passing the non-nullable enum value and then // [DataWrapper] fails when dynamically assigning the value // to the property because the value is no longer a (MyEnum1?). // // I have verified this manually when using the generated // model classes directly. // Verify that we handle nullable property types correctly. var settings = new ModelGeneratorSettings() { SourceNamespace = typeof(Test_UxDataModel).Namespace, UxFramework = UxFrameworks.Xaml }; var generator = new ModelGenerator(settings); var output = generator.Generate(Assembly.GetExecutingAssembly()); Assert.False(output.HasErrors); var assemblyStream = ModelGenerator.Compile(output.SourceCode, "test-assembly", references => ModelGenTestHelper.ReferenceHandler(references)); using (var context = new AssemblyContext("Neon.ModelGen.Output", assemblyStream)) { var data = context.CreateDataWrapper <NullableProperties>(); Assert.Equal("{\"Bool\":null,\"Int\":null,\"Enum\":null}", data.ToString()); data = context.CreateDataWrapperFrom <NullableProperties>(data.ToString()); Assert.Equal("{\"Bool\":null,\"Int\":null,\"Enum\":null}", data.ToString()); data["Bool"] = true; data["Int"] = 100; data["Enum"] = (MyEnum1?)MyEnum1.Two; // This throws an exception var s = data.ToString(); Assert.Equal("", data.ToString()); } }
public void CanCorrectlyAddFolder() { var context = Provider.GetContext(); // Add random Folder and add to get its DB id var folder = ModelGenerator.Folder(); folder.Id = context.Folders.Add(folder); // See if saved Folder's values are correct var savedFolder = context.Folders.GetItem(folder.Id); ModelAssert.AreEqual(folder, savedFolder); }
public void CanCorrectlyAddDocument() { var context = Provider.GetContext(); // Add random document and add to get its DB id var document = ModelGenerator.Document(FolderId); document.Id = context.Documents.Add(document); // See if saved document's values are correct var savedDocument = context.Documents.GetItem(document.Id); ModelAssert.AreEqual(document, savedDocument); }