Пример #1
0
        public void Get_Column_Names_Dic()
        {
            TableBuilder tableBuilder = new TableBuilder();

            tableBuilder.Add <Person>(config => config
                                      .ColumnName(x => x.Id, "Id2"));

            tableBuilder.Add <Department>(config => config
                                          .ColumnName(x => x.Id, "Id3"));

            IEngine engine = new Engine(tableBuilder);

            Assert.Equal(new Dictionary <string, string>
            {
                ["Id"]            = "Id2",
                ["Guid"]          = "Guid",
                ["Name"]          = "Name",
                ["SurName"]       = "SurName",
                ["DepartmentId"]  = "DepartmentId",
                ["Department.Id"] = "DepartmentId"
            }, engine.GetColumnNamesDic(typeof(Person)));

            Assert.Equal(new Dictionary <string, string>
            {
                ["Id"]      = "Id3",
                ["Guid"]    = "Guid",
                ["Name"]    = "Name",
                ["Boss.Id"] = "BossId"
            }, engine.GetColumnNamesDic(typeof(Department)));
        }
Пример #2
0
        public void Get_Member_Metadata_Expression()
        {
            ITableBuilder tableBuilder = new TableBuilder()
                                         .AddProcessor(new DefaultMetadataProcessor());

            tableBuilder.Add <Person>()
            .AddMetadata(x => x.Id, "Id1", "Id1_Person")
            .AddMetadata(x => x.Id, "Id2", "Id2_Person")
            .AddMetadata(x => x.Guid, "Guid1", "Guid1_Person")
            .AddMetadata(x => x.Guid, "Guid2", "Guid2_Person");

            tableBuilder.Add <Department>()
            .AddMetadata(x => x.Id, "Id1", "Id1_Department")
            .AddMetadata(x => x.Id, "Id2", "Id2_Department")
            .AddMetadata(x => x.Guid, "Guid1", "Guid1_Department")
            .AddMetadata(x => x.Guid, "Guid2", "Guid2_Department");

            IEngine engine = new Engine(tableBuilder);

            Assert.Equal("Id1_Person", engine.GetInfo <Person>().GetMetadata(x => x.Id, "Id1"));
            Assert.Equal("Id2_Person", engine.GetInfo <Person>().GetMetadata(x => x.Id, "Id2"));
            Assert.Equal("Guid1_Person", engine.GetInfo <Person>().GetMetadata(x => x.Guid, "Guid1"));
            Assert.Equal("Guid2_Person", engine.GetInfo <Person>().GetMetadata(x => x.Guid, "Guid2"));

            Assert.Equal("Id1_Department", engine.GetInfo <Department>().GetMetadata(x => x.Id, "Id1"));
            Assert.Equal("Id2_Department", engine.GetInfo <Department>().GetMetadata(x => x.Id, "Id2"));
            Assert.Equal("Guid1_Department", engine.GetInfo <Department>().GetMetadata(x => x.Guid, "Guid1"));
            Assert.Equal("Guid2_Department", engine.GetInfo <Department>().GetMetadata(x => x.Guid, "Guid2"));

            Assert.Null(engine.GetInfo <Person>().GetMetadata(x => x.Id, "Id3"));
            Assert.Null(engine.GetInfo <Department>().GetMetadata(x => x.Id, "Id3"));

            Assert.Null(engine.GetInfo <Person>().GetMetadata(x => x.Name, "Name1"));
            Assert.Null(engine.GetInfo <Department>().GetMetadata(x => x.Name, "Name1"));
        }
Пример #3
0
        public virtual ITableBuilder GetTableBuilder()
        {
            ITableBuilder tableBuilder = new TableBuilder();

            tableBuilder.Add <Person>();
            tableBuilder.Add <Department>();

            return(tableBuilder);
        }
Пример #4
0
        public void Get_Table_Name()
        {
            TableBuilder tableBuilder = new TableBuilder();

            tableBuilder.Add <Person>();

            tableBuilder.Add <Department>();

            IEngine engine = new Engine(tableBuilder);

            Assert.Equal("Person", engine.GetTableName(typeof(Person)));
            Assert.Equal("Department", engine.GetTableName(typeof(Department)));
        }
Пример #5
0
        public void Get_Columns()
        {
            TableBuilder tableBuilder = new TableBuilder();

            tableBuilder.Add <Person>();

            tableBuilder.Add <Department>();

            IEngine engine = new Engine(tableBuilder);

            Assert.Equal(new string[] { "Id", "Guid", "Name", "SurName", "DepartmentId", "Department.Id" },
                         engine.GetColumns(typeof(Person)));
            Assert.Equal(new string[] { "Id", "Guid", "Name", "Boss.Id" }, engine.GetColumns(typeof(Department)));
        }
Пример #6
0
        public void Get_Registered_Types()
        {
            ITableBuilder tableBuilder = new TableBuilder();

            tableBuilder.Add <Person>();

            tableBuilder.Add <Employee>();

            tableBuilder.Add <Department>();

            IEngine engine = new Engine(tableBuilder);

            Assert.Equal(new Type[] { typeof(Person), typeof(Employee), typeof(Department) }, engine.GetRegisteredTypes());
        }
Пример #7
0
        public void Is_Table()
        {
            TableBuilder tableBuilder = new TableBuilder();

            tableBuilder.Add <Person>();

            tableBuilder.Add <Department>();

            IEngine engine = new Engine(tableBuilder);

            Assert.False(engine.IsTable(typeof(BaseConfig)));
            Assert.True(engine.IsTable(typeof(Person)));
            Assert.True(engine.IsTable(typeof(Department)));
        }
Пример #8
0
        public void Get_Primary_Keys()
        {
            TableBuilder tableBuilder = new TableBuilder();

            tableBuilder.Add <Person>();

            tableBuilder.Add <Department>(config => config
                                          .PrimaryKey(x => x.Guid));

            IEngine engine = new Engine(tableBuilder);

            Assert.Equal(new string[] { "Id" }, engine.GetPrimaryKeys(typeof(Person)));
            Assert.Equal(new string[] { "Guid" }, engine.GetPrimaryKeys(typeof(Department)));
        }
Пример #9
0
        public void Get_Column_Name()
        {
            TableBuilder tableBuilder = new TableBuilder();

            tableBuilder.Add <Person>(config => config
                                      .ColumnName(x => x.Id, "Id2"));

            tableBuilder.Add <Department>(config => config
                                          .ColumnName(x => x.Id, "Id3"));

            IEngine engine = new Engine(tableBuilder);

            Assert.Equal("Id2", engine.GetColumnName(typeof(Person), "Id"));
            Assert.Equal("Id3", engine.GetColumnName(typeof(Department), "Id"));
        }
Пример #10
0
        public void Get_Info()
        {
            ITableBuilder tableBuilder = new TableBuilder();

            tableBuilder.Add <Person>();

            tableBuilder.Add <Employee>();

            tableBuilder.Add <Department>();

            IEngine engine = new Engine(tableBuilder);

            Assert.Equal(tableBuilder.GetConfig <Person>(), engine.GetInfo(typeof(Person)));
            Assert.Equal(tableBuilder.GetConfig <Employee>(), engine.GetInfo(typeof(Employee)));
            Assert.Equal(tableBuilder.GetConfig <Department>(), engine.GetInfo(typeof(Department)));
        }
