Exemplo n.º 1
0
        public void It_Returns_The_Reference_Objects()
        {
            ProviderInfo info = new ProviderInfo();

            var entity1 = new EntityImpl("T1");
            var entity2 = new EntityImpl("T2");
            var entity3 = new EntityImpl("T3");
            var rel1    = new ReferenceImpl {
                EntitySet = info.MappingSet.EntitySet
            };
            var rel2 = new ReferenceImpl {
                EntitySet = info.MappingSet.EntitySet
            };

            info.MappingSet.EntitySet.AddEntity(entity1);
            info.MappingSet.EntitySet.AddEntity(entity2);
            info.MappingSet.EntitySet.AddEntity(entity3);

            rel1.AddThisTo(entity1, entity2);
            rel2.AddThisTo(entity3, entity2);

            IEnumerable <IScriptBaseObject> objects = info.GetAllObjectsOfType(typeof(Reference));

            Assert.That(objects, Has.Length(2));
            Assert.That(objects.Contains(rel1));
            Assert.That(objects.Contains(rel2));
        }
        public void It_Returns_The_One_MappingSet_Object()
        {
            ProviderInfo info = new ProviderInfo();
            IEnumerable<IScriptBaseObject> objects = info.GetAllObjectsOfType(typeof(EntitySet));

            Assert.That(objects, Has.Length(1));
            Assert.That(objects.ElementAt(0), Is.SameAs(info.MappingSet.EntitySet));
        }
Exemplo n.º 3
0
        public void It_Returns_The_One_MappingSet_Object()
        {
            ProviderInfo info = new ProviderInfo();
            IEnumerable <IScriptBaseObject> objects = info.GetAllObjectsOfType(typeof(EntitySet));

            Assert.That(objects, Has.Length(1));
            Assert.That(objects.ElementAt(0), Is.SameAs(info.MappingSet.EntitySet));
        }
Exemplo n.º 4
0
        public void The_Correct_Files_Should_Be_Written_To()
        {
            ProviderInfo info = new ProviderInfo();

            info.Save(tempFolder);

            Assert.That(File.Exists(Path.Combine(tempFolder, "mappings.xml")));
            Assert.That(File.Exists(Path.Combine(tempFolder, "entities.xml")));
            Assert.That(File.Exists(Path.Combine(tempFolder, "database.xml")));
        }
Exemplo n.º 5
0
        public void It_Returns_The_Entity_Objects()
        {
            ProviderInfo info = new ProviderInfo();

            var entity = new EntityImpl();

            info.MappingSet.EntitySet.AddEntity(entity);

            IEnumerable <IScriptBaseObject> objects = info.GetAllObjectsOfType(typeof(Entity));

            Assert.That(objects, Has.Length(1));
            Assert.That(objects.ElementAt(0), Is.SameAs(entity));
        }
Exemplo n.º 6
0
        public void It_Returns_The_ITable_Objects()
        {
            ProviderInfo info = new ProviderInfo();

            var table = new Table();

            info.MappingSet.Database.AddTable(table);

            IEnumerable <IScriptBaseObject> objects = info.GetAllObjectsOfType(typeof(ITable));

            Assert.That(objects, Has.Length(1));
            Assert.That(objects.ElementAt(0), Is.SameAs(table));
        }
        public void It_Returns_The_EntityKey_Objects()
        {
            ProviderInfo info = new ProviderInfo();

            var entity1 = new EntityImpl();
            var entity2 = new EntityImpl();
            info.MappingSet.EntitySet.AddEntity(entity1);
            info.MappingSet.EntitySet.AddEntity(entity2);

            IEnumerable<IScriptBaseObject> objects = info.GetAllObjectsOfType(typeof(EntityKey));

            Assert.That(objects, Has.Length(2));
            Assert.That(objects.Contains(entity1.Key));
            Assert.That(objects.Contains(entity2.Key));
        }
Exemplo n.º 8
0
        public void It_Returns_The_ITable_Objects()
        {
            ProviderInfo info = new ProviderInfo();

            var table  = new Table("T1");
            var table2 = new Table("T2");

            info.MappingSet.Database.AddTable(table);
            info.MappingSet.Database.AddTable(table2);

            IEnumerable <IScriptBaseObject> objects = info.GetAllObjectsOfType(typeof(ITable));

            Assert.That(objects, Has.Length(2));
            Assert.That(objects.Contains(table));
            Assert.That(objects.Contains(table2));
        }
