public void Update() { this.Name = this.ListObject.Name; this.DisplayName = this.Worksheet.Name; if (string.IsNullOrWhiteSpace(this.DataName)) { this.Icon = Properties.Resources.table; this.DataDisplayName = string.Empty; this.ListObject.Comment = string.Empty; } else { this.Icon = Properties.Resources.table_link; Excel.ListObject dataListObject = ListObjectHelper.GetByName(this.Workbook, this.DataName); if (null != dataListObject) { this.DataDisplayName = ListObjectHelper.GetWorksheetName(dataListObject); } else { this.DataDisplayName = string.Empty; } } }
public void Update() { #if DEBUG Log.Logger.DebugFormat("WorkbookContext.Update"); #endif var newest = new Dictionary <string, TestCase>(); foreach (Excel.Worksheet worksheet in this.Workbook.Worksheets) { Excel.ListObject listObject = ListObjectHelper.GetTestCases(worksheet).FirstOrDefault(); if (null == listObject) { continue; } TestCase testCase; string key = listObject.Name; if (this.oldest.ContainsKey(key)) { testCase = this.oldest[key]; testCase.Update(); } else { testCase = new TestCase(this.Workbook, worksheet, listObject); } newest.Add(key, testCase); } var s1 = string.Join(",", this.oldest.Keys); var s2 = string.Join(",", newest.Keys); this.oldest = newest; if (s1 == s2) { return; } try { this.TestCases.RaiseListChangedEvents = false; this.TestCases.Clear(); foreach (var testCase in newest.Values) { this.TestCases.Add(testCase); } } finally { this.TestCases.RaiseListChangedEvents = true; this.TestCases.ResetBindings(); } }
private void recorder_CommandRecording(object sender, Recorder.CommandRecorderEventArgs e) { var testCase = this.GetActiveWorkbookContext().GetActiveTestCase(); Excel.ListObject listObject = testCase.ListObject; Excel.ListRow listRow = ListObjectHelper.GetEmptyRow(listObject); ListRowHelper.Set(listRow, ListRowHelper.ColumnIndex.Command, e.Command); ListRowHelper.Set(listRow, ListRowHelper.ColumnIndex.Target, e.Target); ListRowHelper.Set(listRow, ListRowHelper.ColumnIndex.Value, e.Value); }
public void DeleteEvidenceAll() { DisableScreenUpdating.Invoke(() => { foreach (var testCase in this.TestCases) { testCase.Result = TestResult.None; } List <Excel.Worksheet> deleteTargetWorksheets = new List <Excel.Worksheet>(); foreach (Excel.Worksheet worksheet in this.Workbook.Worksheets) { if (null != ExcelWorksheetCustomPropertyAccessor.Get(worksheet, EVIDENCE_PROPERTY)) { deleteTargetWorksheets.Add(worksheet); } else { Excel.ListObject listObject = ListObjectHelper.GetTestCases(worksheet).FirstOrDefault(); if (null != listObject) { listObject.DataBodyRange.Columns[ListRowHelper.ColumnIndex.Result].Clear(); listObject.DataBodyRange.Columns[ListRowHelper.ColumnIndex.Error].Clear(); listObject.DataBodyRange.Columns[ListRowHelper.ColumnIndex.Evidence].Clear(); } } } DisableDisplayAlert.Invoke(() => { foreach (Excel.Worksheet worksheet in deleteTargetWorksheets) { worksheet.Delete(); } }); }); }
public static Excel.ListRow GetEmptyRow(Excel.ListObject listObject) { Excel.ListRow theListRow = null; ForEach(listObject, (listRow) => { var s = ListRowHelper.Get(listRow, ListRowHelper.ColumnIndex.Command); if (string.IsNullOrWhiteSpace(s)) { theListRow = listRow; return(false); } return(true); }); if (null != theListRow) { return(theListRow); } return(ListObjectHelper.AddRow(listObject, true)); }
private TestDataSequence GetTestDataSequence(ITestCase testCase) { var dataSequence = new TestDataSequence(); if (string.IsNullOrWhiteSpace(testCase.DataName)) { var dummyData = new TestData(); dataSequence.Enqueue(dummyData); return(dataSequence); } Excel.ListObject listObject = ListObjectHelper.GetByName(testCase.Workbook, testCase.DataName); if (null == listObject) { throw new InvalidOperationException("listObject is null."); } ListObjectHelper.ForEach( listObject, (listRow) => { var data = new TestData(); foreach (Excel.ListColumn listColumn in listObject.ListColumns) { var value = ListRowHelper.Get(listRow, listColumn.Index); data.Add(listColumn.Name, value); } dataSequence.Enqueue(data); return(true); }); return(dataSequence); }
public TestSequence Compile(IEnumerable <TestCase> testCases) { if (null == testCases) { throw new ArgumentNullException("testCases"); } #if DEBUG Stopwatch sw = new Stopwatch(); sw.Start(); #endif var testSequence = new TestSequence(); int index = 0; foreach (var testCase in testCases.Where(i => i.IsChecked)) { Excel.ListObject listObject = testCase.ListObject; var dataSequence = this.GetTestDataSequence(testCase); foreach (var data in dataSequence) { var steps = new TestStepCollection(testCase); testSequence.Enqueue(steps); ListObjectHelper.ForEach( listObject, (listRow) => { try { var step = this.CompileFromListRow( testCase.Workbook, testCase.Worksheet, listObject, listRow, data); if (null != step) { step.TestCase = testCase; step.Index = index++; steps.Enqueue(step); } } catch (Exception ex) { Log.Logger.Warn(ex); testSequence.CompileErrorCount++; testCase.Result = TestResult.Failed; } return(true); }); } } #if DEBUG sw.Stop(); Log.Logger.Debug(testSequence.ToString()); Log.Logger.DebugFormat("Elapsed = {0}", sw.Elapsed); #endif return(testSequence); }