Advertisement
Guest User

SingleOrNull tests

a guest
May 8th, 2015
443
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.57 KB | None | 0 0
  1. namespace CompanyName.Linq.Test
  2. {
  3.     using CompanyName.Linq;
  4.     using Microsoft.VisualStudio.TestTools.UnitTesting;
  5.     using System;
  6.     using System.Collections;
  7.     using System.Collections.Generic;
  8.     using System.Diagnostics;
  9.  
  10.     [TestClass]
  11.     public class EnumerableExtensionsTester
  12.     {
  13.         [TestMethod]
  14.         [ExpectedException(typeof(ArgumentNullException))]
  15.         public void TestSingleOrNull_NullSource()
  16.         {
  17.             IEnumerable<int> enumerable = null;
  18.             enumerable.SingleOrNull();
  19.         }
  20.  
  21.         [TestMethod]
  22.         public void TestSingleOrNull_EmptyList()
  23.         {
  24.             var enumerable = new int[0];
  25.             var result = enumerable.SingleOrNull();
  26.             Assert.IsNull(result);
  27.         }
  28.  
  29.         [TestMethod]
  30.         public void TestSingleOrNull_SingleElementList()
  31.         {
  32.             var enumerable = new[] { 42 };
  33.             var result = enumerable.SingleOrNull();
  34.             Assert.AreEqual(42, result);
  35.         }
  36.  
  37.         [TestMethod]
  38.         public void TestSingleOrNull_MultiElementList()
  39.         {
  40.             var enumerable = new[] { 42, 43 };
  41.             var result = enumerable.SingleOrNull();
  42.             Assert.IsNull(result);
  43.         }
  44.  
  45.         private sealed class EnumerableFake<T> : IEnumerable<T>
  46.         {
  47.             private readonly IEnumerable<T> source;
  48.  
  49.             public EnumerableFake(IEnumerable<T> source)
  50.             {
  51.                 Debug.Assert(source != null);
  52.                 this.source = source;
  53.             }
  54.  
  55.             public IEnumerator<T> GetEnumerator()
  56.             {
  57.                 return source.GetEnumerator();
  58.             }
  59.  
  60.             IEnumerator IEnumerable.GetEnumerator()
  61.             {
  62.                 return source.GetEnumerator();
  63.             }
  64.         }
  65.  
  66.         [TestMethod]
  67.         public void TestSingleOrNull_Empty()
  68.         {
  69.             var enumerable = new EnumerableFake<int>(new int[0]);
  70.             var result = enumerable.SingleOrNull();
  71.             Assert.IsNull(result);
  72.         }
  73.  
  74.         [TestMethod]
  75.         public void TestSingleOrNull_SingleElement()
  76.         {
  77.             var enumerable = new EnumerableFake<int>(new[] { 42 });
  78.             var result = enumerable.SingleOrNull();
  79.             Assert.AreEqual(42, result);
  80.         }
  81.  
  82.         [TestMethod]
  83.         public void TestSingleOrNull_MultiElement()
  84.         {
  85.             var enumerable = new EnumerableFake<int>(new[] { 42, 43 });
  86.             var result = enumerable.SingleOrNull();
  87.             Assert.IsNull(result);
  88.         }
  89.     }
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement