public void TrySingle_WherePredicateMatchesNoItems_ReturnsNoValue() { IEnumerable<string> source = new[] { "Foo", "Baz", "Boo", "Quix" }; var result = source.TrySingle(x => false); Assert.IsFalse(result.HasValue); }
public void TrySingle_WherePredicateMatchesMultipleItems_ThrowsException() { IEnumerable<string> source = new[] { "Foo", "Baz", "Boo", "Quix" }; var results = source.TrySingle(x => x.StartsWith("B")); Assert.Throws<InvalidOperationException>(() => results.Run()); }
public void TrySingle_WherePredicateMatchesOneItem_ReturnsMatchingItem() { IEnumerable<string> source = new[] { "Foo", "Baz", "Boo", "Quix" }; var result = source.TrySingle(x => x.StartsWith("Bo")); Assert.IsTrue(result.HasValue); Assert.AreEqual("Boo", result.Value); }
public void TrySingle_WithOnlyItemNull_ReturnsNoValue() { IEnumerable<string> source = new[] { (string)null }; var result = source.TrySingle(); Assert.IsFalse(result.HasValue); result = source.TrySingle(x => true); Assert.IsFalse(result.HasValue); }
public void TrySingle_WithManyItems_ThrowsExceptionImmediately() { IEnumerable<int> source = new[] { 42, 84, 168 }; var results = source.TrySingle(); Assert.Throws<InvalidOperationException>(() => results.Run()); results = source.TrySingle(x => true); Assert.Throws<InvalidOperationException>(() => results.Run()); }
public void TrySingle_WithOneItem_ReturnsItem() { IEnumerable<int> source = new[] { 42 }; var result = source.TrySingle(); Assert.IsTrue(result.HasValue); Assert.AreEqual(42, result.Value); result = source.TrySingle(x => true); Assert.IsTrue(result.HasValue); Assert.AreEqual(42, result.Value); }