Exemple #1
0
        protected virtual void RegisterServices(IKernel kernel)
        {
            var stringNormalizer = new StringNormalizer(Path.Combine(rootPath, "PersianCharsMap.json"));

            kernel.Bind <IStringNormalizer>().ToConstant(stringNormalizer);

            var db = new MongoDbContext(ConfigurationManager.AppSettings["DBName"], ConfigurationManager.AppSettings["MongoConnString"],
                                        getUsernameFunc: () => HttpContext.Current?.User?.Identity?.Name,
                                        objectPreprocessor: stringNormalizer,
                                        setDictionaryConventionToArrayOfDocuments: ConfigurationManager.AppSettings["setDictionaryConventionToArrayOfDocuments"] == "true",
                                        customConnections: GetCustomConnections());

            db.DefaultPreprocess = true;
            kernel.Bind <IDbContext>().ToConstant(db);
            kernel.Bind <IReadOnlyDbContext>().ToConstant(db);

            DataTableFactory tableFactory = new DataTableFactory(db);

            kernel.Bind <DataTableFactory>().ToConstant(tableFactory).InSingletonScope();

            string provincePrefix = ConfigurationManager.AppSettings["Province"];

            if (provincePrefix != null)
            {
                var province = db.FindFirst <Province>(p => p.Prefix == provincePrefix);
                kernel.Bind <Province>().ToConstant(province);
            }
        }
Exemple #2
0
        public TestBase()
        {
            var    config = new ConfigurationBuilder().AddJsonFile("TPH.Chariot.Database.Test.config.json").Build();
            string sqlServerInstanceName = config["SQLServerInstanceName"];

            _databaseName = config["DatabaseName"];
            string userName = config["UserName"];
            string password = config["Password"];

            DataPortal = new DataPortal(sqlServerInstanceName: sqlServerInstanceName,
                                        databaseName: _databaseName,
                                        userName: userName,
                                        password: password);

            DataTableFactory         = new DataTableFactory();
            DatabaseBackupFolderPath = config["DatabaseBackupFolderPath"];

            SqlConnectionStringBuilder csb = new SqlConnectionStringBuilder()
            {
                DataSource     = sqlServerInstanceName,
                InitialCatalog = "master",
            };

            if (string.IsNullOrWhiteSpace(userName))
            {
                csb.IntegratedSecurity = true;
            }
            else
            {
                csb.UserID   = userName;
                csb.Password = password;
            }

            _connnectionString = csb.ConnectionString;
        }
Exemple #3
0
        public void CreateValidAccounts()
        {
            RunTestMethod(() => {
                // Add customer records
                IDataPortalResult result    = null;
                DataTable customerDataTable = DataTableFactory.Customer();

                customerDataTable.AddCustomerRow(code: "AAA");
                customerDataTable.AddCustomerRow(code: "BBB");

                result = DataPortal.Persist__Customer(customerDataTable);

                // Add account records for each customer
                DataTable accountDataTable = DataTableFactory.Account();

                long customerID = (long)customerDataTable.Rows[0]["CustomerID"];
                accountDataTable.AddAccountRow(customerID: customerID, code: "AAA");
                accountDataTable.AddAccountRow(customerID: customerID, code: "BBB");

                customerID = (long)customerDataTable.Rows[1]["CustomerID"];
                accountDataTable.AddAccountRow(customerID: customerID, code: "AAA");
                accountDataTable.AddAccountRow(customerID: customerID, code: "BBB");

                result = DataPortal.Persist__Account(accountDataTable);

                // Assertions
                Assert.True(result.OK, $"Database operation returned error: {result.FirstErrorMessage}");
                Assert.Equal(4, result.RowsUpdated);
            });
        }
            public InformationSchemaProvider(IUnityContainer container, DataTableFactory dataTableFactory)
                : base(container)
            {
                ArgumentUtility.CheckNotNull("dataTableFactory", dataTableFactory);

                this._dataTableFactory = dataTableFactory;
            }
        public void ToObjects_DataTableWithManyRowsMatchingColumns_ReturnsEnumerableWithCorrectResult()
        {
            const int rows = 1000;

            List <SimpleNoIdNoAttributes> objects = new List <SimpleNoIdNoAttributes>(capacity: rows);

            for (int i = 0; i < rows; i++)
            {
                objects.Add(new SimpleNoIdNoAttributes
                {
                    PropertyOne = i + 1,
                    PropertyTwo = "Property" + i
                });
            }

            var mappings = MappingHelper.CreatePropertyMappingsDirectlyMatchingObject <SimpleNoIdNoAttributes>();

            DataTable dt = DataTableFactory.GenerateDataTableFilledWithObjects <SimpleNoIdNoAttributes>(objects);

            foreach (var mapping in mappings)
            {
                mapping.ColumnIndex = dt.Columns.IndexOf(mapping.FieldName);
            }

            var results = dataTableResolver.ToObjects <SimpleNoIdNoAttributes>(DataTableFactory.RowsForTable(dt), dataTypeConverter, mappings, dataTableParserSettings);

            Assert.True(results.Count == rows);
        }
