226 строки
5.4 KiB
C#
226 строки
5.4 KiB
C#
using System.Collections.Generic;
|
|
using NUnit.Framework;
|
|
|
|
using NContains = NUnit.Framework.Contains;
|
|
|
|
namespace Xamarin.Forms.Core.UnitTests
|
|
{
|
|
[TestFixture]
|
|
public class TableSectionTests : BaseTestFixture
|
|
{
|
|
[SetUp]
|
|
public void Setup()
|
|
{
|
|
Device.PlatformServices = new MockPlatformServices();
|
|
}
|
|
|
|
[TearDown]
|
|
public void TearDown()
|
|
{
|
|
Device.PlatformServices = null;
|
|
}
|
|
|
|
[Test]
|
|
public void Constructor()
|
|
{
|
|
var section = new TableSection("Title");
|
|
Assert.AreEqual("Title", section.Title);
|
|
Assert.That(section, Is.Empty);
|
|
}
|
|
|
|
[Test]
|
|
public void IsReadOnly()
|
|
{
|
|
var section = new TableSection() as ICollection<Cell>;
|
|
Assert.False(section.IsReadOnly);
|
|
}
|
|
|
|
[Test]
|
|
public void Add()
|
|
{
|
|
var section = new TableSection();
|
|
TextCell first, second;
|
|
section.Add(first = new TextCell { Text = "Text" });
|
|
section.Add(second = new TextCell { Text = "Text" });
|
|
|
|
Assert.That(section, NContains.Item(first));
|
|
Assert.That(section, NContains.Item(second));
|
|
}
|
|
|
|
[Test]
|
|
public void Remove()
|
|
{
|
|
var section = new TableSection();
|
|
TextCell first;
|
|
section.Add(first = new TextCell { Text = "Text" });
|
|
section.Add(new TextCell { Text = "Text" });
|
|
|
|
var result = section.Remove(first);
|
|
Assert.True(result);
|
|
Assert.That(section, Has.No.Contains(first));
|
|
}
|
|
|
|
[Test]
|
|
public void Clear()
|
|
{
|
|
var section = new TableSection { new TextCell { Text = "Text" }, new TextCell { Text = "Text" } };
|
|
section.Clear();
|
|
Assert.That(section, Is.Empty);
|
|
}
|
|
|
|
[Test]
|
|
public void Contains()
|
|
{
|
|
var section = new TableSection();
|
|
TextCell first, second;
|
|
section.Add(first = new TextCell { Text = "Text" });
|
|
section.Add(second = new TextCell { Text = "Text" });
|
|
|
|
Assert.True(section.Contains(first));
|
|
Assert.True(section.Contains(second));
|
|
}
|
|
|
|
[Test]
|
|
public void IndexOf()
|
|
{
|
|
var section = new TableSection();
|
|
TextCell first, second;
|
|
section.Add(first = new TextCell { Text = "Text" });
|
|
section.Add(second = new TextCell { Text = "Text" });
|
|
|
|
Assert.AreEqual(0, section.IndexOf(first));
|
|
Assert.AreEqual(1, section.IndexOf(second));
|
|
}
|
|
|
|
[Test]
|
|
public void Insert()
|
|
{
|
|
var section = new TableSection();
|
|
section.Add(new TextCell { Text = "Text" });
|
|
section.Add(new TextCell { Text = "Text" });
|
|
|
|
var third = new TextCell { Text = "Text" };
|
|
section.Insert(1, third);
|
|
Assert.AreEqual(third, section[1]);
|
|
}
|
|
|
|
[Test]
|
|
public void RemoveAt()
|
|
{
|
|
var section = new TableSection();
|
|
TextCell first, second;
|
|
section.Add(first = new TextCell { Text = "Text" });
|
|
section.Add(second = new TextCell { Text = "Text" });
|
|
|
|
section.RemoveAt(0);
|
|
Assert.That(section, Has.No.Contains(first));
|
|
}
|
|
|
|
[Test]
|
|
public void Overwrite()
|
|
{
|
|
var section = new TableSection();
|
|
TextCell second;
|
|
section.Add(new TextCell { Text = "Text" });
|
|
section.Add(second = new TextCell { Text = "Text" });
|
|
|
|
var third = new TextCell { Text = "Text" };
|
|
section[1] = third;
|
|
|
|
Assert.AreEqual(third, section[1]);
|
|
Assert.That(section, Has.No.Contains(second));
|
|
}
|
|
|
|
[Test]
|
|
public void CopyTo()
|
|
{
|
|
var section = new TableSection();
|
|
TextCell first, second;
|
|
section.Add(first = new TextCell { Text = "Text" });
|
|
section.Add(second = new TextCell { Text = "Text" });
|
|
|
|
Cell[] cells = new Cell[2];
|
|
section.CopyTo(cells, 0);
|
|
|
|
Assert.AreEqual(first, cells[0]);
|
|
Assert.AreEqual(second, cells[1]);
|
|
}
|
|
|
|
[Test]
|
|
public void ChainsBindingContextOnSet()
|
|
{
|
|
var section = new TableSection();
|
|
TextCell first, second;
|
|
section.Add(first = new TextCell { Text = "Text" });
|
|
section.Add(second = new TextCell { Text = "Text" });
|
|
|
|
var bindingContext = "bindingContext";
|
|
|
|
section.BindingContext = bindingContext;
|
|
|
|
Assert.AreEqual(bindingContext, first.BindingContext);
|
|
Assert.AreEqual(bindingContext, second.BindingContext);
|
|
}
|
|
|
|
[Test]
|
|
public void ChainsBindingContextWithExistingContext()
|
|
{
|
|
var section = new TableSection();
|
|
TextCell first, second;
|
|
section.Add(first = new TextCell { Text = "Text" });
|
|
section.Add(second = new TextCell { Text = "Text" });
|
|
|
|
var bindingContext = "bindingContext";
|
|
section.BindingContext = bindingContext;
|
|
|
|
bindingContext = "newContext";
|
|
section.BindingContext = bindingContext;
|
|
|
|
Assert.AreEqual(bindingContext, first.BindingContext);
|
|
Assert.AreEqual(bindingContext, second.BindingContext);
|
|
}
|
|
|
|
[Test]
|
|
public void ChainsBindingContextToNewlyAdded()
|
|
{
|
|
var section = new TableSection();
|
|
var bindingContext = "bindingContext";
|
|
section.BindingContext = bindingContext;
|
|
|
|
TextCell first, second;
|
|
section.Add(first = new TextCell { Text = "Text" });
|
|
section.Add(second = new TextCell { Text = "Text" });
|
|
|
|
Assert.AreEqual(bindingContext, first.BindingContext);
|
|
Assert.AreEqual(bindingContext, second.BindingContext);
|
|
}
|
|
|
|
[Test]
|
|
public void TestBindingTitleSectionChange()
|
|
{
|
|
var vm = new MockViewModel { Text = "FooBar" };
|
|
var section = new TableSection();
|
|
|
|
section.BindingContext = vm;
|
|
section.SetBinding(TableSectionBase.TitleProperty, "Text");
|
|
|
|
Assert.AreEqual("FooBar", section.Title);
|
|
|
|
vm.Text = "Baz";
|
|
|
|
Assert.AreEqual("Baz", section.Title);
|
|
}
|
|
|
|
[Test]
|
|
public void TestBindingTitle()
|
|
{
|
|
var section = new TableSection();
|
|
var mock = new MockViewModel();
|
|
section.BindingContext = mock;
|
|
section.SetBinding(TableSection.TitleProperty, new Binding("Text"));
|
|
|
|
Assert.AreEqual(mock.Text, section.Title);
|
|
}
|
|
}
|
|
}
|