diff options
author | Jason Smith <jason.smith@xamarin.com> | 2016-03-22 13:02:25 -0700 |
---|---|---|
committer | Jason Smith <jason.smith@xamarin.com> | 2016-03-22 16:13:41 -0700 |
commit | 17fdde66d94155fc62a034fa6658995bef6fd6e5 (patch) | |
tree | b5e5073a2a7b15cdbe826faa5c763e270a505729 /Xamarin.Forms.Core.UnitTests/MapTests.cs | |
download | xamarin-forms-17fdde66d94155fc62a034fa6658995bef6fd6e5.tar.gz xamarin-forms-17fdde66d94155fc62a034fa6658995bef6fd6e5.tar.bz2 xamarin-forms-17fdde66d94155fc62a034fa6658995bef6fd6e5.zip |
Initial import
Diffstat (limited to 'Xamarin.Forms.Core.UnitTests/MapTests.cs')
-rw-r--r-- | Xamarin.Forms.Core.UnitTests/MapTests.cs | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/Xamarin.Forms.Core.UnitTests/MapTests.cs b/Xamarin.Forms.Core.UnitTests/MapTests.cs new file mode 100644 index 00000000..7c798b33 --- /dev/null +++ b/Xamarin.Forms.Core.UnitTests/MapTests.cs @@ -0,0 +1,147 @@ +using System; +using NUnit.Framework; +using Xamarin.Forms.Maps; + +namespace Xamarin.Forms.Core.UnitTests +{ + [TestFixture] + public class MapTests : BaseTestFixture + { + [Test] + public void AddPin () + { + var map = new Map (); + + var home = new Pin { + Label = "Home", + Position = new Position (88, 2), + Type = PinType.Place, + Address = "123 My Place" + }; + + map.Pins.Add (home); + + Assert.AreEqual (map.Pins.Count, 1); + Assert.AreEqual (map.Pins[0].Label, "Home"); + var mall = new Pin { + Label = "Mall", + Position = new Position (-12, -67), + Type = PinType.Place, + Address = "123 Fun" + }; + + map.Pins.Add (mall); + + Assert.AreEqual (map.Pins.Count, 2); + Assert.AreEqual (map.Pins[1].Position.Latitude, -12); + } + + [Test] + public void AddPinWithoutName () + { + var map = new Map (); + var noNamePin = new Pin { + Position = new Position (50, 50), + Type = PinType.Generic, + Address = "123 Fun" + }; + + var exception = Assert.Throws<ArgumentException> (() => map.Pins.Add (noNamePin)); + Assert.That (exception.Message, Is.EqualTo ("Pin must have a Label to be added to a map")); + } + + [Test] + public void AddPinWithoutAddress () + { + var map = new Map (); + var noAddressPin = new Pin { + Position = new Position (37.9, -20.87), + Label = "I have no address", + Type = PinType.SearchResult + }; + + map.Pins.Add (noAddressPin); + Assert.AreEqual (map.Pins.Count, 1); + Assert.AreEqual (map.Pins[0].Label, "I have no address"); + Assert.AreEqual (map.Pins[0].Address, null); + } + + [Test] + public void Constructor () + { + var center = new Position (15.5, 176); + var span = new MapSpan (center, 1, 2); + var map = new Map (span); + + Assert.AreEqual (1, map.LastMoveToRegion.LatitudeDegrees); + Assert.AreEqual (2, map.LastMoveToRegion.LongitudeDegrees); + var position = new Position (15.5, 176); + Assert.AreEqual (position, map.LastMoveToRegion.Center); + } + + [Test] + public void RemovePin () + { + var map = new Map (); + var genericPlace = new Pin { + Label = "Generic", + Position = new Position (-12, -67), + Type = PinType.Generic, + Address = "XXX" + }; + + var mall = new Pin { + Label = "Mall", + Position = new Position (-29, -87), + Type = PinType.Place, + Address = "123 Fun" + }; + + map.Pins.Add (genericPlace); + Assert.AreEqual (map.Pins.Count, 1); + + map.Pins.Add (mall); + Assert.AreEqual (map.Pins.Count, 2); + + map.Pins.Remove (genericPlace); + Assert.AreEqual (map.Pins.Count, 1); + + Assert.True (map.Pins.Contains (mall)); + Assert.False (map.Pins.Contains (genericPlace)); + } + + [Test] + public void VisibleRegion () + { + var map = new Map (new MapSpan (new Position (), 0, 0)); + map.MoveToRegion (new MapSpan (new Position (1, 2), 3, 4)); + Assert.AreEqual (null, map.VisibleRegion); + + bool signaled = false; + MessagingCenter.Subscribe<Map, MapSpan> (this, "MapMoveToRegion", (s, a) => { + signaled = true; + map.VisibleRegion = a; + }, map); + + map.MoveToRegion (new MapSpan (new Position (1, 2), 3, 4)); + Assert.AreEqual (new MapSpan (new Position (1, 2), 3, 4), map.LastMoveToRegion); + Assert.True (signaled); + } + + [Test] + public void VisibleRegionDoubleSet () + { + var map = new Map (); + + bool signaled = false; + map.PropertyChanged += (sender, args) => { + if (args.PropertyName == "VisibleRegion") + signaled = true; + }; + + map.VisibleRegion = map.VisibleRegion; + + Assert.False (signaled); + } + } +} |