view 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 source

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);
			});
		}
	}
}