diff options
Diffstat (limited to 'Xamarin.Forms.Core.UnitTests/TextCellTests.cs')
-rw-r--r-- | Xamarin.Forms.Core.UnitTests/TextCellTests.cs | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/Xamarin.Forms.Core.UnitTests/TextCellTests.cs b/Xamarin.Forms.Core.UnitTests/TextCellTests.cs new file mode 100644 index 00000000..43965a35 --- /dev/null +++ b/Xamarin.Forms.Core.UnitTests/TextCellTests.cs @@ -0,0 +1,129 @@ +using System; +using NUnit.Framework; + + +namespace Xamarin.Forms.Core.UnitTests +{ + [TestFixture] + public class TextCellTests : BaseTestFixture + { + [Test] + public void TestTapped () + { + var cell = new TextCell (); + bool tapped = false; + cell.Tapped += (sender, args) => tapped = true; + + cell.OnTapped(); + Assert.True (tapped); + } + + [Test] + public void TestCommand() + { + bool executed = false; + + var cmd = new Command (() => executed = true); + var cell = new TextCell(); + cell.Command = cmd; + cell.OnTapped(); + + Assert.IsTrue (executed, "Command was not executed"); + } + + [Test] + public void TestCommandParameter() + { + bool executed = false; + + object obj = new object(); + var cmd = new Command (p => { + Assert.AreSame (obj, p); + executed = true; + }); + + var cell = new TextCell { + Command = cmd, + CommandParameter = obj + }; + + cell.OnTapped(); + + Assert.IsTrue (executed, "Command was not executed"); + } + + [Test] + public void TestCommandCanExecute() + { + bool tested = false; + + var cmd = new Command (() => { }, + canExecute: () => { + tested = true; + return true; + }); + + new TextCell { Command = cmd }; + Assert.IsTrue (tested, "Command.CanExecute was not called"); + } + + [Test] + public void TestCommandCanExecuteDisables() + { + var cmd = new Command (() => { }, () => false); + var cell = new TextCell { Command = cmd }; + Assert.IsFalse (cell.IsEnabled, "Cell was not disabled"); + } + + [Test] + public void TestCommandCanExecuteChanged() + { + bool first = true; + var cmd = new Command (() => { }, () => { + if (first) { + first = false; + return false; + } else { + return true; + } + }); + + var cell = new TextCell { Command = cmd }; + Assert.IsFalse (cell.IsEnabled, "Cell was not disabled"); + + cmd.ChangeCanExecute(); + + Assert.IsTrue (cell.IsEnabled, "Cell was not reenabled"); + } + + [Test] + public void Create () + { + var template = new DataTemplate (typeof (TextCell)); + var content = template.CreateContent (); + + Assert.IsNotNull (content); + Assert.That (content, Is.InstanceOf<TextCell> ()); + } + + [Test] + public void Detail () + { + var template = new DataTemplate (typeof (TextCell)); + template.SetValue (TextCell.DetailProperty, "detail"); + + TextCell cell = (TextCell)template.CreateContent (); + Assert.That (cell.Detail, Is.EqualTo ("detail")); + } + + [Test] + public void Text () + { + var template = new DataTemplate (typeof (TextCell)); + template.SetValue (TextCell.TextProperty, "text"); + + TextCell cell = (TextCell)template.CreateContent (); + Assert.That (cell.Text, Is.EqualTo ("text")); + } + } +} |