public void TestSimpleAutoColumn() { var property1 = "zip"; var property2 = "location"; var mofObject = new MofObject(); mofObject.set(property1, "55130"); mofObject.set(property2, "Mainz"); var mofObject2 = new MofObject(); mofObject2.set(property1, "65474"); mofObject2.set(property2, "Bischofsheim"); var extent = new MofUriExtent("datenmeister:///test"); extent.elements().add(mofObject); extent.elements().add(mofObject2); var creator = new ColumnCreator(null, null, null); var result = creator.FindColumnsForTable(extent); Assert.That(result, Is.Not.Null); Assert.That(result.Columns.Count(), Is.EqualTo(2)); var firstColumn = result.Columns.FirstOrDefault(x => x.name == "zip"); var secondColumn = result.Columns.FirstOrDefault(x => x.name == "location"); Assert.That(firstColumn, Is.Not.Null); Assert.That(secondColumn, Is.Not.Null); Assert.That(firstColumn.isEnumeration, Is.False); Assert.That(result.Properties.Count, Is.EqualTo(2)); Assert.That(result.Properties[0], Is.EqualTo("zip")); Assert.That(result.Properties[1], Is.EqualTo("location")); }
public void LoadUmlInfrastructure() { var factory = new MofFactory(); var extent = new MofUriExtent("datenmeister:///target"); Assert.That(extent.elements().Count(), Is.EqualTo(0)); var loader = new SimpleLoader(factory); loader.Load(extent, "Xmi/UML.xmi"); var firstElement = (extent.elements().ElementAt(0) as IObject); Assert.That(firstElement, Is.Not.Null); Assert.That(firstElement.get("name").ToString(), Is.EqualTo("UML")); }
public void TestMultiplePropertyFilter() { var properties = new[] { property1, property2 }; var mofObject = new MofObject(); mofObject.set(property1, "55130"); mofObject.set(property2, "Mainz"); var mofObject2 = new MofObject(); mofObject2.set(property1, "65474"); mofObject2.set(property2, "Bischofsheim"); var mofObject3 = new MofObject(); var mofExtent = new MofUriExtent("datenmeister:///"); Assert.That(mofExtent.elements().add(mofObject), Is.True); Assert.That(mofExtent.elements().add(mofObject2), Is.True); Assert.That(mofExtent.elements().add(mofObject3), Is.True); var result = Filter.WhenOneOfThePropertyContains( mofExtent.elements(), properties, "Mai"); Assert.That(result.size(), Is.EqualTo(1)); Assert.That(result.ElementAt(0), Is.EqualTo(mofObject)); result = Filter.WhenOneOfThePropertyContains( mofExtent.elements(), properties, "55130"); Assert.That(result.size(), Is.EqualTo(1)); Assert.That(result.ElementAt(0), Is.EqualTo(mofObject)); result = Filter.WhenOneOfThePropertyContains( mofExtent.elements(), properties, "Bisch"); Assert.That(result.size(), Is.EqualTo(1)); Assert.That(result.ElementAt(0), Is.EqualTo(mofObject2)); result = Filter.WhenOneOfThePropertyContains( mofExtent.elements(), properties, "xyz"); Assert.That(result.size(), Is.EqualTo(0)); result = Filter.WhenOneOfThePropertyContains( mofExtent.elements(), properties, "i"); Assert.That(result.size(), Is.EqualTo(2)); Assert.That(result.Contains(mofObject), Is.True); Assert.That(result.Contains(mofObject2), Is.True); }
public void LoadZipCodes(Stream stream) { var csvSettings = new CSVSettings { Encoding = "UTF-8", Separator = '\t', HasHeader = false }; ZipCodes = new MofUriExtent("datenmeister:///zipcodes"); var factory = new MofFactory(); var csvProvider = new CSVDataProvider(null, null); csvProvider.Load( ZipCodes, factory, stream, csvSettings); Columns.ZipCode = csvSettings.Columns[1]; Columns.Name = csvSettings.Columns[4]; Debug.WriteLine($"Loaded: {ZipCodes.elements().Count()} Zipcodes"); }
public void TestKnowsExtent() { var uriExtent = new MofUriExtent("dm:///test"); var mofElement = new MofElement(); var otherMofElement = new MofElement(); Assert.That(((IObjectKnowsExtent)mofElement).Extents.FirstOrDefault(), Is.Null); Assert.That(((IObjectKnowsExtent)otherMofElement).Extents.FirstOrDefault(), Is.Null); uriExtent.elements().add(mofElement); Assert.That(((IObjectKnowsExtent)mofElement).Extents.First(), Is.SameAs(uriExtent)); Assert.That(((IObjectKnowsExtent)otherMofElement).Extents.FirstOrDefault(), Is.Null); uriExtent.elements().add(otherMofElement); Assert.That(((IObjectKnowsExtent)mofElement).Extents.First(), Is.SameAs(uriExtent)); Assert.That(((IObjectKnowsExtent)otherMofElement).Extents.First(), Is.SameAs(uriExtent)); }
public void TestEnumerationAutoColumn() { var property1 = "zip"; var property2 = "location"; var property3 = "other"; var mofObject = new MofObject(); mofObject.set(property1, "55130"); mofObject.set(property2, "Mainz"); var mofObject2 = new MofObject(); mofObject2.set(property1, "65474"); mofObject2.set(property2, "Bischofsheim"); var enumeration = new MofReflectiveSequence(); enumeration.add(new MofObject()); mofObject2.set(property3, enumeration); var extent = new MofUriExtent("datenmeister:///test"); extent.elements().add(mofObject); extent.elements().add(mofObject2); // Execute the stuff var creator = new ColumnCreator(null, null, null); var result = creator.FindColumnsForTable(extent); Assert.That(result, Is.Not.Null); Assert.That(result.Columns.Count(), Is.EqualTo(3)); var firstColumn = result.Columns.FirstOrDefault(x => x.name == "zip"); var secondColumn = result.Columns.FirstOrDefault(x => x.name == "location"); var thirdColumn = result.Columns.FirstOrDefault(x => x.name == "other"); Assert.That(firstColumn, Is.Not.Null); Assert.That(secondColumn, Is.Not.Null); Assert.That(firstColumn.isEnumeration, Is.False); Assert.That(secondColumn.isEnumeration, Is.False); Assert.That(thirdColumn.isEnumeration, Is.True); }
private static void TestFillTree() { var watch = new Stopwatch(); watch.Start(); var factory = new MofFactory(); var mofExtent = new MofUriExtent("datenmeister:///mof"); var umlExtent = new MofUriExtent("datenmeister:///uml"); var loader = new SimpleLoader(factory); loader.Load(mofExtent, "data/MOF.xmi"); loader.Load(mofExtent, "data/UML.xmi"); var mof = new _MOF(); var uml = new _UML(); FillTheMOF.DoFill(mofExtent.elements(), mof); FillTheUML.DoFill(umlExtent.elements(), uml); watch.Stop(); System.Console.WriteLine($"Elapsed Time for MOF and UML Fill {watch.ElapsedMilliseconds.ToString("n0")} ms"); }
public void TestFindByUri() { var workspace = new Workspace<IExtent>("data", "No annotation"); var extent = new MofUriExtent("http://test/"); var factory = new MofFactory(); var element = factory.create(null); extent.elements().add(element); workspace.AddExtent(extent); var elementAsMofElement = (MofElement) element; var guid = elementAsMofElement.Id; // Now check, if everything is working var found = extent.element("http://test/#" + guid); Assert.That(found, Is.EqualTo(element)); var anotherFound = workspace.FindElementByUri("http://test/#" + guid); Assert.That(anotherFound, Is.EqualTo(element)); }
public void TestDataLayersForItem() { var dataLayers = new DataLayers(); var data = new DataLayerData(dataLayers); IDataLayerLogic logic = new DataLayerLogic(data); dataLayers.SetRelationsForDefaultDataLayers(logic); var dataExtent = new MofUriExtent("Data"); var umlExtent = new MofUriExtent("Uml"); logic.AssignToDataLayer(dataExtent, dataLayers.Data); logic.AssignToDataLayer(umlExtent, dataLayers.Uml); var value = new MofElement(null, null); var logicLayer = logic.GetDataLayerOfObject(value); Assert.That(logicLayer, Is.SameAs(dataLayers.Data)); // Per Default, only the Data umlExtent.elements().add(value); logicLayer = logic.GetDataLayerOfObject(value); Assert.That(logicLayer, Is.SameAs(dataLayers.Uml)); }
public void TestStoreAndFindObject() { var mofElement = new MofElement(); var otherMofElement = new MofElement(); var mofInstance = new MofUriExtent("datenmeister:///test"); mofInstance.elements().add(mofElement); mofInstance.elements().add(otherMofElement); // Gets the uris var uri1 = mofInstance.uri(mofElement); var uri2 = mofInstance.uri(otherMofElement); Assert.That(uri1, Is.Not.Null); // Gets the instances var found1 = mofInstance.element(uri1); var found2 = mofInstance.element(uri2); Assert.That(found1, Is.Not.Null); Assert.That(found2, Is.Not.Null); Assert.That(found1, Is.SameAs(mofElement)); Assert.That(found2, Is.SameAs(otherMofElement)); }
private static void TestZipCodes() { // Checks the loading of the PLZ System.Console.WriteLine("Loading the Zip codes"); var extent = new MofUriExtent("mof:///plz"); var factory = new MofFactory(); var csvSettings = new CSVSettings { Encoding = "ISO-8859-1", Separator = '\t', HasHeader = false }; var provider = new CSVDataProvider(null, null); provider.Load(extent, factory, "data/plz.csv", csvSettings); System.Console.WriteLine($"Loaded: {extent.elements().Count().ToString()} Zipcodes"); System.Console.WriteLine(); }
public static void GenerateSourceFor(SourceGeneratorOptions options) { var uml = new _UML(); var extent = new MofUriExtent("dm:///sourcegenerator"); var factory = new MofFactory(); // Creates the dotnet types to real MOF Types var dotNetProvider = new DotNetTypeGenerator(factory, uml); var package = factory.create(uml.Packages.__Package); package.set("name", options.Name); // Do the conversion var elements = new List<IElement>(); foreach (var type in options.Types) { var typeObject = dotNetProvider.CreateTypeFor(type); elements.Add(typeObject); } package.set(_UML._Packages._Package.packagedElement, elements); // Adds the package extent.elements().add(package); var sourceParser = new ElementSourceParser(uml); // Creates the class tree var classTreeGenerator = new ClassTreeGenerator(sourceParser) { Namespace = options.Namespace }; classTreeGenerator.Walk(extent); var sourceClass = classTreeGenerator.Result.ToString(); var pathOfClassTree = Path.ChangeExtension( Path.Combine( options.Path, options.Name), ".class.cs"); File.WriteAllText(pathOfClassTree, sourceClass); // Creates now the filler var fillerGenerator = new FillClassTreeByExtentCreator(options.Name + "Filler", sourceParser) { Namespace = options.Namespace, ClassNameOfTree = classTreeGenerator.UsedClassName }; fillerGenerator.Walk(extent); var sourceFiller = fillerGenerator.Result.ToString(); var pathOfFillerTree = Path.ChangeExtension( Path.Combine( options.Path, options.Name), ".filler.cs"); File.WriteAllText(pathOfFillerTree, sourceFiller); }