Exemple #6
0
        public void VerifyPaging_DefaultValues()
        {
            // Arrange
            var smartObject = SmartObjectFactory.GetSmartObject(SmartObjectOption.ProcessInfo);

            smartObject.MethodToExecute = smartObject.Methods[0].Name;

            DataTable dataTable1 = DataTableFactory.GetDataTableWithOneColumnAndOneRow();

            SmartObjectClientServer server = null;

            MockWrapperFactory.Instance.SmartObjectClientServer
            .Setup(x => x.ExecuteListDataTable(
                       It.IsAny <SmartObject>(),
                       It.IsAny <ExecuteListOptions>()))
            .Returns(dataTable1);

            MockWrapperFactory.Instance.SmartObjectClientServer
            .Setup(x => x.ExecuteListReader(
                       It.IsAny <SmartObject>(),
                       It.IsAny <ExecuteListReaderOptions>()))
            .Returns(default(SmartObjectReader));

            // Action
            SmartObjectHelper.VerifyPaging(server, smartObject, 0);
        }
Exemple #7
0
        public void GetPropertyMappings_DataTableWithUnnamedColumns_ReturnsEmptyCollection()
        {
            DataTable dt = DataTableFactory.GenerateEmptyDataTableWithStringColumns(null);

            ICollection <ExtendedPropertyInfo> results = defaultMappingResolver.GetPropertyMappings <SimpleNoIdNoAttributes>(dt, defaultDataTableParserSettings);

            Assert.True(results.Count == 0);
        }
Exemple #8
0
        public void CompareDataTables()
        {
            // Arrange
            DataTable dataTable1 = DataTableFactory.GetDataTableWithOneColumnAndOneRow();

            // Action
            SmartObjectHelper.CompareDataTables(dataTable1, dataTable1.DefaultView.ToTable());
        }
Exemple #9
0
        public void GetPropertyMappings_OnePropertyWithMatchingColumn_ReturnsCollectionWithOneResult()
        {
            DataTable dt = DataTableFactory.GenerateEmptyDataTableWithStringColumns("PropertyOne");

            ICollection <ExtendedPropertyInfo> results = defaultMappingResolver.GetPropertyMappings <SimpleOnePropertyNoIdNoAttributes>(dt, defaultDataTableParserSettings);

            Assert.True(results.Count == 1);
        }
Exemple #10
0
        public void GetPropertyMappings_TwoAttributesWithMatchingColumns_ReturnsAllResults()
        {
            DataTable dt = DataTableFactory.GenerateEmptyDataTableWithStringColumns("Prop1", "Prop2");

            var results = defaultMappingResolver.GetPropertyMappings <SimpleClassWithAttributes>(dt, defaultDataTableParserSettings);

            Assert.True(results.Length == 2);
        }
Exemple #11
0
        public void GetPropertyMappings_TwoPropertiesWithMatchingColumns_ReturnsCollectionWithTwoResults(string column1, string column2)
        {
            DataTable dt = DataTableFactory.GenerateEmptyDataTableWithStringColumns(column1, column2);

            var results = defaultMappingResolver.GetPropertyMappings <SimpleNoIdNoAttributes>(dt, defaultDataTableParserSettings);

            Assert.True(results.Length == 2);
        }
Exemple #12
0
        public void HasRoleはInitializeで指定されたテストケースにパラメタセクションがなければfalseを返す()
        {
            // setup
            Sheet            sheet   = TempActors.Book.GetSheet("HasRole");
            DataTableFactory factory = GetDataTableFactory(sheet.GetCase("ロールなし"));

            // expect
            Assert.IsFalse(factory.HasRole <object>(null));
        }
Exemple #13
0
        public void HasRoleは引数のクラスがDictionaryでなければfalseを返す()
        {
            // setup
            Sheet            sheet   = TempActors.Book.GetSheet("HasRole");
            DataTableFactory factory = GetDataTableFactory(sheet.GetCase("ロールあり"));

            // expect
            Assert.IsFalse(factory.HasRole <object>(null));
        }
Exemple #14
0
        public void HasRoleは引数のクラスがDataTableでありかつInitializeで指定されたテストケースにパラメタセクションがあればtrueを返す()
        {
            // setup
            Sheet            sheet   = TempActors.Book.GetSheet("HasRole");
            DataTableFactory factory = GetDataTableFactory(sheet.GetCase("ロールあり"));

            // expect
            Assert.IsTrue(factory.HasRole <DataTable>(null));
        }
Exemple #15
0
        public void GetPropertyMappings_TwoPropertiesOneMatching_ThrowsMissingMappingException()
        {
            DataTable dt = DataTableFactory.GenerateEmptyDataTableWithStringColumns("PropertyOne");

            DataTableParserSettings dtps = new DataTableParserSettings {
                MissingMappingHandling = MissingMappingHandling.Error
            };

            Assert.Throws(typeof(MissingMappingException <SimpleNoIdNoAttributes>), () => defaultMappingResolver.GetPropertyMappings <SimpleNoIdNoAttributes>(dt, dtps));
        }
Exemple #16
0
        public void GetPropertyMappings_MappedClassHasNoProperties_ReturnsEmptyCollection()
        {
            string anyName = "random name";

            DataTable dt = DataTableFactory.GenerateEmptyDataTableWithStringColumns(anyName);

            ICollection <ExtendedPropertyInfo> results = defaultMappingResolver.GetPropertyMappings <SimpleNoProperties>(dt, defaultDataTableParserSettings);

            Assert.True(results.Count == 0);
        }
            public Provider(DataTableFactory dataTableFactory, Func <string, string> getQuotedName = null)
            {
                ArgumentUtility.CheckNotNull("dataTableFactory", dataTableFactory);

                this._dataTableFactory = dataTableFactory;

                if (getQuotedName != null)
                {
                    this._getQuotedName = getQuotedName;
                }
            }
        public void GenerateGetAssertHasValue_WithEmptyValue()
        {
            //Arrange
            var dataTable = DataTableFactory.GetDataTableWithOneColumnAndOneRow(string.Empty);

            // Action
            var actual = DataTableExtensions.GenerateGetAssertHasValue(dataTable);

            // Assert
            Assert.AreEqual($"// Empty values\r\n//row.AssertHasValue<String>(\"{dataTable.Columns[0].ColumnName}\");\r\n", actual);
        }
Exemple #19
0
        public void GetPropertyMappings_TwoAttributesWithOneMatchingColumnErrorOnMissingMapping_ThrowsMissingMappingException()
        {
            DataTable dt = DataTableFactory.GenerateEmptyDataTableWithStringColumns("prop1", "PropertyTwo");

            DataTableParserSettings dtps = new DataTableParserSettings
            {
                MissingMappingHandling = MissingMappingHandling.Error,
                MappingMatchOrder      = MappingMatchOrder.IgnorePropertyNames
            };

            Assert.Throws(typeof(MissingMappingException <SimpleClassWithAttributes>), () => defaultMappingResolver.GetPropertyMappings <SimpleClassWithAttributes>(dt, dtps));
        }
Exemple #20
0
        public void GetPropertyMappings_OneIdClassNameMappingCaseVaries_ReturnsResults()
        {
            string[] columns = { typeof(SimpleIdNoAttributes).Name + "iD", "PropertyOne" };

            DataTable dt = DataTableFactory.GenerateEmptyDataTableWithStringColumns(columns);

            var results = defaultMappingResolver.GetPropertyMappings <SimpleIdNoAttributes>(dt, defaultDataTableParserSettings);

            Assert.True(results.Length == 2);

            Assert.True(results.Select(r => r.PropertyInfo.Name).Contains("Id", StringComparer.InvariantCultureIgnoreCase));
        }
Exemple #21
0
        public void GetPropertyMappings_TwoPropertiesOneMatching_MissingMappingHandlingIgnores()
        {
            DataTable dt = DataTableFactory.GenerateEmptyDataTableWithStringColumns("PropertyOne");

            DataTableParserSettings dtps = new DataTableParserSettings {
                MissingMappingHandling = MissingMappingHandling.Ignore
            };

            var results = defaultMappingResolver.GetPropertyMappings <SimpleNoIdNoAttributes>(dt, dtps);

            Assert.True(results.Length == 1);
        }
Exemple #22
0
        private string Biuder()
        {
            var table = new DataTableFactory().CreateDataTable(_dataTableConfig.TableClassName, _tableId);
            //table标签
            var tableStr = table.Render();
            //外层DIV
            var divBuilder = new TagBuilder("div");

            divBuilder.AddCssClass(_dataTableConfig.DivClassName);
            divBuilder.InnerHtml = tableStr;
            return(divBuilder.ToString());
        }
