diff UnitTests/Linq/Exceptions/Aggregation.cs @ 0:f990fcb411a9

Копия текущей версии из github
author cin
date Thu, 27 Mar 2014 21:46:09 +0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/UnitTests/Linq/Exceptions/Aggregation.cs	Thu Mar 27 21:46:09 2014 +0400
@@ -0,0 +1,47 @@
+using System;
+using System.Linq;
+
+using NUnit.Framework;
+
+namespace Data.Exceptions
+{
+	using Linq;
+
+	[TestFixture]
+	public class Aggregtion : TestBase
+	{
+		[Test, ExpectedException(typeof(InvalidOperationException))]
+		public void NonNullableMax1()
+		{
+			ForEachProvider(typeof(InvalidOperationException), db =>
+			{
+				var value = db.Parent.Where(_ => _.ParentID < 0).Max(_ => _.ParentID);
+			});
+		}
+
+		[Test]
+		public void NonNullableMax2()
+		{
+			ForEachProvider(db =>
+			{
+				var q =
+					from p in db.Parent
+					select new
+					{
+						max = p.Children.Where(_ => _.ParentID < 0).Max(_ => _.ParentID)
+					};
+
+				Assert.Catch<InvalidOperationException>(() => q.ToList());
+			});
+		}
+
+		[Test, ExpectedException(typeof(InvalidOperationException))]
+		public void NonNullableAverage()
+		{
+			ForEachProvider(typeof(InvalidOperationException), db =>
+			{
+				var value = db.Parent.Where(_ => _.ParentID < 0).Average(_ => _.ParentID);
+			});
+		}
+	}
+}