Exemplo n.º 9
0
        public void It_Returns_The_EntityKey_Objects()
        {
            ProviderInfo info = new ProviderInfo();

            var entity1 = new EntityImpl();
            var entity2 = new EntityImpl();

            info.MappingSet.EntitySet.AddEntity(entity1);
            info.MappingSet.EntitySet.AddEntity(entity2);

            IEnumerable <IScriptBaseObject> objects = info.GetAllObjectsOfType(typeof(EntityKey));

            Assert.That(objects, Has.Length(2));
            Assert.That(objects.Contains(entity1.Key));
            Assert.That(objects.Contains(entity2.Key));
        }
Exemplo n.º 10
0
        public void It_Returns_The_Mapping_Objects()
        {
            ProviderInfo info = new ProviderInfo();

            var mapping1 = new MappingImpl();
            var mapping2 = new MappingImpl();

            info.MappingSet.AddMapping(mapping1);
            info.MappingSet.AddMapping(mapping2);

            IEnumerable <IScriptBaseObject> objects = info.GetAllObjectsOfType(typeof(Mapping));

            Assert.That(objects, Has.Length(2));
            Assert.That(objects.Contains(mapping1), "Missing mapping1");
            Assert.That(objects.Contains(mapping2), "Missing mapping2");
        }
Exemplo n.º 11
0
        public void It_Returns_The_IKey_Objects()
        {
            ProviderInfo info = new ProviderInfo();

            var table1 = new Table();
            var index1 = new Key("1");

            table1.AddKey(index1);
            var table2 = new Table();
            var index2 = new Key("2");

            table2.AddKey(index2);
            info.MappingSet.Database.AddTable(table1);
            info.MappingSet.Database.AddTable(table2);

            IEnumerable <IScriptBaseObject> objects = info.GetAllObjectsOfType(typeof(IKey));

            Assert.That(objects, Has.Length(2));
            Assert.That(objects.Contains(index1));
            Assert.That(objects.Contains(index2));
        }
Exemplo n.º 12
0
        public void It_Returns_The_IColumn_Objects()
        {
            ProviderInfo info = new ProviderInfo();

            var table1  = new Table();
            var column1 = new Column("Col1");

            table1.AddColumn(column1);
            var table2  = new Table();
            var column2 = new Column("Col2");

            table2.AddColumn(column2);
            info.MappingSet.Database.AddTable(table1);
            info.MappingSet.Database.AddTable(table2);

            IEnumerable <IScriptBaseObject> objects = info.GetAllObjectsOfType(typeof(IColumn));

            Assert.That(objects, Has.Length(2));
            Assert.That(objects.Contains(column1));
            Assert.That(objects.Contains(column2));
        }
Exemplo n.º 13
0
        public void It_Returns_The_Relationship_Objects()
        {
            ProviderInfo info = new ProviderInfo();

            var entity1 = new Table("T1");
            var entity2 = new Table("T2");
            var entity3 = new Table("T3");
            var rel1    = new RelationshipImpl();
            var rel2    = new RelationshipImpl();

            info.MappingSet.Database.AddEntity(entity1);
            info.MappingSet.Database.AddEntity(entity2);
            info.MappingSet.Database.AddEntity(entity3);

            rel1.AddThisTo(entity1, entity2);
            rel2.AddThisTo(entity3, entity2);

            IEnumerable <IScriptBaseObject> objects = info.GetAllObjectsOfType(typeof(Relationship));

            Assert.That(objects, Has.Length(2));
            Assert.That(objects.Contains(rel1));
            Assert.That(objects.Contains(rel2));
        }
Exemplo n.º 14
0
        public void It_Returns_The_ITable_Objects()
        {
            ProviderInfo info = new ProviderInfo();

            var table = new Table("T1");
            var table2 = new Table("T2");
            info.MappingSet.Database.AddTable(table);
            info.MappingSet.Database.AddTable(table2);

            IEnumerable<IScriptBaseObject> objects = info.GetAllObjectsOfType(typeof(ITable));

            Assert.That(objects, Has.Length(2));
            Assert.That(objects.Contains(table));
            Assert.That(objects.Contains(table2));
        }
