public void IsDropDownOpen_WhenSetToTrue_CreatesSelectorView() { //Arrange var crossRef = new FieldSingleCrossRef(); //Act crossRef.IsDropDownOpen = true; //Assert var inst = new PrivateAccessor(crossRef); var d = inst.GetField("selectorView"); Assert.IsNotNull(d); }
public void WhenTextBoxTextChanges_AutoSearchCommand_IsExecuted() { // Arrange. const string NewText = "Item"; var crossRef = new FieldSingleCrossRef(); var textBox = Mock.Create<TextBox>(Behavior.CallOriginal); var item1 = new object(); var item2 = new object(); var items = new List<object> { item1, item2 }; var searchTextProvider = Mock.Create<ISearchTextProvider>(Behavior.Loose); Mock.Arrange(searchTextProvider, x => x.GetPrimaryText(item1)).Returns("Item 1"); Mock.Arrange(searchTextProvider, x => x.GetPrimaryText(item2)).Returns("Item 2"); crossRef.SearchTextProvider = searchTextProvider; crossRef.ItemsSource = items; crossRef.SelectedIndex = 1; crossRef.SelectedItem = items[1]; Mock.Intercept<TextBox>(); Mock.NonPublic.Arrange<FieldSingleCrossRef, DependencyObject>("GetTemplateChild", "PopupOwner").Returns(textBox); crossRef.OnApplyTemplate(); var autoSearchCommand = Mock.Create<ICommand>(Behavior.Loose); crossRef.AutoSearchCommand = autoSearchCommand; crossRef.AutoSearchDelay = 0; var eventArgs = Mock.Create<TextChangedEventArgs>(Constructor.Mocked, Behavior.Loose); // Act. textBox.Text = NewText; textBox.SelectionStart = NewText.Length; Mock.Raise(() => textBox.TextChanged += null, eventArgs); // Assert. Assert.AreEqual(-1, crossRef.SelectedIndex); Assert.IsNull(crossRef.SelectedItem); Assert.AreEqual("Item 1", textBox.Text); Assert.AreEqual(NewText.Length, textBox.SelectionStart); Assert.AreEqual(2, textBox.SelectionLength); Assert.AreEqual("Item 1", crossRef.DisplayText); Assert.AreEqual(NewText, crossRef.UnselectedText); Mock.Assert(() => autoSearchCommand.Execute(Arg.AnyObject), Occurs.Once()); }