/// <summary> /// Initializes a new instance of the <see cref="TestViewerViewModel" /> class. /// </summary> /// <param name="test">The test.</param> public TestViewerViewModel(DatabaseTest test) { _test = test; _testName = test.Name; _testType = test.TestType; Resolution = test.Resolution; PluginSettings = test.PluginSettings; TenantColumn = test.TenantColumn; OkCommand = new DelegateCommand <Window>(OnOkClick); CopyCommand = new DelegateCommand <FailureRow>(OnCopyClick); DeleteCommand = new DelegateCommand(OnDeleteClick); SaveCommand = new DelegateCommand(OnSaveClick); RerunCommand = new DelegateCommand(OnRerunClick); Columns = new List <string>( ); SetTestResult(test.Failures); }
/// <summary> /// Loads the tests. /// </summary> private void LoadTests( ) { var location = Assembly.GetExecutingAssembly( ).Location; string path = Path.GetDirectoryName(location); if (path != null) { path = Path.Combine(path, "DatabaseTests.xml"); if (!File.Exists(path)) { MessageBox.Show("No database tests defined."); return; } var doc = new XmlDocument( ); doc.Load(path); var testNodes = doc.SelectNodes("/tests/test"); var tests = new List <DatabaseTest>( ); if (testNodes != null) { foreach (XmlNode testNode in testNodes) { var test = new DatabaseTest(PluginSettings, tests); if (testNode.Attributes != null) { test.Name = GetAttributeValue(testNode, "name", "Unnamed"); test.Description = GetAttributeValue(testNode, "description", string.Empty); test.TestType = GetAttributeValue(testNode, "type", "info"); var entityColumns = testNode.Attributes["entityColumns"]; if (entityColumns != null) { test.EntityColumns = entityColumns.Value; } var hiddenColumns = testNode.Attributes["hiddenColumns"]; if (hiddenColumns != null) { test.HiddenColumns = hiddenColumns.Value; } var tenantColumn = testNode.Attributes ["tenantColumn"]; int tenantColumnVal; if (tenantColumn != null && int.TryParse(tenantColumn.Value, out tenantColumnVal)) { test.TenantColumn = tenantColumnVal; } var queryNode = testNode.SelectSingleNode("query"); if (queryNode?.FirstChild != null) { test.Query = queryNode.FirstChild.Value; } var resolutionNode = testNode.SelectSingleNode("resolution"); if (resolutionNode?.FirstChild != null) { test.Resolution = resolutionNode.FirstChild.Value; } tests.Add(test); } } } Tests = tests.OrderBy(t => t.TestType).ThenBy(t => t.Name).ToList( ); } }