Exemplo n.º 15
0
        public void The_Correct_Files_Should_Be_Written_To()
        {
            ProviderInfo info = new ProviderInfo();
            info.Save(tempFolder);

            Assert.That(File.Exists(Path.Combine(tempFolder, "mappings.xml")));
            Assert.That(File.Exists(Path.Combine(tempFolder, "entities.xml")));
            Assert.That(File.Exists(Path.Combine(tempFolder, "database.xml")));
        }
Exemplo n.º 16
0
        public void It_Returns_The_Relationship_Objects()
        {
            ProviderInfo info = new ProviderInfo();

            var entity1 = new Table("T1");
            var entity2 = new Table("T2");
            var entity3 = new Table("T3");
            var rel1 = new RelationshipImpl();
            var rel2 = new RelationshipImpl();

            info.MappingSet.Database.AddEntity(entity1);
            info.MappingSet.Database.AddEntity(entity2);
            info.MappingSet.Database.AddEntity(entity3);

            rel1.AddThisTo(entity1, entity2);
            rel2.AddThisTo(entity3, entity2);

            IEnumerable<IScriptBaseObject> objects = info.GetAllObjectsOfType(typeof(Relationship));

            Assert.That(objects, Has.Length(2));
            Assert.That(objects.Contains(rel1));
            Assert.That(objects.Contains(rel2));
        }
Exemplo n.º 17
0
        public void It_Returns_The_Reference_Objects()
        {
            ProviderInfo info = new ProviderInfo();

            var entity1 = new EntityImpl("T1");
            var entity2 = new EntityImpl("T2");
            var entity3 = new EntityImpl("T3");
            var rel1 = new ReferenceImpl { EntitySet = info.MappingSet.EntitySet };
            var rel2 = new ReferenceImpl { EntitySet = info.MappingSet.EntitySet };

            info.MappingSet.EntitySet.AddEntity(entity1);
            info.MappingSet.EntitySet.AddEntity(entity2);
            info.MappingSet.EntitySet.AddEntity(entity3);

            rel1.AddThisTo(entity1, entity2);
            rel2.AddThisTo(entity3, entity2);

            IEnumerable<IScriptBaseObject> objects = info.GetAllObjectsOfType(typeof(Reference));

            Assert.That(objects, Has.Length(2));
            Assert.That(objects.Contains(rel1));
            Assert.That(objects.Contains(rel2));
        }
Exemplo n.º 18
0
        public void It_Returns_The_Mapping_Objects()
        {
            ProviderInfo info = new ProviderInfo();

            var mapping1 = new MappingImpl();
            var mapping2 = new MappingImpl();
            info.MappingSet.AddMapping(mapping1);
            info.MappingSet.AddMapping(mapping2);

            IEnumerable<IScriptBaseObject> objects = info.GetAllObjectsOfType(typeof(Mapping));

            Assert.That(objects, Has.Length(2));
            Assert.That(objects.Contains(mapping1), "Missing mapping1");
            Assert.That(objects.Contains(mapping2), "Missing mapping2");
        }
Exemplo n.º 19
0
        public void It_Returns_The_ITable_Objects()
        {
            ProviderInfo info = new ProviderInfo();

            var table = new Table();
            info.MappingSet.Database.AddTable(table);

            IEnumerable<IScriptBaseObject> objects = info.GetAllObjectsOfType(typeof(ITable));

            Assert.That(objects, Has.Length(1));
            Assert.That(objects.ElementAt(0), Is.SameAs(table));
        }
Exemplo n.º 20
0
        public void It_Returns_The_IKey_Objects()
        {
            ProviderInfo info = new ProviderInfo();

            var table1 = new Table();
            var index1 = new Key("1");
            table1.AddKey(index1);
            var table2 = new Table();
            var index2 = new Key("2");
            table2.AddKey(index2);
            info.MappingSet.Database.AddTable(table1);
            info.MappingSet.Database.AddTable(table2);

            IEnumerable<IScriptBaseObject> objects = info.GetAllObjectsOfType(typeof(IKey));

            Assert.That(objects, Has.Length(2));
            Assert.That(objects.Contains(index1));
            Assert.That(objects.Contains(index2));
        }
