From 17fdde66d94155fc62a034fa6658995bef6fd6e5 Mon Sep 17 00:00:00 2001 From: Jason Smith Date: Tue, 22 Mar 2016 13:02:25 -0700 Subject: Initial import --- Xamarin.Forms.Core.UnitTests/SearchBarUnitTests.cs | 112 +++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 Xamarin.Forms.Core.UnitTests/SearchBarUnitTests.cs (limited to 'Xamarin.Forms.Core.UnitTests/SearchBarUnitTests.cs') diff --git a/Xamarin.Forms.Core.UnitTests/SearchBarUnitTests.cs b/Xamarin.Forms.Core.UnitTests/SearchBarUnitTests.cs new file mode 100644 index 00000000..a09aa429 --- /dev/null +++ b/Xamarin.Forms.Core.UnitTests/SearchBarUnitTests.cs @@ -0,0 +1,112 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +using NUnit.Framework; + +namespace Xamarin.Forms.Core.UnitTests +{ + [TestFixture] + public class SearchBarUnitTests : BaseTestFixture + { + [Test] + public void TestConstructor () + { + SearchBar searchBar = new SearchBar (); + + Assert.Null (searchBar.Placeholder); + Assert.Null (searchBar.Text); + } + + [Test] + public void TestContentsChanged () + { + SearchBar searchBar = new SearchBar (); + + bool thrown = false; + + searchBar.TextChanged += (sender, e) => thrown = true; + + searchBar.Text = "Foo"; + + Assert.True (thrown); + } + + [Test] + public void TestSearchButtonPressed () + { + SearchBar searchBar = new SearchBar (); + + bool thrown = false; + searchBar.SearchButtonPressed += (sender, e) => thrown = true; + + searchBar.OnSearchButtonPressed (); + + Assert.True (thrown); + } + + [Test] + public void TestSearchCommandParameter () + { + var searchBar = new SearchBar (); + + object param = "Testing"; + object result = null; + searchBar.SearchCommand = new Command (p => { result = p; }); + searchBar.SearchCommandParameter = param; + + searchBar.OnSearchButtonPressed (); + + Assert.AreEqual (param, result); + } + + [TestCase (null, "Text Changed")] + [TestCase ("Initial Text", null)] + [TestCase ("Initial Text", "Text Changed")] + public void SearchBarTextChangedEventArgs (string initialText, string finalText) + { + var searchBar = new SearchBar { + Text = initialText + }; + + SearchBar searchBarFromSender = null; + string oldText = null; + string newText = null; + + searchBar.TextChanged += (s, e) => { + searchBarFromSender = (SearchBar)s; + oldText = e.OldTextValue; + newText = e.NewTextValue; + }; + + searchBar.Text = finalText; + + Assert.AreEqual (searchBar, searchBarFromSender); + Assert.AreEqual (initialText, oldText); + Assert.AreEqual (finalText, newText); + } + + [Test] + public void CommandCanExecuteUpdatesEnabled () + { + var searchBar = new SearchBar (); + + bool result = false; + + var bindingContext = new { + Command = new Command (() => { }, () => result) + }; + + searchBar.SetBinding (SearchBar.SearchCommandProperty, "Command"); + searchBar.BindingContext = bindingContext; + + Assert.False (searchBar.IsEnabled); + + result = true; + + bindingContext.Command.ChangeCanExecute (); + + Assert.True (searchBar.IsEnabled); + } + } +} -- cgit v1.2.3