From 4bfb40007a95ca5f6ea961369c8682f986dfb56d Mon Sep 17 00:00:00 2001 From: mlemanczyk Date: Sun, 15 Jan 2023 20:19:01 +0100 Subject: [PATCH] Missing IList interface added. Tiny cleanup. --- Recyclable.Collections/RecyclableArrayList.cs | 11 +---------- .../RecyclableArrayListTests.cs | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/Recyclable.Collections/RecyclableArrayList.cs b/Recyclable.Collections/RecyclableArrayList.cs index 3591ecb..8294b0a 100644 --- a/Recyclable.Collections/RecyclableArrayList.cs +++ b/Recyclable.Collections/RecyclableArrayList.cs @@ -4,7 +4,7 @@ using System.Runtime.CompilerServices; namespace Recyclable.Collections { - public class RecyclableArrayList : IEnumerable, IDisposable + public class RecyclableArrayList : IEnumerable, IList, IDisposable { private static readonly ArrayPool _arrayPool = ArrayPool.Create(); private static readonly IEqualityComparer _equalityComparer = EqualityComparer.Default; @@ -296,15 +296,6 @@ namespace Recyclable.Collections } _count = targetIndex; - - //foreach (var item in source) - //{ - // if (capacity == count) - // { - // } - - // Add(item); - //} } public void Clear() diff --git a/Recyclable.CollectionsTests/RecyclableArrayListTests.cs b/Recyclable.CollectionsTests/RecyclableArrayListTests.cs index db99cc3..66ff6a6 100644 --- a/Recyclable.CollectionsTests/RecyclableArrayListTests.cs +++ b/Recyclable.CollectionsTests/RecyclableArrayListTests.cs @@ -237,5 +237,22 @@ namespace Recyclable.CollectionsTests .And.ContainInConsecutiveOrder(testData) .And.BeEquivalentTo(testData); } + + [Fact] + public void CopyToShouldCopyAllItemsInTheCorrectOrder() + { + // Prepare + var testData = _testData.ToArray(); + var list = new RecyclableArrayList(testData); + int[] yieldedItems = new int[testData.Length]; + + // Act + list.CopyTo(yieldedItems, 0); + + // Validate + _ = yieldedItems.Should().HaveCount(testData.Length) + .And.ContainInConsecutiveOrder(testData) + .And.BeEquivalentTo(testData); + } } }