using System; using System.Collections.Generic; using System.Linq; using Chernobyl.Event; using NUnit.Framework; namespace Chernobyl.Collections.Generic.Event { [TestFixture, Description("Tests for the SelectEventEnumerable type.")] public class SelectEventEnumerableTests : EnumerationTests { public SelectEventEnumerableTests() : base(true) { } #region Overridables /// /// Creates the /// instance that is to be tested. /// /// The sequence that is to be treated as the source. /// The instance to be tested. protected virtual SelectEventEnumerable CreateSelectEventEnumerable(IEventEnumerable source) { return new SelectEventEnumerable(source, (value, index, handler) => handler(null, new ValueChangedEventArgs(string.Empty, Convert.ToString(value))), (value, index, handler) => { /* no-op */ }); } protected override IEnumerable CreateSingleItemEnumerable() { return CreateSelectEventEnumerable(new DecoratingEventList(new[] {1})); } protected override IEnumerable CreateManyItemEnumerable() { return CreateSelectEventEnumerable(new DecoratingEventList(_items)); } protected override IEnumerable OrderedItems { get { return _items.Select(i => Convert.ToString(i)); } } #endregion readonly IList _items = new List(new[] { 1, 2, 3, 4, 5, 6 }); } }