Пример #11
0
partial         void OnTemplate(AdministrationSimpleListTemplate template, ControllerContext controllerContext)
        {
            var urlHelper = new UrlHelper(controllerContext.RequestContext);
            template.GlobalButtons = new List<IClickable>
            {
                new Button(MaintCultureTextResources.Search),
                new Link(MaintCultureTextResources.New, urlHelper.Action("Create", "User"), LinkStyle.Button),
                new Button(MaintCultureTextResources.Disable, "Disable"),
                new Button(MaintCultureTextResources.Enable, "Enable"),
            };
            var tableBuilder = new TableBuilder<User>();
            template.Table = tableBuilder
                .Add(tableBuilder.CheckBox(x => x.UserId.Format(), controllerContext, name: "ids"), "", "UserId")
                .Add(tableBuilder.Literal(x => x.UserName.Format(), controllerContext), MaintCultureTextResources.AdminUserUserName, "UserName")
                .Add(tableBuilder.Literal(x => x.LoginName.Format(), controllerContext), MaintCultureTextResources.AdminUserLoginName, "LoginName")
                .Add(tableBuilder.Literal(x => x.Gender.Format(), controllerContext), MaintCultureTextResources.AdminUserGender, "Gender")
                .Add(tableBuilder.Literal(x => x.DateOfBirth.Format(), controllerContext), MaintCultureTextResources.AdminUserDateOfBirth, "DateOfBirth")
                .Add(tableBuilder.Literal(x => x.IsBuildIn.Format(), controllerContext), MaintCultureTextResources.AdminUserIsBuildIn, "IsBuildIn")
                .Add(tableBuilder.Literal(x => x.IsEnabled.Format(), controllerContext), MaintCultureTextResources.AdminUserIsEnabled, "IsEnabled")
                .Add(tableBuilder.Literal(x => x.IsSuper.Format(), controllerContext), MaintCultureTextResources.AdminUserIsSuper, "IsSuper")
                .Add(x => new ControlCollection(
                    new Link(MaintCultureTextResources.Edit, urlHelper.Action("Edit", "User", new { id = x.Target.UserId }), LinkStyle.Normal),
                    new Link(MaintCultureTextResources.UserLoginFailedLogIndex, urlHelper.Action("UserLoginFailedLogIndex", "User", new { UserId = x.Target.UserId }), LinkStyle.Normal)
                    ), MaintCultureTextResources.Operation).Build();
        }
Пример #12
0
        public void Get_Info_Or_Default_Generic()
        {
            ITableBuilder tableBuilder = new TableBuilder();

            tableBuilder.Add <Person>();

            tableBuilder.Add <Employee>();

            tableBuilder.Add <Department>();

            IEngine engine = new Engine(tableBuilder);

            Assert.Equal(tableBuilder.GetConfig <Person>(), engine.GetInfoOrDefault <Person>());
            Assert.Equal(tableBuilder.GetConfig <Employee>(), engine.GetInfoOrDefault <Employee>());
            Assert.Equal(tableBuilder.GetConfig <Department>(), engine.GetInfoOrDefault <Department>());
        }
Пример #13
0
partial         void OnTemplate(AdministrationSimpleListTemplate template, ControllerContext controllerContext)
        {
            var urlHelper = new UrlHelper(controllerContext.RequestContext);
            template.GlobalButtons = new List<IClickable>
            {
                new Button(MaintCultureTextResources.Search),
                new Link(MaintCultureTextResources.New, urlHelper.Action("Create", "Role"), LinkStyle.Button),
                new Button(MaintCultureTextResources.Disable, "Disable"),
                new Button(MaintCultureTextResources.Enable, "Enable"),
            };
            var tableBuilder = new TableBuilder<Role>();
            template.Table = tableBuilder.Add(tableBuilder.CheckBox(x => x.RoleId.ToString(), controllerContext, "ids"), "", "RoleId")
                .Add(tableBuilder.Literal(x => x.Name.Format(), controllerContext), MaintCultureTextResources.RoleName, "Name")
                .Add(tableBuilder.Literal(x => x.IsBuildIn.Format(), controllerContext), MaintCultureTextResources.RoleIsBuildIn, "IsBuildIn")
                .Add(tableBuilder.Literal(x => x.IsEnabled.Format(), controllerContext), MaintCultureTextResources.RoleIsEnabled, "IsEnabled")
                .Add(x =>
                {
                    return new ControlCollection()
                    {
                        Controls = new List<Control>
                        {
                            new Link(MaintCultureTextResources.Edit, urlHelper.Action("Edit", "Role", new {id = x.Target.RoleId}), LinkStyle.Normal)
                        }
                    };
                }, MaintCultureTextResources.Operation).Build();
        }