Exemplo n.º 21
0
        public void It_Returns_The_Entity_Objects()
        {
            ProviderInfo info = new ProviderInfo();

            var entity = new EntityImpl();
            info.MappingSet.EntitySet.AddEntity(entity);

            IEnumerable<IScriptBaseObject> objects = info.GetAllObjectsOfType(typeof(Entity));

            Assert.That(objects, Has.Length(1));
            Assert.That(objects.ElementAt(0), Is.SameAs(entity));
        }
        public void InitialiseEntityModel(ArchAngel.Providers.EntityModel.ProviderInfo providerInfo, PreGenerationData data)
        {
            providerInfo.MappingSet.CodeParseResults = null;
            // Clear the current mapped class.
            providerInfo.MappingSet.EntitySet.Entities.ForEach(e => e.MappedClass = null);

            // Find the csproj file we are going to use
            string filename;
            var    csprojDocument = GetCSProjDocument(data, out filename);

            if (csprojDocument == null)
            {
                return;
            }

            CSProjFile csproj   = new CSProjFile(csprojDocument, filename);
            var        hbmFiles = ProjectLoader.GetHBMFilesFromCSProj(csproj, fileController);

            // Load HBMs
            foreach (string hbmFilePath in hbmFiles)
            {
                if (!File.Exists(hbmFilePath))
                {
                    throw new FileNotFoundException(string.Format("A file is defined is your csproj file [{0}], but it cannot be found: [{1}]", filename, hbmFilePath), hbmFilePath);
                }
            }
            var mappings = hbmFiles.Select(f => MappingFiles.Version_2_2.Utility.Open(f)).ToList();

            // Parse the CSharp files
            var csharpFiles  = ProjectLoader.GetCSharpFilesFromCSProj(csproj, fileController);
            var parseResults = ParseResults.ParseCSharpFiles(csharpFiles);

            providerInfo.MappingSet.CodeParseResults = parseResults;

            // Clear the current mapped class.
            providerInfo.MappingSet.EntitySet.Entities.ForEach(e => e.MappedClass = null);

            // Map the Entity objects to the parsed Class
            var entities = providerInfo.MappingSet.EntitySet.Entities.ToDictionary(e => e.Name);

            foreach (var hm in mappings)
            {
                foreach (var hClass in hm.Classes())
                {
                    var fullClassName  = HibernateMappingHelper.ResolveFullClassName(hClass, hm);
                    var shortClassName = HibernateMappingHelper.ResolveShortClassName(hClass, hm);

                    // try find the entity
                    Entity entity;
                    if (entities.TryGetValue(shortClassName, out entity))
                    {
                        // try find class in parse results
                        var parsedClass = parseResults.FindClass(fullClassName, entity.Properties.Select(p => p.Name).ToList());
                        entity.MappedClass = parsedClass;
                    }
                    else
                    {
                        Log.InfoFormat("Could not find entity for class named {0} in the NHibernate project on disk.", shortClassName);
                    }
                }
            }
            // Now, try to map entities that haven't been found yet
            foreach (var entity in entities.Select(v => v.Value).Where(e => e.MappedClass == null))
            {
                string entityName = entity.Name;
                // try find class in parse results
                var parsedClass = parseResults.FindClass(entityName, entity.Properties.Select(p => p.Name).ToList());
                entity.MappedClass = parsedClass;
            }
        }
Exemplo n.º 23
0
        public void It_Returns_The_IColumn_Objects()
        {
            ProviderInfo info = new ProviderInfo();

            var table1 = new Table();
            var column1 = new Column("Col1");
            table1.AddColumn(column1);
            var table2 = new Table();
            var column2 = new Column("Col2");
            table2.AddColumn(column2);
            info.MappingSet.Database.AddTable(table1);
            info.MappingSet.Database.AddTable(table2);

            IEnumerable<IScriptBaseObject> objects = info.GetAllObjectsOfType(typeof(IColumn));

            Assert.That(objects, Has.Length(2));
            Assert.That(objects.Contains(column1));
            Assert.That(objects.Contains(column2));
        }