public void Constructor_DataGridViewCorrectlyInitialized() { // Setup & Call ShowTestHydraulicBoundaryCalculationsView(); // Assert DataGridView dataGridView = ControlTestHelper.GetDataGridView(testForm, "dataGridView"); Assert.AreEqual(5, dataGridView.ColumnCount); var calculateColumn = (DataGridViewCheckBoxColumn)dataGridView.Columns[calculateColumnIndex]; Assert.AreEqual("Berekenen", calculateColumn.HeaderText); var includeIllustrationPointsColumn = (DataGridViewCheckBoxColumn)dataGridView.Columns[includeIllustrationPointsColumnIndex]; Assert.AreEqual("Illustratiepunten inlezen", includeIllustrationPointsColumn.HeaderText); var locationNameColumn = (DataGridViewTextBoxColumn)dataGridView.Columns[locationNameColumnIndex]; Assert.AreEqual("Naam", locationNameColumn.HeaderText); var locationIdColumn = (DataGridViewTextBoxColumn)dataGridView.Columns[locationIdColumnIndex]; Assert.AreEqual("ID", locationIdColumn.HeaderText); var locationColumn = (DataGridViewTextBoxColumn)dataGridView.Columns[locationColumnIndex]; Assert.AreEqual("Coördinaten [m]", locationColumn.HeaderText); var button = (Button)testForm.Controls.Find("CalculateForSelectedButton", true).First(); Assert.IsFalse(button.Enabled); }
public void TagSimpleElementParametersRender() { string content = "My favorite color is {0}"; string param = "color"; string tag = "x:Foo"; string val = "blue"; string template = "<script type='text/os-template' tag='{0}'>\n{1}</script>"; template = String.Format(template, tag, string.Format(content, "${My." + param + "}")); string elemInstMarkup = "<{0}><{1}>{2}</{1}></{0}>"; string tagInstanceMarkup = string.Format(elemInstMarkup, new string[] { tag, param, val }); string expected = string.Format(content, val); factory.RegisterCustomTag(tag, template); CustomTag inst = factory.CreateTagInstance(tag, tagInstanceMarkup); Assert.AreEqual(val, inst.Parameters[param], "Registered instance value incorrect"); string result = ControlTestHelper.GetRenderedContents(inst); result = ControlTestHelper.NormalizeRenderResult(result); Assert.AreEqual(expected, result, "Rendered results incorrect"); }
public DataGadgetTestData() { this.Source = @"<?xml version='1.0' encoding='utf-8'?> <Module> <Content type='html' view='canvas'> <script type=""text/os-data""> <os:ViewerRequest key='vwr' /> <os:PeopleRequest key='myfriends' userid=""@viewer"" groupid=""@friends"" /> </script> <script type='text/os-template'> <h1>User: ${vwr.displayName}</h1> <os:Repeat expression=""${Top.myfriends}""> <div>dude is: ${Cur.displayName}</div> </os:Repeat> </script> </Content> </Module>"; ExpectedCanvas = @"<h1>User: Tom</h1> <div>dude is: tom</div> <div>dude is: dick</div> <div>dude is: harry</div>"; this.ExpectedViewer = ControlTestHelper.CreatePerson(6221, "Tom", "http://b2.ac-images.myspacecdn.com/00000/20/52/2502_m.jpg"); List <Person> list = new List <Person>(); list.Add(ControlTestHelper.CreatePerson(10, "tom", "http://c2.ac-images.myspacecdn.com/images01/83/m_cf35455bc80e50b7ac64b53f659fbe89.jpg")); list.Add(ControlTestHelper.CreatePerson(600, "dick", "http://b8.ac-images.myspacecdn.com/00000/82/80/828_m.jpg")); list.Add(ControlTestHelper.CreatePerson(6001, "harry", "http://cms.myspacecdn.com/cms/FR/trax.jpg")); this.ExpectedFriends = list; }
public void RenderGadgetSimpleTemplates() { GadgetWithSimpleTemplate data = new GadgetWithSimpleTemplate(); GadgetMaster target = GadgetMaster.CreateGadget(TEST_FACTORY_KEY, data.Source); ResolveDataControlValues(target.MyDataContext, data.ExpectedViewer, data.ExpectedViewer, data.ExpectedFriends); Assert.IsTrue(target.IsParsed); Assert.IsTrue(target.MyOffset.ToString().IndexOf("ContentBlock") > -1, "Content Block not found in offsets"); target.RenderingOptions.DivWrapContentBlocks = false; target.RenderingOptions.SuppressWhitespace = true; target.ClientRenderCustomTemplates = false; string result = target.RenderToString("canvas"); result = ControlTestHelper.NormalizeRenderResult(result); //remove double spaces while (result.Contains(" ")) { result = result.Replace(" ", " "); } string expectedCanvas = ControlTestHelper.NormalizeRenderResult(data.ExpectedCanvas); Assert.IsFalse(string.IsNullOrEmpty(result), "empty result"); Assert.AreEqual(expectedCanvas, result, "Rendered results are incorrect"); }
public void DeselectAllButton_AllCalculatableItemsSelectedDeselectAllButtonClicked_AllCalculatableItemsNotSelected() { // Setup ShowFullyConfiguredTestCalculatableView(); DataGridView dataGridView = ControlTestHelper.GetDataGridView(testForm, "DataGridView"); var button = new ButtonTester("DeselectAllButton", testForm); DataGridViewRowCollection rows = dataGridView.Rows; foreach (DataGridViewRow row in rows) { row.Cells[calculateColumnIndex].Value = true; } // Precondition Assert.IsTrue((bool)rows[0].Cells[calculateColumnIndex].Value); Assert.IsTrue((bool)rows[1].Cells[calculateColumnIndex].Value); // Call button.Click(); // Assert Assert.IsFalse((bool)rows[0].Cells[calculateColumnIndex].Value); Assert.IsFalse((bool)rows[1].Cells[calculateColumnIndex].Value); }
public void RenderWithSharedDataKeys() { GadgetMaster target; DataGadgetTestData data = new DataGadgetSharedDataKeys(); target = new GadgetMaster(testFactory, data.Source); ResolveDataControlValues(target.MyDataContext, data.ExpectedViewer, data.ExpectedViewer, data.ExpectedFriends); target.RenderingOptions.ClientRenderCustomTemplates = false; target.RenderingOptions.ClientRenderDataContext = false; target.RenderingOptions.DivWrapContentBlocks = false; target.RenderingOptions.SuppressWhitespace = true; //vwr, myfriends string result; result = ControlTestHelper.NormalizeRenderResult(target.RenderToString("canvas")); Assert.AreEqual(ControlTestHelper.NormalizeRenderResult(data.ExpectedCanvas), result, "Canvas Incorrect"); result = ControlTestHelper.NormalizeRenderResult(target.RenderToString("home")); Assert.AreEqual(ControlTestHelper.NormalizeRenderResult(data.ExpectedHome), result, "Home Incorrect"); result = ControlTestHelper.NormalizeRenderResult(target.RenderToString("profile")); Assert.AreEqual(ControlTestHelper.NormalizeRenderResult(data.ExpectedProfile), result, "Profile Incorrect"); }
public void OnLoad_DataGridViewCorrectlyInitialized() { // Setup & Call ShowControl(); // Assert DataGridView dataGridView = ControlTestHelper.GetDataGridView(testForm, "DataGridView"); Assert.AreEqual(4, dataGridView.ColumnCount); DataGridViewColumn windDirectionColumn = dataGridView.Columns[windDirectionColumnIndex]; Assert.AreEqual("Windrichting", windDirectionColumn.HeaderText); Assert.IsTrue(windDirectionColumn.ReadOnly); DataGridViewColumn closingSituationColumn = dataGridView.Columns[closingScenarioColumnIndex]; Assert.AreEqual("Keringsituatie", closingSituationColumn.HeaderText); Assert.IsTrue(closingSituationColumn.ReadOnly); Assert.IsFalse(closingSituationColumn.Visible); DataGridViewColumn calculatedProbabilityColumn = dataGridView.Columns[calculatedProbabilityColumnIndex]; Assert.AreEqual("Berekende kans\r\n[-]", calculatedProbabilityColumn.HeaderText); Assert.IsTrue(calculatedProbabilityColumn.ReadOnly); DataGridViewColumn calculatedReliabilityColumn = dataGridView.Columns[calculatedReliabilityColumnIndex]; Assert.AreEqual("Betrouwbaarheidsindex\r\nberekende kans\r\n[-]", calculatedReliabilityColumn.HeaderText); Assert.IsTrue(calculatedReliabilityColumn.ReadOnly); }
public void GivenFullyConfiguredView_WhenSelectingCellInRow_ThenSelectionChangedAndPropagatedAccordingly() { // Given var mocks = new MockRepository(); var calculation = mocks.Stub <ICalculation>(); mocks.ReplayAll(); GeneralResult <TopLevelSubMechanismIllustrationPoint> generalResult = GetGeneralResultWithTwoTopLevelIllustrationPoints(); var view = new GeneralResultSubMechanismIllustrationPointView(calculation, () => generalResult); ShowTestView(view); var selectionChangedCount = 0; view.SelectionChanged += (sender, args) => selectionChangedCount++; DataGridView dataGridView = ControlTestHelper.GetDataGridView(testForm, "DataGridView"); // When dataGridView.CurrentCell = dataGridView.Rows[1].Cells[0]; EventHelper.RaiseEvent(dataGridView, "CellClick", new DataGridViewCellEventArgs(0, 0)); // Then Assert.AreEqual(1, selectionChangedCount); TopLevelSubMechanismIllustrationPoint[] topLevelIllustrationPoints = generalResult.TopLevelIllustrationPoints.ToArray(); TopLevelSubMechanismIllustrationPoint topLevelIllustrationPoint = topLevelIllustrationPoints.ElementAt(1); AssertIllustrationPointSelection(topLevelIllustrationPoint, topLevelIllustrationPoints.Select(ip => ip.ClosingSituation), view.Selection); mocks.VerifyAll(); }
public void TestResolvedDataKeys() { GadgetMaster target; DataGadgetTestData gadget = new DataGadgetTestData(); MemoryStream stream = new MemoryStream(); StreamWriter writer = new StreamWriter(stream); target = new GadgetMaster(testFactory, gadget.Source); ResolveDataControlValues(target.MyDataContext, gadget.ExpectedViewer, gadget.ExpectedViewer, gadget.ExpectedFriends); target.MyDataContext.ResolveDataValues(); target.RenderContent(writer); string written = ControlTestHelper.GetStreamContent(stream); object data; for (int i = 0; i < gadget.ExpectedDataKeys.Length; i++) { string key = gadget.ExpectedDataKeys[i]; Assert.IsTrue(target.MasterDataContext.HasVariable(key), "Key not registered: " + key); data = target.MasterDataContext.GetVariableValue(gadget.ExpectedDataKeys[i]); Assert.IsNotNull(data, "Data not resolved for: " + key); } }
public void Selection_ValidRowSelected_SameAsTableControlSelection() { // Setup using (var form = new Form()) using (var control = new IllustrationPointsControl()) { form.Controls.Add(control); form.Show(); control.Data = GetIllustrationPointControlItems().ToArray(); IllustrationPointsTableControl tableControl = ControlTestHelper.GetControls <IllustrationPointsTableControl>(form, "IllustrationPointsTableControl").Single(); DataGridViewControl dataGridView = ControlTestHelper.GetDataGridViewControl(form, "illustrationPointsDataGridViewControl"); var initialControlSelection = control.Selection as IllustrationPointControlItem; // Precondition Assert.IsNotNull(initialControlSelection); // Call dataGridView.SetCurrentCell(dataGridView.Rows[1].Cells[0]); // Assert var expectedSelection = tableControl.Selection as IllustrationPointControlItem; var controlSelection = (IllustrationPointControlItem)control.Selection; Assert.IsNotNull(expectedSelection); Assert.AreSame(expectedSelection, controlSelection); Assert.AreNotSame(initialControlSelection, controlSelection); } }
public void ViewsStandardTest() { GadgetWithViews data = new GadgetWithViews(); GadgetMaster target = new GadgetMaster(testFactory, data.Source); target.RenderingOptions.DivWrapContentSubViews = false; target.RenderingOptions.DivWrapContentBlocks = false; target.RenderingOptions.ClientRenderDataContext = false; string result = ControlTestHelper.NormalizeRenderResult(target.RenderToString("canvas")); Assert.AreEqual(data.ExpectedCanvas, result, "Canvas incorrect"); String[,] td = new String[, ] { { "canvas", data.ExpectedCanvas }, { "Canvas", data.ExpectedCanvas }, { "mobilecanvas", data.ExpectedMobileCanvas }, { "home", data.ExpectedHome }, { "profile", data.ExpectedProfile } }; for (int i = 0; i < td.Length / 2; i++) { result = ControlTestHelper.NormalizeRenderResult(target.RenderToString(td[i, 0])); Assert.AreEqual(td[i, 1], result, td[i, 0] + " render incorrect"); } }
/// <summary> /// Tests the rendered results against expected output. /// Trims to remove leading and trailing whitespace /// </summary> /// <param name="control"></param> /// <param name="expectedResult"></param> /// <returns></returns> public bool AssertRenderResultsEqual(BaseGadgetControl control, string expectedResult) { string result = ControlTestHelper.GetRenderedContents(control); result = ControlTestHelper.NormalizeRenderResult(result); expectedResult = ControlTestHelper.NormalizeRenderResult(expectedResult); return(result == expectedResult); }
public void TestRenderStaticTag() { CustomTag inst = factory.CreateTagInstance(CustomTagFactoryTests.CUSTOM_TAG); string result = ControlTestHelper.GetRenderedContents(inst); Assert.AreEqual(CustomTagFactoryTests.CUSTOM_TAG_RESULT, result); }
public void InnerMarkupIsEmpty() { Person viewer = ControlTestHelper.CreatePerson(vUid, vname, null); OsmlName target = new OsmlName(baseTag); Assert.IsEmpty(target.InnerMarkup, "Markup not empty on empty tag"); }
void CheckRender(GadgetMaster target, string view, string expected) { target.RenderingOptions.DivWrapContentBlocks = false; target.RenderingOptions.ClientRenderDataContext = false; string result = ControlTestHelper.NormalizeRenderResult(target.RenderToString(view)); Assert.AreEqual(ControlTestHelper.NormalizeRenderResult(expected), result, view + " view incorrect"); }
public static List <Person> GetViewerFriendsList() { List <Person> list = new List <Person>(); list.Add(ControlTestHelper.CreatePerson(10, "tom", "http://c2.ac-images.myspacecdn.com/images01/83/m_cf35455bc80e50b7ac64b53f659fbe89.jpg")); list.Add(ControlTestHelper.CreatePerson(600, "dick", "http://b8.ac-images.myspacecdn.com/00000/82/80/828_m.jpg")); list.Add(ControlTestHelper.CreatePerson(6001, "harry", "http://cms.myspacecdn.com/cms/FR/trax.jpg")); return(list); }
public void TagParameterRegistrationVariantsTest() { GadgetCustomTagTemplates testData = new GadgetCustomTagTemplates(); GadgetMaster target = GadgetMaster.CreateGadget(TEST_FACTORY_KEY, testData.Source); string result = ControlTestHelper.NormalizeRenderResult(target.RenderToString("canvas")); Assert.IsNotNull(result, "Empty render result"); Assert.IsTrue(result.Contains(testData.ExpectedParamAttributeValue), "Attribute parameter not correctly rendered"); Assert.IsTrue(result.Contains(testData.ExpectedParamElementValue), "Element parameter not correctly rendered"); Assert.IsTrue(result.Contains(testData.ExpectedVariableValue), "osVar parameter not correctly rendered"); }
public void SecurityPolicyAffectsRender() { SecurityPolicyGadget data = new SecurityPolicyGadget(); GadgetMaster target = GadgetMaster.CreateGadget(TEST_FACTORY_KEY, data.Source); target.RenderingOptions.DivWrapContentBlocks = false; string key = "markup"; string result = ControlTestHelper.NormalizeRenderResult(target.RenderToString("canvas")); Assert.AreEqual(data.ExpectedCanvas, result); }
/// <summary> /// Helper to check the rendered results /// </summary> /// <param name="gadget"></param> void TestRepeaterRenderResult(DataGadgetTestData gadget) { GadgetMaster master = null; master = GadgetMaster.CreateGadget(TEST_FACTORY_KEY, gadget.Source); master.RenderingOptions.DivWrapContentBlocks = false; ResolveDataControlValues(master.MyDataContext, gadget.ExpectedViewer, gadget.ExpectedViewer, gadget.ExpectedFriends); string result = ControlTestHelper.GetRenderedContents(master, "canvas"); string expected = gadget.ExpectedCanvas.Trim().Replace("\r\n", "\n"); Assert.AreEqual(ControlTestHelper.NormalizeRenderResult(expected), ControlTestHelper.NormalizeRenderResult(result), "Rendered results incorrect"); }
public void MissingViewTest() { GadgetWithViews data = new GadgetWithViews(); GadgetMaster target = new GadgetMaster(testFactory, data.Source); target.RenderingOptions.DivWrapContentSubViews = false; target.RenderingOptions.DivWrapContentBlocks = false; target.RenderingOptions.ClientRenderDataContext = false; string result = ControlTestHelper.NormalizeRenderResult(target.RenderToString("mobilecanvas")); Assert.AreEqual(data.ExpectedMobileCanvas, result, "Mobile Canvas incorrect"); }
public void TestRenderFromMarkup() { //Assert.IsTrue(true); Person viewer = ControlTestHelper.CreatePerson(vUid, vname, null); OsmlName control = new OsmlName(baseTag); DataContext dc = control.MyDataContext; GenericExpressionEvalWrapper wrapper = new GenericExpressionEvalWrapper(viewer); dc.RegisterDataItem("Viewer", wrapper); Assert.IsTrue(AssertRenderResultsEqual(control, expectedTag)); }
public void TestContentRenderTrailingScript() { ContentBlockTrailingClientScript testContent = new ContentBlockTrailingClientScript(); GadgetMaster master = new GadgetMaster(testFactory); ContentBlock block = new ContentBlock(); master.AddContentBlock(block); block.LoadTag(testContent.Source); block.IncludeWrappingDivs = false; string tagRendered = ControlTestHelper.NormalizeRenderResult(ControlTestHelper.GetRenderedContents(block)); Assert.IsTrue(tagRendered.Length > 0, "Empty rendered tag from content"); Assert.AreEqual(ControlTestHelper.NormalizeRenderResult(testContent.ExpectedCanvas), tagRendered); }
public void LiteralsWithCDataHonored(string raw, bool suppressCDATA, string expected) { GadgetLiteral control = new GadgetLiteral(raw); Assert.AreEqual(raw, control.RawTag); Assert.AreEqual(raw, control.InnerMarkup); control.SuppressCDATATags = suppressCDATA; string rendered = ControlTestHelper.NormalizeRenderResult( ControlTestHelper.GetRenderedContents(control)); expected = ControlTestHelper.NormalizeRenderResult(expected); Assert.AreEqual(expected, rendered, "Rendered results do not match expectations"); }
public void RenderCustomTagWithClientTemplateIncluded() { GadgetMaster target; TemplateGadgetTestData gadget = new TemplateGadgetTestData(); target = new GadgetMaster(testFactory, gadget.Source); AccountTestData.ResolveDataControlValues(target.MyDataContext, GadgetTestData.Viewer, GadgetTestData.Viewer, null); target.RenderingOptions.DivWrapContentBlocks = false; target.RenderingOptions.SuppressWhitespace = true; target.ClientRenderCustomTemplates = true; string written = ControlTestHelper.GetRenderedContents(target, "canvas"); Assert.IsTrue(written.IndexOf(TemplateGadgetTestData.CUSTOM_TAG_CONTENTS) > -1, "Client template not found"); }
public void GivenFullyConfiguredView_WhenRowsSelected_ThenCalculateForSelectedButtonEnabledAndNoErrorMessageProvided() { // Given TestCalculationsView view = ShowFullyConfiguredTestCalculatableView(); DataGridView dataGridView = ControlTestHelper.GetDataGridView(testForm, "DataGridView"); // When dataGridView.Rows[0].Cells[calculateColumnIndex].Value = true; // Then var button = (Button)view.Controls.Find("CalculateForSelectedButton", true)[0]; Assert.IsTrue(button.Enabled); var errorProvider = TypeUtils.GetField <ErrorProvider>(view, "CalculateForSelectedButtonErrorProvider"); Assert.AreEqual("", errorProvider.GetError(button)); }
public void Data_SetNewValueWithSameClosingSituations_DataGridViewCorrectlyInitialized() { // Setup var data = new[] { new IllustrationPointControlItem(new TestTopLevelIllustrationPoint(), "SSE", "Regular", Enumerable.Empty <Stochast>(), new RoundedDouble(5, 0.9)), new IllustrationPointControlItem(new TestTopLevelIllustrationPoint(), "SSE", "Regular", Enumerable.Empty <Stochast>(), new RoundedDouble(5, 0.7)) }; IllustrationPointsTableControl control = ShowControl(); // Call control.Data = data; // Assert DataGridView dataGridView = ControlTestHelper.GetDataGridView(testForm, "DataGridView"); DataGridViewRowCollection rows = dataGridView.Rows; Assert.AreEqual(2, rows.Count); DataGridViewCellCollection cells = rows[0].Cells; Assert.AreEqual(4, cells.Count); Assert.AreEqual("SSE", cells[windDirectionColumnIndex].FormattedValue); Assert.AreEqual("Regular", cells[closingScenarioColumnIndex].FormattedValue); Assert.AreEqual("1/5", cells[calculatedProbabilityColumnIndex].FormattedValue); Assert.AreEqual("0,90000", cells[calculatedReliabilityColumnIndex].FormattedValue); cells = rows[1].Cells; Assert.AreEqual(4, cells.Count); Assert.AreEqual("SSE", cells[windDirectionColumnIndex].FormattedValue); Assert.AreEqual("Regular", cells[closingScenarioColumnIndex].FormattedValue); Assert.AreEqual("1/4", cells[calculatedProbabilityColumnIndex].FormattedValue); Assert.AreEqual("0,70000", cells[calculatedReliabilityColumnIndex].FormattedValue); Assert.IsFalse(dataGridView.Columns[closingScenarioColumnIndex].Visible); }
public void CalculateForSelectedButton_OneSelectedButCalculationGuiServiceNotSet_DoesNotThrowException() { // Setup ShowFullyConfiguredTestHydraulicBoundaryCalculationsView(); DataGridView dataGridView = ControlTestHelper.GetDataGridView(testForm, "dataGridView"); DataGridViewRowCollection rows = dataGridView.Rows; rows[0].Cells[calculateColumnIndex].Value = true; var button = new ButtonTester("CalculateForSelectedButton", testForm); // Call TestDelegate test = () => button.Click(); // Assert Assert.DoesNotThrow(test); }
public void TestRenderCustomTag() { GadgetMaster target; TemplateGadgetTestData gadget = new TemplateGadgetTestData(); target = new GadgetMaster(testFactory, gadget.Source); AccountTestData.ResolveDataControlValues(target.MyDataContext, GadgetTestData.Viewer, GadgetTestData.Viewer, null); target.RenderingOptions.DivWrapContentBlocks = false; target.RenderingOptions.SuppressWhitespace = true; string written = ControlTestHelper.GetRenderedContents(target, "canvas"); written = written.Trim(); string expected = gadget.ExpectedCanvas.Trim(); Assert.AreEqual(expected, written, "Canvas does not match"); }
public void TestSurfaceViewRender(string source, string surfaceName, string expected) { GadgetMaster target; target = new GadgetMaster(testFactory, source); target.RenderingOptions.DivWrapContentBlocks = false; target.RenderingOptions.DivWrapContentSubViews = false; AccountTestData.ResolveDataControlValues(target.MyDataContext, GadgetTestData.Viewer, GadgetTestData.Viewer, null); string written = ControlTestHelper.GetRenderedContents(target, surfaceName); expected = ControlTestHelper.NormalizeRenderResult(expected); written = ControlTestHelper.NormalizeRenderResult(written); Assert.AreEqual(expected.Length, written.Length, "Lengths do not match"); Assert.AreEqual(expected, written, "Rendered gadget not expected from view: [" + surfaceName + "]\nEXPECTED:\n" + expected + "\n\nWRITTEN:\n" + written); }
public void GivenFullyConfiguredView_WhenSelectingCellInRow_ThenSelectionChangedFired() { // Given TestCalculationsView view = ShowFullyConfiguredTestCalculatableView(); var selectionChangedCount = 0; view.SelectionChanged += (sender, args) => selectionChangedCount++; DataGridView dataGridView = ControlTestHelper.GetDataGridView(testForm, "DataGridView"); // When dataGridView.CurrentCell = dataGridView.Rows[1].Cells[calculateColumnIndex]; EventHelper.RaiseEvent(dataGridView, "CellClick", new DataGridViewCellEventArgs(0, 0)); // Then Assert.AreEqual(1, selectionChangedCount); }