Пример #14
0
        public void Get_Column_Names()
        {
            TableBuilder tableBuilder = new TableBuilder();

            tableBuilder.Add <Person>(config => config
                                      .ColumnName(x => x.Id, "Id2"));

            tableBuilder.Add <Department>(config => config
                                          .ColumnName(x => x.Id, "Id3"));

            IEngine engine = new Engine(tableBuilder);

            Assert.Equal(new string[] { "Id2", "Guid", "Name", "SurName", "DepartmentId" },
                         engine.GetColumnNames(typeof(Person)));
            Assert.Equal(new string[] { "Id3", "Guid", "Name", "BossId" }, engine.GetColumnNames(typeof(Department)));
        }
Пример #15
0
        public BaseTest()
        {
            TableBuilder tableBuilder = new TableBuilder();

            tableBuilder.Add <Person>();
            tableBuilder.Add <Department>();

            engine = GetEngine(tableBuilder);

            if (SqlBuilder.Instance == null)
            {
                SqlBuilder.Register(new SqlBuilder(), true);
                SqlExp.Initialize();
            }

            sql = SqlBuilder.Instance;
        }
Пример #16
0
        public void Is_Table_Generic()
        {
            ITableBuilder tableBuilder = new TableBuilder();

            tableBuilder.Add <Person>();

            tableBuilder.Add <Employee>();

            tableBuilder.Add <Department>();

            IEngine engine = new Engine(tableBuilder);

            Assert.False(engine.IsTable <BaseConfig>());
            Assert.True(engine.IsTable <Person>());
            Assert.True(engine.IsTable <Employee>());
            Assert.True(engine.IsTable <Department>());
        }
Пример #17
0
        public void Get_All_Member_Metadata_Expression()
        {
            ITableBuilder tableBuilder = new TableBuilder()
                                         .AddProcessor(new DefaultMetadataProcessor());

            tableBuilder.Add <Person>()
            .AddMetadata(x => x.Id, "Id1", "Id1_Person")
            .AddMetadata(x => x.Id, "Id2", "Id2_Person")
            .AddMetadata(x => x.Guid, "Guid1", "Guid1_Person")
            .AddMetadata(x => x.Guid, "Guid2", "Guid2_Person");

            tableBuilder.Add <Department>()
            .AddMetadata(x => x.Id, "Id1", "Id1_Department")
            .AddMetadata(x => x.Id, "Id2", "Id2_Department")
            .AddMetadata(x => x.Guid, "Guid1", "Guid1_Department")
            .AddMetadata(x => x.Guid, "Guid2", "Guid2_Department");

            IEngine engine = new Engine(tableBuilder);

            Assert.Equal(new Dictionary <string, object>
            {
                ["Id1"] = "Id1_Person",
                ["Id2"] = "Id2_Person"
            }, engine.GetInfo <Person>().GetMetadata(x => x.Id));

            Assert.Equal(new Dictionary <string, object>
            {
                ["Guid1"] = "Guid1_Person",
                ["Guid2"] = "Guid2_Person"
            }, engine.GetInfo <Person>().GetMetadata(x => x.Guid));

            Assert.Equal(new Dictionary <string, object>
            {
                ["Id1"] = "Id1_Department",
                ["Id2"] = "Id2_Department"
            }, engine.GetInfo <Department>().GetMetadata(x => x.Id));

            Assert.Equal(new Dictionary <string, object>
            {
                ["Guid1"] = "Guid1_Department",
                ["Guid2"] = "Guid2_Department"
            }, engine.GetInfo <Department>().GetMetadata(x => x.Guid));

            Assert.Equal(new Dictionary <string, object>(), engine.GetInfo <Person>().GetMetadata(x => x.Name));
            Assert.Equal(new Dictionary <string, object>(), engine.GetInfo <Department>().GetMetadata(x => x.Name));
        }
