Exemple #1
0
        public void Bulk_ShouldFlushAsync()
        {
            var mockDbConnection = new Mock <IDbConnection>(MockBehavior.Strict);

            mockDbConnection.Setup(c => c.CreateCommand()).Returns(() => new SqlCommand());

            using (IBulkedDbConnection bulk = mockDbConnection.Object.CreateBulkedDbConnection())
            {
                using (IDbCommand cmd = bulk.CreateCommand())
                {
                    cmd.CommandText = "DELETE FROM 'KUTYA'";
                    cmd.ExecuteNonQuery();
                }

                string bulkCmd = bulk.ToString();

                var mockDbCommand = new Mock <IDbCommand>(MockBehavior.Strict);
                mockDbCommand.Setup(cmd => cmd.ExecuteNonQuery()).Returns(0);
                mockDbCommand.Setup(cmd => cmd.Dispose());
                mockDbCommand.SetupSet(cmd => cmd.CommandText    = It.IsAny <string>()).Verifiable();
                mockDbCommand.SetupSet(cmd => cmd.Transaction    = null);
                mockDbCommand.SetupSet(cmd => cmd.CommandTimeout = It.IsAny <int>());
                mockDbCommand.SetupGet(cmd => cmd.CommandText).Returns(bulkCmd);

                mockDbConnection.Setup(c => c.CreateCommand()).Returns(() => mockDbCommand.Object);

                Assert.DoesNotThrowAsync(() => bulk.FlushAsync());
                Assert.That(bulk.ToString().Length, Is.EqualTo(0));

                mockDbCommand.VerifySet(cmd => cmd.CommandText = It.Is <string>(val => val == bulkCmd));
                mockDbCommand.Verify(cmd => cmd.ExecuteNonQuery(), Times.Once);
            }
        }
Exemple #2
0
        public void Bulk_ShouldNotAllowReadCommands()
        {
            var mockDbConnection = new Mock <IDbConnection>(MockBehavior.Strict);

            mockDbConnection.Setup(c => c.CreateCommand()).Returns(() => new SqlCommand());

            using (IBulkedDbConnection bulk = mockDbConnection.Object.CreateBulkedDbConnection())
            {
                using (IDbCommand cmd = bulk.CreateCommand())
                {
                    cmd.CommandText = "SELECT * FROM 'CICA'";
                    Assert.Throws <NotSupportedException>(() => cmd.ExecuteReader());
                }
            }
        }
Exemple #3
0
        public void Bulk_ShouldHandleParameters()
        {
            var mockDbConnection = new Mock <IDbConnection>(MockBehavior.Strict);

            mockDbConnection.Setup(c => c.CreateCommand()).Returns(() => new SqlCommand());

            using (IBulkedDbConnection bulk = mockDbConnection.Object.CreateBulkedDbConnection())
            {
                using (IDbCommand cmd = bulk.CreateCommand())
                {
                    cmd.CommandText = "INSERT INTO Region (RegionID, RegionDescription) VALUES (@RegionID, @RegionDescription)";
                    cmd.Parameters.Add(new SqlParameter {
                        DbType = DbType.Int32, ParameterName = "@RegionID", Value = 1
                    });
                    cmd.Parameters.Add(new SqlParameter {
                        DbType = DbType.String, ParameterName = "@RegionDescription", Value = "cica"
                    });
                    cmd.ExecuteNonQuery();
                }

                Assert.That(bulk.ToString(), Is.EqualTo("INSERT INTO Region (RegionID, RegionDescription) VALUES (1, 'cica');\r\n"));
            }
        }
Exemple #4
0
        public void Bulk_ShouldInterceptWriteCommands()
        {
            const string
                CMD_1 = "DELETE FROM 'KUTYA'",
                CMD_2 = "DELETE FROM 'CICA'";

            var mockDbConnection = new Mock <IDbConnection>(MockBehavior.Strict);

            mockDbConnection.Setup(c => c.CreateCommand()).Returns(() => new SqlCommand());

            using (IBulkedDbConnection bulk = mockDbConnection.Object.CreateBulkedDbConnection())
            {
                foreach (string command in new[] { CMD_1, CMD_2 })
                {
                    using (IDbCommand cmd = bulk.CreateCommand())
                    {
                        cmd.CommandText = command;
                        cmd.ExecuteNonQuery();
                    }
                }

                Assert.That(bulk.ToString(), Is.EqualTo($"{CMD_1};\r\n{CMD_2};\r\n"));
            }
        }