|
5 | 5 | using NUnit.Framework; |
6 | 6 | using System; |
7 | 7 | using System.Buffers.Binary; |
8 | | -using System.Collections.Generic; |
9 | 8 | using System.Data; |
10 | 9 | using System.Linq; |
11 | 10 | using System.Text; |
@@ -1640,179 +1639,4 @@ await server |
1640 | 1639 |
|
1641 | 1640 | Assert.That(connection.PostgresParameters, Contains.Key("SomeKey").WithValue("SomeValue")); |
1642 | 1641 | } |
1643 | | - |
1644 | | - #region Logging |
1645 | | - |
1646 | | - [Test] |
1647 | | - public async Task Log_ExecuteScalar_single_statement_without_parameters() |
1648 | | - { |
1649 | | - await using var dataSource = CreateLoggingDataSource(out var listLoggerProvider); |
1650 | | - await using var conn = await dataSource.OpenConnectionAsync(); |
1651 | | - await using var cmd = new NpgsqlCommand("SELECT 1", conn); |
1652 | | - |
1653 | | - using (listLoggerProvider.Record()) |
1654 | | - { |
1655 | | - await cmd.ExecuteScalarAsync(); |
1656 | | - } |
1657 | | - |
1658 | | - var executingCommandEvent = listLoggerProvider.Log.Single(l => l.Id == NpgsqlEventId.CommandExecutionCompleted); |
1659 | | - Assert.That(executingCommandEvent.Message, Does.Contain("Command execution completed").And.Contains("SELECT 1")); |
1660 | | - AssertLoggingStateContains(executingCommandEvent, "CommandText", "SELECT 1"); |
1661 | | - AssertLoggingStateDoesNotContain(executingCommandEvent, "Parameters"); |
1662 | | - |
1663 | | - if (!IsMultiplexing) |
1664 | | - AssertLoggingStateContains(executingCommandEvent, "ConnectorId", conn.ProcessID); |
1665 | | - } |
1666 | | - |
1667 | | - [Test] |
1668 | | - public async Task Log_ExecuteScalar_single_statement_with_positional_parameters() |
1669 | | - { |
1670 | | - await using var dataSource = CreateLoggingDataSource(out var listLoggerProvider); |
1671 | | - await using var conn = await dataSource.OpenConnectionAsync(); |
1672 | | - await using var cmd = new NpgsqlCommand("SELECT $1, $2", conn); |
1673 | | - cmd.Parameters.Add(new() { Value = 8 }); |
1674 | | - cmd.Parameters.Add(new() { NpgsqlDbType = NpgsqlDbType.Integer, Value = DBNull.Value }); |
1675 | | - |
1676 | | - using (listLoggerProvider.Record()) |
1677 | | - { |
1678 | | - await cmd.ExecuteScalarAsync(); |
1679 | | - } |
1680 | | - |
1681 | | - var executingCommandEvent = listLoggerProvider.Log.Single(l => l.Id == NpgsqlEventId.CommandExecutionCompleted); |
1682 | | - Assert.That(executingCommandEvent.Message, Does.Contain("Command execution completed") |
1683 | | - .And.Contains("SELECT $1, $2") |
1684 | | - .And.Contains("Parameters: [8, NULL]")); |
1685 | | - AssertLoggingStateContains(executingCommandEvent, "CommandText", "SELECT $1, $2"); |
1686 | | - AssertLoggingStateContains(executingCommandEvent, "Parameters", new object[] { 8, "NULL" }); |
1687 | | - |
1688 | | - if (!IsMultiplexing) |
1689 | | - AssertLoggingStateContains(executingCommandEvent, "ConnectorId", conn.ProcessID); |
1690 | | - } |
1691 | | - |
1692 | | - [Test] |
1693 | | - public async Task Log_ExecuteScalar_single_statement_with_named_parameters() |
1694 | | - { |
1695 | | - await using var dataSource = CreateLoggingDataSource(out var listLoggerProvider); |
1696 | | - await using var conn = await dataSource.OpenConnectionAsync(); |
1697 | | - await using var cmd = new NpgsqlCommand("SELECT @p1, @p2", conn); |
1698 | | - cmd.Parameters.Add(new() { ParameterName = "p1", Value = 8 }); |
1699 | | - cmd.Parameters.Add(new() { ParameterName = "p2", NpgsqlDbType = NpgsqlDbType.Integer, Value = DBNull.Value }); |
1700 | | - |
1701 | | - using (listLoggerProvider.Record()) |
1702 | | - { |
1703 | | - await cmd.ExecuteScalarAsync(); |
1704 | | - } |
1705 | | - |
1706 | | - var executingCommandEvent = listLoggerProvider.Log.Single(l => l.Id == NpgsqlEventId.CommandExecutionCompleted); |
1707 | | - Assert.That(executingCommandEvent.Message, Does.Contain("Command execution completed") |
1708 | | - .And.Contains("SELECT $1, $2") |
1709 | | - .And.Contains("Parameters: [8, NULL]")); |
1710 | | - AssertLoggingStateContains(executingCommandEvent, "CommandText", "SELECT $1, $2"); |
1711 | | - AssertLoggingStateContains(executingCommandEvent, "Parameters", new object[] { 8, "NULL" }); |
1712 | | - |
1713 | | - if (!IsMultiplexing) |
1714 | | - AssertLoggingStateContains(executingCommandEvent, "ConnectorId", conn.ProcessID); |
1715 | | - } |
1716 | | - |
1717 | | - [Test] |
1718 | | - public async Task Log_ExecuteScalar_single_statement_with_parameter_logging_off() |
1719 | | - { |
1720 | | - await using var dataSource = CreateLoggingDataSource(out var listLoggerProvider, sensitiveDataLoggingEnabled: false); |
1721 | | - await using var conn = await dataSource.OpenConnectionAsync(); |
1722 | | - await using var cmd = new NpgsqlCommand("SELECT $1, $2", conn); |
1723 | | - cmd.Parameters.Add(new() { Value = 8 }); |
1724 | | - cmd.Parameters.Add(new() { Value = 9 }); |
1725 | | - |
1726 | | - using (listLoggerProvider.Record()) |
1727 | | - { |
1728 | | - await cmd.ExecuteScalarAsync(); |
1729 | | - } |
1730 | | - |
1731 | | - var executingCommandEvent = listLoggerProvider.Log.Single(l => l.Id == NpgsqlEventId.CommandExecutionCompleted); |
1732 | | - Assert.That(executingCommandEvent.Message, Does.Contain("Command execution completed").And.Contains($"SELECT $1, $2")); |
1733 | | - AssertLoggingStateContains(executingCommandEvent, "CommandText", "SELECT $1, $2"); |
1734 | | - AssertLoggingStateDoesNotContain(executingCommandEvent, "Parameters"); |
1735 | | - } |
1736 | | - |
1737 | | - [Test] |
1738 | | - public async Task Log_ExecuteScalar_multiple_statement_without_parameters() |
1739 | | - { |
1740 | | - await using var dataSource = CreateLoggingDataSource(out var listLoggerProvider); |
1741 | | - await using var conn = await dataSource.OpenConnectionAsync(); |
1742 | | - await using var cmd = new NpgsqlCommand("SELECT 1; SELECT 2", conn); |
1743 | | - |
1744 | | - using (listLoggerProvider.Record()) |
1745 | | - { |
1746 | | - await cmd.ExecuteScalarAsync(); |
1747 | | - } |
1748 | | - |
1749 | | - var executingCommandEvent = listLoggerProvider.Log.Single(l => l.Id == NpgsqlEventId.CommandExecutionCompleted); |
1750 | | - Assert.That(executingCommandEvent.Message, Does.Contain("Batch execution completed").And.Contains("[(SELECT 1, System.Object[]), (SELECT 2, System.Object[])]")); |
1751 | | - var batchCommands = (IList<(string CommandText, object[] Parameters)>)AssertLoggingStateContains(executingCommandEvent, "BatchCommands"); |
1752 | | - Assert.That(batchCommands.Count, Is.EqualTo(2)); |
1753 | | - Assert.That(batchCommands[0].CommandText, Is.EqualTo("SELECT 1")); |
1754 | | - Assert.That(batchCommands[0].Parameters, Is.Empty); |
1755 | | - Assert.That(batchCommands[1].CommandText, Is.EqualTo("SELECT 2")); |
1756 | | - Assert.That(batchCommands[1].Parameters, Is.Empty); |
1757 | | - AssertLoggingStateDoesNotContain(executingCommandEvent, "Parameters"); |
1758 | | - |
1759 | | - if (!IsMultiplexing) |
1760 | | - AssertLoggingStateContains(executingCommandEvent, "ConnectorId", conn.ProcessID); |
1761 | | - } |
1762 | | - |
1763 | | - [Test] |
1764 | | - public async Task Log_ExecuteScalar_multiple_statement_with_parameters() |
1765 | | - { |
1766 | | - await using var dataSource = CreateLoggingDataSource(out var listLoggerProvider); |
1767 | | - await using var conn = await dataSource.OpenConnectionAsync(); |
1768 | | - await using var cmd = new NpgsqlCommand("SELECT @p1; SELECT @p2", conn); |
1769 | | - cmd.Parameters.Add(new() { ParameterName = "p1", Value = 8 }); |
1770 | | - cmd.Parameters.Add(new() { ParameterName = "p2", Value = 9 }); |
1771 | | - |
1772 | | - using (listLoggerProvider.Record()) |
1773 | | - { |
1774 | | - await cmd.ExecuteScalarAsync(); |
1775 | | - } |
1776 | | - |
1777 | | - var executingCommandEvent = listLoggerProvider.Log.Single(l => l.Id == NpgsqlEventId.CommandExecutionCompleted); |
1778 | | - Assert.That(executingCommandEvent.Message, Does.Contain("Batch execution completed").And.Contains("[(SELECT $1, System.Object[]), (SELECT $1, System.Object[])]")); |
1779 | | - var batchCommands = (IList<(string CommandText, object[] Parameters)>)AssertLoggingStateContains(executingCommandEvent, "BatchCommands"); |
1780 | | - Assert.That(batchCommands.Count, Is.EqualTo(2)); |
1781 | | - Assert.That(batchCommands[0].CommandText, Is.EqualTo("SELECT $1")); |
1782 | | - Assert.That(batchCommands[0].Parameters[0], Is.EqualTo(8)); |
1783 | | - Assert.That(batchCommands[1].CommandText, Is.EqualTo("SELECT $1")); |
1784 | | - Assert.That(batchCommands[1].Parameters[0], Is.EqualTo(9)); |
1785 | | - AssertLoggingStateDoesNotContain(executingCommandEvent, "Parameters"); |
1786 | | - |
1787 | | - if (!IsMultiplexing) |
1788 | | - AssertLoggingStateContains(executingCommandEvent, "ConnectorId", conn.ProcessID); |
1789 | | - } |
1790 | | - |
1791 | | - [Test] |
1792 | | - public async Task Log_ExecuteScalar_multiple_statement_with_parameter_logging_off() |
1793 | | - { |
1794 | | - await using var dataSource = CreateLoggingDataSource(out var listLoggerProvider, sensitiveDataLoggingEnabled: false); |
1795 | | - await using var conn = await dataSource.OpenConnectionAsync(); |
1796 | | - await using var cmd = new NpgsqlCommand("SELECT @p1; SELECT @p2", conn); |
1797 | | - cmd.Parameters.Add(new() { ParameterName = "p1", Value = 8 }); |
1798 | | - cmd.Parameters.Add(new() { ParameterName = "p2", Value = 9 }); |
1799 | | - |
1800 | | - using (listLoggerProvider.Record()) |
1801 | | - { |
1802 | | - await cmd.ExecuteScalarAsync(); |
1803 | | - } |
1804 | | - |
1805 | | - var executingCommandEvent = listLoggerProvider.Log.Single(l => l.Id == NpgsqlEventId.CommandExecutionCompleted); |
1806 | | - Assert.That(executingCommandEvent.Message, Does.Contain("Batch execution completed").And.Contains("[SELECT $1, SELECT $1]")); |
1807 | | - var batchCommands = (IList<string>)AssertLoggingStateContains(executingCommandEvent, "BatchCommands"); |
1808 | | - Assert.That(batchCommands.Count, Is.EqualTo(2)); |
1809 | | - Assert.That(batchCommands[0], Is.EqualTo("SELECT $1")); |
1810 | | - Assert.That(batchCommands[1], Is.EqualTo("SELECT $1")); |
1811 | | - AssertLoggingStateDoesNotContain(executingCommandEvent, "Parameters"); |
1812 | | - |
1813 | | - if (!IsMultiplexing) |
1814 | | - AssertLoggingStateContains(executingCommandEvent, "ConnectorId", conn.ProcessID); |
1815 | | - } |
1816 | | - |
1817 | | - #endregion Logging |
1818 | 1642 | } |
0 commit comments