public void Setup() { this.objA = new GenericDomain<int[,]> { GenericProp = this.CreateArray() }; this.objB = new GenericDomain<int[,]> { GenericProp = this.CreateArray() }; this.comparator = new ObjectComparator<GenericDomain<int[,]>>(); }
} // _Ordered_Comparer_impl_ class public static DataSet getOrdered(DataSet dataSet, params OrderByItem[] orderByItems) { List <Row> values = new List <Row>(); IComparer <Row> valueComparator = null; if (orderByItems != null && orderByItems.Length != 0) { int[] sortIndexes = new int[orderByItems.Length]; for (int i = 0; i < orderByItems.Length; i++) { OrderByItem item = orderByItems[i]; int index_of = dataSet.indexOf(item.getSelectItem()); sortIndexes[i] = index_of; } values = readDataSetFull(dataSet); if (values.IsEmpty()) { return(new EmptyDataSet(dataSet.getSelectItems())); } valueComparator = ObjectComparator.getComparator(); // create a comparator for doing the actual sorting/ordering IComparer <Row> comparator = new _Ordered_Comparer_impl_(valueComparator, orderByItems); } values.Sort(valueComparator); // Collections.sort(data, comparator); dataSet = new InMemoryDataSet(values); return(dataSet); } // getOrdered()
public static void Show() { A a = new A(); B b = new B(); A a1 = new A(); Console.WriteLine(ObjectComparator <A> .CompareProperties(a, b)); Console.WriteLine(ObjectComparator <A> .CompareProperties(b, a)); Console.WriteLine(ObjectComparator <A> .CompareProperties(a, a1)); }
public void ThenShouldSucceedIfCollectionsAreEqual() { var objA = new[] {"AAA", "BBB"}; var objB = new[] {"AAA", "BBB"}; var comparator = new ObjectComparator<string[]>(); var result = comparator.Compare(objA, objB); result.AreSame.Should().BeTrue(); }
private bool compare(Object selectItemValue, Object operandValue) { IComparer <Object> comparator = ObjectComparator.getComparator(); if (_operator == OperatorType.DIFFERENT_FROM) { return(comparator.Compare(selectItemValue, operandValue) != 0); } else if (_operator == OperatorType.EQUALS_TO) { return(comparator.Compare(selectItemValue, operandValue) == 0); } else if (_operator == OperatorType.GREATER_THAN) { return(comparator.Compare(selectItemValue, operandValue) > 0); } else if (_operator == OperatorType.GREATER_THAN_OR_EQUAL) { return(comparator.Compare(selectItemValue, operandValue) >= 0); } else if (_operator == OperatorType.LESS_THAN) { return(comparator.Compare(selectItemValue, operandValue) < 0); } else if (_operator == OperatorType.LESS_THAN_OR_EQUAL) { return(comparator.Compare(selectItemValue, operandValue) <= 0); } else if (_operator == OperatorType.LIKE) { //WildcardPattern matcher = new WildcardPattern((String)operandValue, '%'); //return matcher.matches((String)selectItemValue); return(false); } else if (_operator == OperatorType.NOT_LIKE) { //WildcardPattern matcher = new WildcardPattern((String)operandValue, '%'); //return !matcher.matches((String)selectItemValue); return(false); } else if (_operator == OperatorType.IN) { HashSet <object> inValues = getInValues(); return(inValues.Contains(selectItemValue)); } else if (_operator == OperatorType.NOT_IN) { HashSet <object> inValues = getInValues(); return(!inValues.Contains(selectItemValue)); } else { throw new InvalidOperationException("Operator could not be determined"); } }
public void ThenShouldSucceedIfCollectionsDiffer() { var objA = new[] { "AAA", "BBB" }; var objB = new[] { "AAA", "CCC" }; var comparator = new ObjectComparator<string[]>(); var result = comparator.Compare(objA, objB); result.AreSame.Should().BeFalse(); result.Differences.Single().PropertyPath.Should().Be("[1]"); }
public void Compare() { var obj1 = new ObjectFake(); obj1.name = "ee"; obj1.theDecimal = 10; obj1.objectList = null; obj1.stringList = new List <string>() { "ee" }; var obj2 = new ObjectFake(); obj2.name = "ee"; obj2.theDecimal = 10; obj2.objectList = new List <object>() { new object() }; obj2.stringList = new List <string>() { "ee" }; var objectComparator = new ObjectComparator(); if (objectComparator.AreEqual(obj1, obj2, true) == false) { throw new Exception(); } if (objectComparator.AreEqual(obj1, obj2, false) == true) { throw new Exception(); } var obj3 = new ObjectFake(); obj3.name = "ee"; obj3.theDecimal = 11; obj3.objectList = null; obj3.stringList = new List <string>() { "ee" }; obj2.theDecimal = 11; if (objectComparator.AreEqual(obj1, obj2, true) == true) { throw new Exception(); } }
static void Main(string[] args) { Logger.Info("Starting a Schema comparator application."); List <string> connectionStrings = null; try { if (args.Length == 4) { _settings = new Settings(args[0], args[1], args[2], args[3]); } else { throw new ArgumentOutOfRangeException(); } connectionStrings = Settings.GetDatabaseConnectionStrings(Settings.SettingsObject); } catch (ArgumentOutOfRangeException ex) { Logger.Error(ex, "Invalid arguments count"); Environment.Exit((int)ExitCodes.InvalidArguments); } catch (Exception ex) { Logger.Error(ex, "Unexpected error"); Environment.Exit((int)ExitCodes.UnexpectedError); } Xml xml = new Xml(); // List<string> stringList = new List<string>(); // stringList.Add("Data Source=(LocalDB)\\MSSQLLocalDB;Initial Catalog=DBComparatorTest1;Integrated Security=True"); // stringList.Add("Data Source=(LocalDB)\\MSSQLLocalDB;Initial Catalog=DBComparatorTest2;Integrated Security=True"); // var comparator = new ObjectComparator(stringList.ElementAt(0), stringList.ElementAt(1)); var dbType = BaseDatabase.GetDatabaseType(Settings.SettingsObject.DatabaseConnections.First().DbType); var comparator = new ObjectComparator(connectionStrings.ElementAt(0), connectionStrings.ElementAt(1), dbType); var resultTree = comparator.CompareDatabases(); var resultPath = Settings.SettingsObject.ResultPath; string xmlContent = xml.GetXml(resultTree); xml.SaveResultTree(resultPath, xmlContent); // List of all nodes within a Tree Structure // var listofnodes = Extensions.DepthFirstTraversal(resultTree, r => r.Nodes).ToList(); Logger.Info("Exiting application."); Environment.Exit((int)ExitCodes.Success); }
public void DeployScript(string pathToScript, TestNodes mainTestNode, DatabaseHandler db) { try { var msScriptParser = new MsSqlScriptParser(); var deployTestNode = ObjectComparator.CreateTestNode(new List <TestResult>(), ObjectType.ScriptTests, "Set of tests for Script"); var scriptFromFile = File.ReadAllText(Path.Combine(pathToScript)); var parsedScript = msScriptParser.GetScriptArray(scriptFromFile); var dbCreated = msScriptParser.ExecuteTransactionScript(parsedScript, db.Database); if (dbCreated) { return; } ObjectComparator.AddTestResult($"Creation of Database objects failed. Databaes: {db.Database.ConnectionString}", ErrorTypes.CreationScriptFailed, ObjectType.Script, $"Script: {pathToScript}", deployTestNode.Results); ObjectComparator.SetResultLevel(deployTestNode); mainTestNode.Nodes.Add(deployTestNode); var resultPath = Settings.SettingsObject.ResultPath; Xml xmlCreator = new Xml(); var xmlContent = xmlCreator.GetXml(mainTestNode); xmlCreator.SaveResultTree(resultPath, xmlContent); Environment.Exit((int)ExitCodes.ScriptFailed); } catch (IOException ex) { Logger.Error(ex, "Unable to finish script file."); Environment.Exit((int)ExitCodes.ScriptFailed); } catch (Exception ex) { Logger.Error(ex, "Error when executing script file."); Environment.Exit((int)ExitCodes.ScriptFailed); } }
} // getName() // public override Comparator<object> getComparator() public IComparer <object> getComparator() { if (isTimeBased()) { return(TimeComparator.getComparator()); } if (isNumber()) { return(NumberComparator.getComparator()); } if (isLiteral()) { return(ToStringComparator.getComparator()); } return(ObjectComparator.getComparator()); } // getComparator()
public void ThenShouldPassWhenValuesDifferByCaseAndRootPropertyOptionsAreApplied() { var stringComparator = new ObjectComparator<string>(); stringComparator.Root .WithCaseSensitivity(StringComparison.OrdinalIgnoreCase); var result = stringComparator.Compare("AAA", "aaa"); result.AreSame.Should().BeTrue(); }
public void ThenShouldFailWhenExpressionRuleAndNestedPropertyDiffers() { var comparator = new ObjectComparator<HierarchyDomain>(); comparator .Property(x => x.Name) .Ignore(); var objA = new HierarchyDomain { Name = "AAA", ChildNode = new HierarchyDomain { Name = "BBB" } }; var objB = new HierarchyDomain { Name = "AAA", ChildNode = new HierarchyDomain { Name = "CCC" } }; var result = comparator.Compare(objA, objB); result.AreSame.Should().BeFalse(); result.Differences.Single().PropertyPath.Should().Be("ChildNode.Name"); }
public void Setup() { this.comparator = Extensions.CreateComparator<ComplexDomain>(); }
public virtual void Setup() { this.Comparator = Extensions.CreateComparator<SimpleDomain>(); }
public void Setup() { this.objA = new GenericDomain<object>(); this.objB = new GenericDomain<object>(); this.comparator = new ObjectComparator<GenericDomain<object>>(); }
public void Setup() { this.objA = new GenericDomain<int?>(); this.objB = new GenericDomain<int?>(); this.comparator = Extensions.CreateComparator<GenericDomain<int?>>(); }
static void Main(string[] args) { //Create Test Tree var mainTestNode = ObjectComparator.CreateTestNode(new List <TestResult>(), ObjectType.Root, "Root node"); try { if (args.Length == 4 && args[2].ToLower() == "delete") { // Read arguments string connectionString = args[0]; string databaseType = args[1].ToLower(); string resultPath = args[3]; DatabaseType dbType = BaseDatabase.GetDatabaseType(databaseType); _settings = new Settings(connectionString, resultPath, databaseType); try { switch (dbType) { case DatabaseType.SqlServer: var deploy = new MsSqlDeploy(); var connStringBuilder = Settings.GetMsSqlStringBuilder(connectionString); var dbName = connStringBuilder.InitialCatalog; connStringBuilder.Remove("Initial Catalog"); var connStringWithoutCatalog = connStringBuilder.ConnectionString; deploy.DeleteDatabase(dbName, connStringWithoutCatalog, dbType); break; case DatabaseType.MySql: var deploy1 = new MySqlDeploy(); var connStringBuilder1 = Settings.GetMySqlStringBuilder(connectionString); var dbName1 = connStringBuilder1.Database; var connStringWithoutCatalog1 = connStringBuilder1.ConnectionString; deploy1.DeleteDatabase(dbName1, connStringWithoutCatalog1, dbType); break; default: throw new ArgumentOutOfRangeException(); } } catch (ArgumentOutOfRangeException ex) { Logger.Error(ex, $"Unsupported database type {databaseType}"); Environment.Exit((int)ExitCodes.InvalidArguments); } catch (Exception ex) { Logger.Error(ex, $"Unexpected exception occured."); Environment.Exit((int)ExitCodes.UnsupportedDbType); } Environment.Exit((int)ExitCodes.Success); } else if (args.Length == 4) { Logger.Info("Running deploying script task."); // Read arguments string connectionString = args[0]; string databaseType = args[1]; DatabaseType dbType = BaseDatabase.GetDatabaseType(databaseType); string pathToScript = args[2]; string resultPath = args[3]; Logger.Debug($"Arguments passed \narg[0]:{connectionString} \narg[1]:{databaseType} \narg[2]:{pathToScript} \narg[3]:{resultPath}."); _settings = new Settings(connectionString, resultPath, databaseType); try { switch (dbType) { case DatabaseType.SqlServer: var deploy = new MsSqlDeploy(); var connStringBuilder = Settings.GetMsSqlStringBuilder(connectionString); var dbName = connStringBuilder.InitialCatalog; connStringBuilder.Remove("Initial Catalog"); var connStringWithoutCatalog = connStringBuilder.ConnectionString; deploy.DeployDatabase(mainTestNode, connectionString, dbName, connStringWithoutCatalog, dbType, pathToScript); break; case DatabaseType.MySql: var deploy1 = new MySqlDeploy(); var connStringBuilder1 = Settings.GetMySqlStringBuilder(connectionString); var dbName1 = connStringBuilder1.Database; connStringBuilder1.Remove("Database"); var connStringWithoutCatalog1 = connStringBuilder1.ConnectionString; deploy1.DeployDatabase(mainTestNode, connectionString, dbName1, connStringWithoutCatalog1, dbType, pathToScript); break; default: throw new ArgumentOutOfRangeException(); } Logger.Info("Task successful."); Environment.Exit((int)ExitCodes.Success); } catch (ArgumentOutOfRangeException ex) { Logger.Error(ex, $"Unsupported database type {databaseType}"); Environment.Exit((int)ExitCodes.InvalidArguments); } catch (Exception ex) { Logger.Error(ex, "Unexpected exception occured."); Environment.Exit((int)ExitCodes.UnexpectedError); } } } catch (Exception ex) { Logger.Error(ex, $"Invalid input argument count [{args.Length}]. Exactly arguments 3 required."); Environment.Exit((int)ExitCodes.InvalidArguments); } }