Пример #18
0
        public void Get_Column_Name_Expression_Property_Not_Registered()
        {
            ITableBuilder tableBuilder = new TableBuilder();

            tableBuilder.Add <Person>();

            IEngine engine = new Engine(tableBuilder);

            Exception ex = Assert.Throws <InvalidConfigurationException>(() =>
                                                                         engine.GetInfo <Person>().GetColumnName(x => x.FullName));

            Assert.Equal($"The property \"FullName\" for type \"{typeof(Person)}\" is not registered.", ex.Message);
        }
Пример #19
0
        public void Get_Column_Name_Expression()
        {
            ITableBuilder tableBuilder = new TableBuilder();

            tableBuilder.Add <Person>()
            .ColumnName(x => x.Id, "Id2")
            .ColumnName(x => x.Address.Street, "Street2")
            .ColumnName(x => x.Department.Id, "DepartmentId2");

            tableBuilder.Add <Department>()
            .ColumnName(x => x.Id, "Id3")
            .ColumnName(x => x.Boss.Id, "BossId3");

            IEngine engine = new Engine(tableBuilder);

            Assert.Equal("Id2", engine.GetInfo <Person>().GetColumnName(x => x.Id));
            Assert.Equal("Street2", engine.GetInfo <Person>().GetColumnName(x => x.Address.Street));
            Assert.Equal("DepartmentId2", engine.GetInfo <Person>().GetColumnName(x => x.Department.Id));

            Assert.Equal("Id3", engine.GetInfo <Department>().GetColumnName(x => x.Id));
            Assert.Equal("BossId3", engine.GetInfo <Department>().GetColumnName(x => x.Boss.Id));
        }
Пример #20
0
partial         void OnTemplate(AdministrationSimpleListTemplate template, ControllerContext controllerContext)
        {
            var tableBuilder = new TableBuilder<ExceptionLog>();
            template.GlobalButtons = new List<IClickable>
            {
                new Button(MaintCultureTextResources.Search),
            };
            template.Table = tableBuilder
              .Add(tableBuilder.Literal(x => x.CreationTime.Format(), controllerContext), MaintCultureTextResources.ExceptionLogCreationTime, "CreationTime")
              .Add(tableBuilder.Literal(x => x.RouteData.Format(), controllerContext), MaintCultureTextResources.ExceptionLogRouteData, "RouteData")
              .Add(tableBuilder.Literal(x => x.Exception.Format(), controllerContext), MaintCultureTextResources.ExceptionLogException, "Exception")
              .Build();
        }
        public void Not_Exists_Property()
        {
            TableBuilder tableBuilder = new TableBuilder();

            Exception ex = Assert.Throws <ArgumentException>(() =>
            {
                tableBuilder.Add <Person>()
                .PrimaryKey("Other");
            });

            Assert.Equal($"The type \"{typeof(Person)}\" does not have property \"Other\".{Environment.NewLine}"
                         + "Parameter name: propertyName", ex.Message);
        }
Пример #22
0
        public void Get_Table_Metadata()
        {
            ITableBuilder tableBuilder = new TableBuilder()
                                         .AddProcessor(new DefaultMetadataProcessor());

            tableBuilder.Add <Person>()
            .AddTableMetadata("Key1", "Val1_Person")
            .AddTableMetadata("Key2", "Val2_Person");

            tableBuilder.Add <Department>()
            .AddTableMetadata("Key1", "Val1_Department")
            .AddTableMetadata("Key2", "Val2_Department");

            IEngine engine = new Engine(tableBuilder);

            Assert.Equal("Val1_Person", engine.GetInfo <Person>().GetTableMetadata("Key1"));
            Assert.Equal("Val2_Person", engine.GetInfo <Person>().GetTableMetadata("Key2"));

            Assert.Equal("Val1_Department", engine.GetInfo <Department>().GetTableMetadata("Key1"));
            Assert.Equal("Val2_Department", engine.GetInfo <Department>().GetTableMetadata("Key2"));

            Assert.Null(engine.GetInfo <Person>().GetTableMetadata("Key3"));
            Assert.Null(engine.GetInfo <Department>().GetTableMetadata("Key3"));
        }
