public void GetSortedItemsTest() { SortMapItem sortMapItem = new SortMapItem(); Assert.IsNotNull(sortMapItem.UID); Assert.AreNotEqual(Guid.Empty, sortMapItem.UID); sortMapItem.AddItems(_unsortArr1); var countLines = sortMapItem.CountLines(); var expectedCount = _unsortArr1.Length; Assert.AreEqual(expectedCount, countLines); sortMapItem.AddItems(_unsortArr3); countLines = sortMapItem.CountLines(); expectedCount += _unsortArr3.Length; Assert.AreEqual(expectedCount, countLines); sortMapItem.AddItems(_unsortArr2); countLines = sortMapItem.CountLines(); expectedCount += _unsortArr2.Length; Assert.AreEqual(expectedCount, countLines); var resultsSorted = this.GetSortedStream(sortMapItem); Assert.IsTrue(_sortedArr1.SequenceEqual(resultsSorted)); sortMapItem.Dispose(); Assert.Pass("Arrays was sorted as expected"); }
/// <summary> /// Gets data from SortMapItem - Sorted Stream of text lines, and coverts it to IEnumerable /// </summary> /// <param name="sortMapItem">Instance to read from. </param> /// <returns> Sorted data from instance </returns> private IEnumerable <string> GetSortedStream(SortMapItem sortMapItem) { using (Stream streamSorted = sortMapItem.GetSortedItems()) { using (StreamReader reader = new StreamReader(streamSorted)) { string line; while ((line = reader.ReadLine()) != null) { yield return(line); } reader.Close(); } } }