Exemple #23
0
        public void GetPropertyMappings_OnePropertyWithMatchingColumn_ReturnsCollectionWithCorrectResult()
        {
            DataTable dt = DataTableFactory.GenerateEmptyDataTableWithStringColumns("PropertyOne");

            ICollection <ExtendedPropertyInfo> results = defaultMappingResolver.GetPropertyMappings <SimpleOnePropertyNoIdNoAttributes>(dt, defaultDataTableParserSettings);

            ExtendedPropertyInfo propInfo = results.First();

            Assert.True(propInfo.FieldName == "PropertyOne");

            Assert.True(propInfo.ColumnIndex == 0);
        }
Exemple #24
0
        public void CreateCustomersWithSameName()
        {
            RunTestMethod(() => {
                DataTable customerDataTable = DataTableFactory.Customer(includeConstraints: false);

                customerDataTable.AddCustomerRow(code: "AAA", customer: "AAA");
                customerDataTable.AddCustomerRow(code: "BBB", customer: "AAA");

                IDataPortalResult result = DataPortal.Persist__Customer(customerDataTable);

                Assert.False(result.OK);
            });
        }
        public void ToObjects_DataTableWithIncorrectColumnIndexButCorrectColumn_ReturnsCorrectResult(int propertyOne, string propertyTwo)
        {
            DataTable dt = DataTableFactory.GenerateEmptyDataTableMatchingObjectProperties <SimpleNoIdNoAttributes>();

            dt.Rows.Add(propertyOne, propertyTwo);

            var mappings = MappingHelper.CreatePropertyMappingsMatchingTable <SimpleNoIdNoAttributes>(dt);

            var results = dataTableResolver.ToObjects <SimpleNoIdNoAttributes>(DataTableFactory.RowsForTable(dt), dataTypeConverter, mappings, dataTableParserSettings);

            Assert.Equal(GetAssertObject <int>(propertyOne), results.First().PropertyOne);
            Assert.Equal(GetAssertObject <string>(propertyTwo), results.First().PropertyTwo);
        }
Exemple #26
0
        public void GetPropertyMappings_ClassWithInheritedProperties_OnlyReturnsImmediateProperties()
        {
            string[] columns = { "ParentIntProperty", "ParentStringProperty", "ChildIntProperty", "ChildStringProperty" };

            DataTable dt = DataTableFactory.GenerateEmptyDataTableWithStringColumns(columns);

            DataTableParserSettings dtps = new DataTableParserSettings {
                InheritMappings = false
            };

            var results = defaultMappingResolver.GetPropertyMappings <ChildNoAttributes>(dt, dtps);

            Assert.True(results.Length == 2);
        }
Exemple #27
0
        public void GetPropertyMappings_ClassWithTwoLevelsOfInheritance_ReturnsAllResults()
        {
            string[] columns = { "ParentIntProperty", "ParentStringProperty", "ChildIntProperty", "ChildStringProperty", "LeafIntProperty" };

            DataTable dt = DataTableFactory.GenerateEmptyDataTableWithStringColumns(columns);

            DataTableParserSettings dtps = new DataTableParserSettings {
                InheritMappings = true
            };

            var results = defaultMappingResolver.GetPropertyMappings <LeafClassNoAttributes>(dt, dtps);

            Assert.True(results.Length == 5);
        }
Exemple #28
0
        public void CreateValidCustomers()
        {
            RunTestMethod(() => {
                DataTable customerDataTable = DataTableFactory.Customer();

                customerDataTable.AddCustomerRow(code: "AAA");
                customerDataTable.AddCustomerRow(code: "BBB");

                IDataPortalResult result = DataPortal.Persist__Customer(customerDataTable);

                Assert.True(result.OK, $"Database operation returned error: {result.FirstErrorMessage}");
                Assert.Equal(2, result.RowsUpdated);
            });
        }
Exemple #29
0
        public void GetPropertyMappings_TwoAttributesWithOneMatchingColumnAndPropertyMatch_ReturnsResults()
        {
            DataTable dt = DataTableFactory.GenerateEmptyDataTableWithStringColumns("prop1", "PropertyTwo");

            DataTableParserSettings dtps = new DataTableParserSettings
            {
                MissingMappingHandling = MissingMappingHandling.Error,
                MappingMatchOrder      = MappingMatchOrder.PropertyNameFirst
            };

            var results = defaultMappingResolver.GetPropertyMappings <SimpleClassWithAttributes>(dt, dtps);

            Assert.True(results.Length == 2);
        }
        public void GetCondition_WithReturnFalseValue()
        {
            //Arrange
            var expectedValue = Guid.NewGuid().ToString();
            var dataTable     = DataTableFactory.GetDataTableWithOneColumnAndOneRow(expectedValue);

            int pageNumber = 2;
            int pageSize   = 2;

            // Action
            var actual = DataTableExtensions.GetCondition(dataTable, pageNumber, pageSize);

            // Assert
            Assert.IsFalse(actual);
        }