partial         void OnTemplate(AdministrationSimpleListTemplate template, ControllerContext controllerContext)
        {
            var urlHelper = new UrlHelper(controllerContext.RequestContext);
            template.GlobalButtons = new List<IClickable>
            {
                new Button(MaintCultureTextResources.Search),
                new Button(MaintCultureTextResources.Delete, "Delete"),
            };
            var tableBuilder = new TableBuilder<UserLoginFailedLog>();
            template.Table = tableBuilder
                .Add(tableBuilder.CheckBox(x => x.UserLoginFailedLogId.Format(), controllerContext, name: "ids"), "", "UserLoginFailedLogId")
                .Add(x => new Link(x.Target.User.UserName, urlHelper.Action("Edit", "User", new { id = x.Target.UserId })), MaintCultureTextResources.UserLoginFailedLogUser, "CreateTime")
                .Add(tableBuilder.Literal(x => x.IpAddress.Format(), controllerContext), MaintCultureTextResources.UserLoginFailedLogIpAddress, "IpAddress")
                .Add(tableBuilder.Literal(x => x.CreationTime.Format(), controllerContext), MaintCultureTextResources.UserLoginFailedLogCreateTime, "CreateTime")
                .Build();
        }
Пример #24
0
partial         void OnTemplate(AdministrationSimpleListTemplate template, ControllerContext controllerContext)
        {
            var urlHelper = new UrlHelper(controllerContext.RequestContext);
            template.GlobalButtons = new List<IClickable>
            {
                new Button(MaintCultureTextResources.Search),
                new Button(MaintCultureTextResources.Abort, "Abort"),
            };
            var tableBuilder = new TableBuilder<SystemJob>();
            template.Table = tableBuilder
                .Add(tableBuilder.CheckBox(x => x.SystemJobId.Format(), controllerContext, name: "ids"), "")
                .Add(tableBuilder.Literal(x => x.Title.Format(), controllerContext), MaintCultureTextResources.SystemJobTitle, "Title")
                .Add(tableBuilder.Literal(x => x.StartTime.Format(), controllerContext), MaintCultureTextResources.SystemJobStartTime, "StartTime")
                .Add(tableBuilder.Literal(x => x.ExecuteTime.Format(), controllerContext), MaintCultureTextResources.SystemJobExecuteTime, "ExecuteTime")
                .Add(tableBuilder.Literal(x => x.Status.Format(), controllerContext), MaintCultureTextResources.SystemJobStatus, "Status")
                .Add(tableBuilder.Literal(x => x.Result.Format(), controllerContext), MaintCultureTextResources.SystemJobResult, "Result")
                .Add(tableBuilder.Literal(x => x.CreationTime.Format(), controllerContext), MaintCultureTextResources.SystemJobCreationTime, "CreationTime")
                .Build();
        }
Пример #25
0
partial         void OnTemplate(AdministrationSimpleListTemplate template, ControllerContext controllerContext)
        {
            var urlHelper = new UrlHelper(controllerContext.RequestContext);
            template.GlobalButtons = new List<IClickable>
            {
                new Button(MaintCultureTextResources.Search ),
                new Link(MaintCultureTextResources.New, urlHelper.Action("Create", "CultureText", new {cultureId = this.Culture}), LinkStyle.Button),
                new Button(MaintCultureTextResources.Delete, "Delete"),
                new Link(MaintCultureTextResources.Import, urlHelper.Action("Import", "CultureText", new {cultureId=this.Culture}), LinkStyle.Button),
            };
            var tableBuilder = new TableBuilder<CultureText>();
            template.Table = tableBuilder
                .Add(tableBuilder.CheckBox(x => x.CultureTextId.Format(), controllerContext, name: "ids"), "", "CultureTextId")
                .Add(tableBuilder.Literal(x => x.Name.Format(), controllerContext), MaintCultureTextResources.AdminUserUserName, "CultureTextName")
                .Add(tableBuilder.Literal(x => x.Text.Format(), controllerContext), MaintCultureTextResources.AdminUserLoginName, "CultureTextText")
                .Add(tableBuilder.Literal(x => x.IsEdited.Format(), controllerContext), MaintCultureTextResources.AdminUserGender, "CultureTextIsEdited")
                .Add(x => new ControlCollection(
                    new Link(MaintCultureTextResources.Edit, urlHelper.Action("Edit", "CultureText", new { id = x.Target.CultureTextId }), LinkStyle.Normal)
                    ), MaintCultureTextResources.Operation).Build();
        }
Пример #26
0
        public void Get_Member_Metadata_Expression_Default_Value()
        {
            ITableBuilder tableBuilder = new TableBuilder()
                                         .AddProcessor(new DefaultMetadataProcessor());

            tableBuilder.Add <Person>()
            .AddMetadata(x => x.Id, "Id_Int", 1)
            .AddMetadata(x => x.Id, "Id_Bool", true)
            .AddMetadata(x => x.Id, "Id_String", "Id_Person");

            IEngine engine = new Engine(tableBuilder);

            Assert.Equal(1, engine.GetInfo <Person>().GetMetadata(x => x.Id, "Id_Int", 0));
            Assert.True(engine.GetInfo <Person>().GetMetadata(x => x.Id, "Id_Bool", false));
            Assert.Equal("Id_Person", engine.GetInfo <Person>().GetMetadata <string>(x => x.Id, "Id_String", null));

            Assert.Equal(1, engine.GetInfo <Person>().GetMetadata(x => x.Id, "Id_Int2", 1));
            Assert.Equal(1, engine.GetInfo <Person>().GetMetadata <int?>(x => x.Id, "Id_Int2", 1));

            Assert.True(engine.GetInfo <Person>().GetMetadata(x => x.Id, "Id_Bool2", true));
            Assert.True(engine.GetInfo <Person>().GetMetadata <bool?>(x => x.Id, "Id_Bool2", true));

            Assert.Equal("Default", engine.GetInfo <Person>().GetMetadata(x => x.Id, "Id_String2", "Default"));
        }
Пример #27
0
        public void Get_Member_Metadata_Cast()
        {
            ITableBuilder tableBuilder = new TableBuilder()
                                         .AddProcessor(new DefaultMetadataProcessor());

            tableBuilder.Add <Person>()
            .AddMetadata(x => x.Id, "Id_Int", 1)
            .AddMetadata(x => x.Id, "Id_Bool", true)
            .AddMetadata(x => x.Id, "Id_String", "Id_Person");

            IEngine engine = new Engine(tableBuilder);

            Assert.Equal(1, engine.GetInfo(typeof(Person)).GetMetadata <int>("Id", "Id_Int"));
            Assert.True(engine.GetInfo(typeof(Person)).GetMetadata <bool>("Id", "Id_Bool"));
            Assert.Equal("Id_Person", engine.GetInfo(typeof(Person)).GetMetadata <string>("Id", "Id_String"));

            Assert.Equal(0, engine.GetInfo(typeof(Person)).GetMetadata <int>("Id", "Id_Int2"));
            Assert.Null(engine.GetInfo(typeof(Person)).GetMetadata <int?>("Id", "Id_Int2"));

            Assert.False(engine.GetInfo(typeof(Person)).GetMetadata <bool>("Id", "Id_Bool2"));
            Assert.Null(engine.GetInfo(typeof(Person)).GetMetadata <bool?>("Id", "Id_Bool2"));

            Assert.Null(engine.GetInfo(typeof(Person)).GetMetadata <string>("Id", "Id_String2"));
        }