示例#1
0
            public void ExecuteReaderAsync_throws_OperationCanceledException_before_executing_command_if_task_is_cancelled()
            {
                var entityCommand = new EntityCommand();

                Assert.Throws <OperationCanceledException>(
                    () => entityCommand
                    .ExecuteReaderAsync(new CancellationToken(canceled: true))
                    .GetAwaiter().GetResult());

                Assert.Throws <OperationCanceledException>(
                    () => entityCommand
                    .ExecuteReaderAsync(CommandBehavior.Default, new CancellationToken(canceled: true))
                    .GetAwaiter().GetResult());
            }
示例#2
0
            public void EntityCommandDefinition_is_executed_with_correct_EntityCommand_and_CommandBehavior()
            {
                var entityConnection      = MockHelper.CreateEntityConnection();
                var passedEntityCommand   = default(EntityCommand);
                var passedCommandbehavior = default(CommandBehavior);
                var storeDataReader       = new Mock <DbDataReader>().Object;

                var entityCommandDefinitionMock = new Mock <EntityCommandDefinition>(MockBehavior.Strict, null, null, null);

                entityCommandDefinitionMock.SetupGet(m => m.Parameters).Returns(Enumerable.Empty <EntityParameter>());
                entityCommandDefinitionMock.Setup(
                    m => m.ExecuteAsync(It.IsAny <EntityCommand>(), It.IsAny <CommandBehavior>(), It.IsAny <CancellationToken>())).
                Returns(Task.FromResult(storeDataReader)).
                Callback(
                    (EntityCommand ec, CommandBehavior cb, CancellationToken ct) =>
                {
                    passedEntityCommand   = ec;
                    passedCommandbehavior = cb;
                });

                var entityCommand = new EntityCommand(
                    entityConnection, entityCommandDefinitionMock.Object, new DbInterceptionContext());

                var commandBehavior = CommandBehavior.SequentialAccess;

                entityCommand.ExecuteReaderAsync(commandBehavior).Wait();

                Assert.Same(entityCommand, passedEntityCommand);
                Assert.Equal(passedCommandbehavior, commandBehavior);
                entityCommandDefinitionMock.Verify(
                    m => m.ExecuteAsync(entityCommand, commandBehavior, CancellationToken.None), Times.Once());
            }
示例#3
0
            public void Exception_thrown_if_EntityConnection_is_not_set()
            {
                var entityCommand = new EntityCommand(string.Empty, default(EntityConnection));

                AssertThrowsInAsyncMethod <InvalidOperationException>(
                    Strings.EntityClient_NoConnectionForCommand,
                    () => entityCommand.ExecuteReaderAsync(CommandBehavior.Default).Wait());
            }
示例#4
0
            public void Exception_thrown_if_EntityConnection_StoreProviderFactory_is_not_set()
            {
                var entityConnectionMock = new Mock <EntityConnection>();

                entityConnectionMock.SetupGet(m => m.StoreProviderFactory).Returns(default(DbProviderFactory));

                var entityCommand = new EntityCommand(string.Empty, entityConnectionMock.Object);

                AssertThrowsInAsyncMethod <InvalidOperationException>(
                    Strings.EntityClient_ConnectionStringNeededBeforeOperation,
                    () => entityCommand.ExecuteReaderAsync(CommandBehavior.Default).Wait());
            }
示例#5
0
            public void Exception_thrown_if_EntityConnection_State_is_Broken()
            {
                var providerFactory      = new Mock <DbProviderFactory>(MockBehavior.Strict).Object;
                var dbConnection         = new Mock <DbConnection>().Object;
                var entityConnectionMock = new Mock <EntityConnection>();

                entityConnectionMock.SetupGet(m => m.StoreProviderFactory).Returns(providerFactory);
                entityConnectionMock.SetupGet(m => m.StoreConnection).Returns(dbConnection);
                entityConnectionMock.SetupGet(m => m.State).Returns(ConnectionState.Broken);

                var entityCommand = new EntityCommand(string.Empty, entityConnectionMock.Object);

                AssertThrowsInAsyncMethod <InvalidOperationException>(
                    Strings.EntityClient_ExecutingOnClosedConnection(Strings.EntityClient_ConnectionStateBroken),
                    () => entityCommand.ExecuteReaderAsync(CommandBehavior.Default).Wait());
            }