예제 #1
0
        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);
        }
예제 #2
0
        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());
        }