예제 #1
0
        public void Pluralization_of_collection_navigations()
        {
            var blogTable = new TableModel {
                Name = "Blog", Columns = { IdColumn }
            };
            var postTable = new TableModel
            {
                Name    = "Post",
                Columns =
                {
                    IdColumn,
                    new ColumnModel {
                        Name = "BlogId",DataType             = "long", IsNullable = true
                    }
                }
            };

            postTable.ForeignKeys.Add(new ForeignKeyModel
            {
                Table          = postTable,
                PrincipalTable = blogTable,
                OnDelete       = ReferentialAction.Cascade,
                Columns        =
                {
                    new ForeignKeyColumnModel
                    {
                        Ordinal         = 1,
                        Column          = postTable.Columns.ElementAt(1),
                        PrincipalColumn = blogTable.Columns.ElementAt(0)
                    }
                }
            });

            var info = new DatabaseModel
            {
                Tables = { blogTable, postTable }
            };

            var factory = new FakeScaffoldingModelFactory(new TestLogger <LoggerCategory.Scaffolding>(), new FakePluralizer());
            var model   = factory.Create(info);

            Assert.Collection(model.GetEntityTypes().OrderBy(t => t.Name).Cast <EntityType>(),
                              entity =>
            {
                Assert.Equal("Blog", entity.Name);
                Assert.Equal("Posts", entity.GetNavigations().Single().Name);
            },
                              entity =>
            {
                Assert.Equal("Post", entity.Name);
                Assert.Equal("Blog", entity.GetNavigations().Single().Name);
            }
                              );
        }
예제 #2
0
        public void Pluralization_of_entity_and_DbSet()
        {
            var info = new DatabaseModel
            {
                Tables =
                {
                    new TableModel
                    {
                        Name    = "Blog",
                        Columns ={ IdColumn               }
                    },
                    new TableModel
                    {
                        Name    = "Posts",
                        Columns ={ IdColumn               }
                    }
                }
            };

            var factory = new FakeScaffoldingModelFactory(new TestLogger <LoggerCategory.Scaffolding>(), new FakePluralizer());
            var model   = factory.Create(info);

            Assert.Collection(model.GetEntityTypes().OrderBy(t => t.Name).Cast <EntityType>(),
                              entity =>
            {
                Assert.Equal("Blog", entity.Relational().TableName);
                Assert.Equal("Blog", entity.Name);
                Assert.Equal("Blogs", entity.Scaffolding().DbSetName);
            },
                              entity =>
            {
                Assert.Equal("Posts", entity.Relational().TableName);
                Assert.Equal("Post", entity.Name);
                Assert.Equal("Posts", entity.Scaffolding().DbSetName);
            }
                              );
        }
예제 #3
0
        public void Creates_entity_types()
        {
            var info = new DatabaseModel
            {
                Tables =
                {
                    new TableModel
                    {
                        Name    = "tableWithSchema", SchemaName = "public",
                        Columns ={ IdColumn               }
                    },
                    new TableModel
                    {
                        Name    = "noSchema",
                        Columns ={ IdColumn               }
                    },
                    new TableModel
                    {
                        Name = "notScaffoldable"
                    }
                }
            };
            var model = _factory.Create(info);

            Assert.Collection(model.GetEntityTypes().OrderBy(t => t.Name).Cast <EntityType>(),
                              table =>
            {
                Assert.Equal("noSchema", table.Relational().TableName);
                Assert.Null(table.Relational().Schema);
            },
                              pgtable =>
            {
                Assert.Equal("tableWithSchema", pgtable.Relational().TableName);
                Assert.Equal("public", pgtable.Relational().Schema);
            }
                              );
            Assert.NotEmpty(model.Scaffolding().EntityTypeErrors.Values);
        }