62 lines
2.2 KiB
C#
62 lines
2.2 KiB
C#
|
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.
|
|||
|
|
|||
|
namespace System.Data.Entity.Internal
|
|||
|
{
|
|||
|
using System.Data.Entity.Internal.Linq;
|
|||
|
using System.Linq.Expressions;
|
|||
|
using Moq;
|
|||
|
using Xunit;
|
|||
|
|
|||
|
public class InternalSqlSetQueryTests
|
|||
|
{
|
|||
|
[Fact]
|
|||
|
public void InternalSqlSetQuery_delegates_to_InternalSet_correctly_with_noTracking_and_buffering()
|
|||
|
{
|
|||
|
InternalSqlSetQuery_delegates_to_InternalSet_correctly(true, false);
|
|||
|
}
|
|||
|
|
|||
|
[Fact]
|
|||
|
public void InternalSqlSetQuery_delegates_to_InternalSet_correctly_with_tracking_and_streaming()
|
|||
|
{
|
|||
|
InternalSqlSetQuery_delegates_to_InternalSet_correctly(false, true);
|
|||
|
}
|
|||
|
|
|||
|
private void InternalSqlSetQuery_delegates_to_InternalSet_correctly(bool isNoTracking, bool streaming)
|
|||
|
{
|
|||
|
var parameters = new[] { "bar" };
|
|||
|
|
|||
|
#if !NET40
|
|||
|
VerifyMethod<string>(
|
|||
|
e => e.GetAsyncEnumerator(), m => m.ExecuteSqlQueryAsync("foo", isNoTracking, streaming, parameters),
|
|||
|
"foo", isNoTracking, streaming, parameters);
|
|||
|
#endif
|
|||
|
|
|||
|
VerifyMethod<string>(
|
|||
|
e => e.GetEnumerator(), m => m.ExecuteSqlQuery("foo", isNoTracking, streaming, parameters),
|
|||
|
"foo", isNoTracking, streaming, parameters);
|
|||
|
}
|
|||
|
|
|||
|
internal void VerifyMethod<T>(
|
|||
|
Action<InternalSqlSetQuery> methodInvoke, Expression<Action<IInternalSet<T>>> mockMethodInvoke,
|
|||
|
string sql, bool isNoTracking, bool streaming, object[] parameters)
|
|||
|
where T : class
|
|||
|
{
|
|||
|
Assert.NotNull(methodInvoke);
|
|||
|
Assert.NotNull(mockMethodInvoke);
|
|||
|
|
|||
|
var internalSetMock = new Mock<IInternalSet<T>>();
|
|||
|
var sqlSetQuery = new InternalSqlSetQuery(internalSetMock.Object, sql, isNoTracking, streaming, parameters);
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
methodInvoke(sqlSetQuery);
|
|||
|
}
|
|||
|
catch (Exception)
|
|||
|
{
|
|||
|
}
|
|||
|
|
|||
|
internalSetMock.Verify(mockMethodInvoke, Times.Once());
|
|||
|
}
|
|||
|
}
|
|||
|
}
|