예제 #1
0
        public void ExecuteScalarUsesTypeConvertersToResolveResultType()
        {
            var result = (byte)1;

            var mockSqlDialect = new Mock <ISqlDialect>();

            var mockCommand = new Mock <IDbCommand>();

            mockCommand.Setup(x => x.ExecuteScalar()).Returns(result);

            var mockConnection = new Mock <IDbConnection>();

            mockConnection.Setup(x => x.CreateCommand()).Returns(mockCommand.Object);

            var mockDbDriver = new Mock <IDbDriver>();

            mockDbDriver.Setup(x => x.CreateConnection()).Returns(new MockDbConnectionWrapper(mockConnection.Object));

            var session = new AsyncSession(
                ConnectionScope.PerTransaction,
                mockSqlDialect.Object,
                mockDbDriver.Object,
                new SessionListeners());

            Assert.Equal((CustomerStatus)result, session.ExecuteScalarAsync <CustomerStatus>(new SqlQuery("")).Result);

            mockDbDriver.VerifyAll();
            mockCommand.VerifyAll();
        }
예제 #2
0
        public void ExecuteScalarBuildsAndExecutesCommand()
        {
            var result = new object();

            var mockSqlDialect = new Mock <ISqlDialect>();

            var mockCommand = new Mock <IDbCommand>();

            mockCommand.Setup(x => x.ExecuteScalar()).Returns(result);

            var mockConnection = new Mock <IDbConnection>();

            mockConnection.Setup(x => x.CreateCommand()).Returns(mockCommand.Object);

            var mockDbDriver = new Mock <IDbDriver>();

            mockDbDriver.Setup(x => x.CreateConnection()).Returns(new MockDbConnectionWrapper(mockConnection.Object));

            var session = new AsyncSession(
                ConnectionScope.PerTransaction,
                mockSqlDialect.Object,
                mockDbDriver.Object,
                new SessionListeners());

            Assert.Equal(result, session.ExecuteScalarAsync <object>(new SqlQuery("")).Result);

            mockDbDriver.VerifyAll();
            mockCommand.VerifyAll();
        }
예제 #3
0
        public void ExecuteScalarThrowsArgumentNullExceptionForNullSqlQuery()
        {
            var session = new AsyncSession(
                ConnectionScope.PerTransaction,
                new Mock <ISqlDialect>().Object,
                new Mock <IDbDriver>().Object,
                new SessionListeners());

            var exception = Assert.Throws <AggregateException>(
                () => session.ExecuteScalarAsync <object>(null).Result);

            Assert.Equal("sqlQuery", ((ArgumentNullException)exception.InnerException).ParamName);
        }
예제 #4
0
        public void ExecuteScalarThrowsObjectDisposedExceptionIfDisposed()
        {
            var session = new AsyncSession(
                ConnectionScope.PerTransaction,
                new Mock <ISqlDialect>().Object,
                new Mock <IDbDriver>().Object,
                new SessionListeners());

            using (session)
            {
            }

            var exception = Assert.Throws <AggregateException>(
                () => session.ExecuteScalarAsync <int>(new SqlQuery("SELECT")).Result);

            Assert.IsType <ObjectDisposedException>(exception.InnerException);
        }
예제 #5
0
        public void ExecuteScalarUsesTypeConvertersToResolveResultType()
        {
            var result = (byte)1;

            var mockSqlDialect = new Mock<ISqlDialect>();

            var mockCommand = new Mock<IDbCommand>();
            mockCommand.Setup(x => x.ExecuteScalar()).Returns(result);

            var mockConnection = new Mock<IDbConnection>();
            mockConnection.Setup(x => x.CreateCommand()).Returns(mockCommand.Object);

            var mockDbDriver = new Mock<IDbDriver>();
            mockDbDriver.Setup(x => x.CreateConnection()).Returns(new MockDbConnectionWrapper(mockConnection.Object));

            var session = new AsyncSession(
                ConnectionScope.PerTransaction,
                mockSqlDialect.Object,
                mockDbDriver.Object,
                new IDeleteListener[0],
                new IInsertListener[0],
                new IUpdateListener[0]);

            Assert.Equal((CustomerStatus)result, session.ExecuteScalarAsync<CustomerStatus>(new SqlQuery("")).Result);

            mockDbDriver.VerifyAll();
            mockCommand.VerifyAll();
        }
예제 #6
0
        public void ExecuteScalarThrowsObjectDisposedExceptionIfDisposed()
        {
            var session = new AsyncSession(
                ConnectionScope.PerTransaction,
                new Mock<ISqlDialect>().Object,
                new Mock<IDbDriver>().Object,
                new IDeleteListener[0],
                new IInsertListener[0],
                new IUpdateListener[0]);

            using (session)
            {
            }

            var exception = Assert.Throws<AggregateException>(
                () => session.ExecuteScalarAsync<int>(new SqlQuery("SELECT")).Result);

            Assert.IsType<ObjectDisposedException>(exception.InnerException);
        }
예제 #7
0
        public void ExecuteScalarThrowsArgumentNullExceptionForNullSqlQuery()
        {
            var session = new AsyncSession(
                ConnectionScope.PerTransaction,
                new Mock<ISqlDialect>().Object,
                new Mock<IDbDriver>().Object,
                new IDeleteListener[0],
                new IInsertListener[0],
                new IUpdateListener[0]);

            var exception = Assert.Throws<AggregateException>(
                () => session.ExecuteScalarAsync<object>(null).Result);

            Assert.Equal("sqlQuery", ((ArgumentNullException)exception.InnerException).ParamName);
        }
예제 #8
0
        public void ExecuteScalarBuildsAndExecutesCommand()
        {
            var result = new object();

            var mockSqlDialect = new Mock<ISqlDialect>();

            var mockCommand = new Mock<IDbCommand>();
            mockCommand.Setup(x => x.ExecuteScalar()).Returns(result);

            var mockConnection = new Mock<IDbConnection>();
            mockConnection.Setup(x => x.CreateCommand()).Returns(mockCommand.Object);

            var mockDbDriver = new Mock<IDbDriver>();
            mockDbDriver.Setup(x => x.CreateConnection()).Returns(new MockDbConnectionWrapper(mockConnection.Object));

            var session = new AsyncSession(
                ConnectionScope.PerTransaction,
                mockSqlDialect.Object,
                mockDbDriver.Object,
                new IDeleteListener[0],
                new IInsertListener[0],
                new IUpdateListener[0]);

            Assert.Equal(result, session.ExecuteScalarAsync<object>(new SqlQuery("")).Result);

            mockDbDriver.VerifyAll();
            mockCommand.VerifyAll();
        }