From 5907152c50ee2c658b266f2804e6b383bb15a6f1 Mon Sep 17 00:00:00 2001 From: Jason Smith Date: Sun, 24 Apr 2016 12:25:26 -0400 Subject: Evolve feature branch (#117) * Initial import of evolve features * [Android] Add Xamarin.Forms.Platform.Android.AppLinks project * [iOS] Fix issues with c# 6 features on iOS AppLinks * Added naive stanza to update-docs-windows.bat to produce Pages docs. Not tested. (#69) * Update packages * Add AppLinks android nuspec and fix linker issues * Fix build * Fix nusepc * Fix nuspec * Update android support nugets to 23.2.1 * Update Xamarin.UITest * Add CardView * [iOS] Fix app link for CoreSpotlight * [Android] Update AppLinks android support libs * Add Newtonsoft.Json dependency to nuspec * Fix NRE when setting ControlTemplate to null * Move to ModernHttpClient for download * Try fix build * Preserve android app links * Fix margin issue * General coding and simple fixes --- .../DataSourceListTests.cs | 81 ++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 Xamarin.Forms.Pages.UnitTests/DataSourceListTests.cs (limited to 'Xamarin.Forms.Pages.UnitTests/DataSourceListTests.cs') diff --git a/Xamarin.Forms.Pages.UnitTests/DataSourceListTests.cs b/Xamarin.Forms.Pages.UnitTests/DataSourceListTests.cs new file mode 100644 index 00000000..4585e0d6 --- /dev/null +++ b/Xamarin.Forms.Pages.UnitTests/DataSourceListTests.cs @@ -0,0 +1,81 @@ +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Net.NetworkInformation; +using System.Threading.Tasks; +using NUnit.Framework; + +namespace Xamarin.Forms.Pages.UnitTests +{ + [TestFixture] + public class DataSourceListTests + { + public class TestDataSource : BaseDataSource + { + public ObservableCollection DataItems { get; } = new ObservableCollection (); + + protected override Task> GetRawData () + { + return Task.FromResult> (DataItems); + } + + protected override object GetValue (string key) + { + var target = DataItems.FirstOrDefault (d => d.Name == key); + if (target == null) + throw new KeyNotFoundException (); + return target.Value; + } + + protected override bool SetValue (string key, object value) + { + var target = DataItems.FirstOrDefault (d => d.Name == key); + if (target == null) + DataItems.Add (new DataItem (key, value)); + else if (target.Value == value) + return false; + else + target.Value = value; + return true; + } + } + + [Test] + public void DataSourceListIndexer () + { + var source = new TestDataSource (); + IDataSource s = source; + source.DataItems.Add (new DataItem ("Foo", "Bar")); + + Assert.AreEqual ("Bar", s["Foo"]); + + Assert.AreEqual ("Bar", s.Data[0].Value); + } + + [Test] + public void CompoundListPrepend () + { + var source = new TestDataSource (); + IDataSource s = source; + source.DataItems.Add (new DataItem ("Foo1", "Bar1")); + source.DataItems.Add (new DataItem ("Foo2", "Bar2")); + + var compoundList = new CompoundCollection { + MainList = s.Data + }; + var prependItem = new DataItem ("Pre1", "Val1"); + compoundList.PrependList.Add (prependItem); + + Assert.AreEqual (prependItem, compoundList[0]); + Assert.AreEqual (source.DataItems[0], s.Data[0]); + Assert.AreEqual (source.DataItems[1], s.Data[1]); + + Assert.AreEqual (source.DataItems[0], compoundList[1]); + Assert.AreEqual (source.DataItems[1], compoundList[2]); + + s.MaskKey ("Foo1"); + + Assert.AreEqual (source.DataItems[1], compoundList[1]); + } + } +} \ No newline at end of file -- cgit v1.2.3