79609611

Date: 2025-05-06 23:18:17
Score: 0.5
Natty:
Report link
using Moq;
using Xunit;
using System.Data;
using Oracle.ManagedDataAccess.Client;

public class CConexionContextTests
{
    [Fact]
    public void GetConnection_ShouldOpenConnection_WhenConexionIsNull()
    {
        // Arrange
        var mockOracleConnection = new Mock<OracleConnection>();
        var mockConexionContext = new Mock<CConexionContext>();

        // Simulamos que la cadena de conexión es la esperada
        mockConexionContext.Setup(c => c.getStringConnection()).Returns("Data Source=someSource;User Id=someUser;Password=somePass;");
        
        // Simulamos el comportamiento de la conexión Oracle
        mockOracleConnection.Setup(c => c.Open()).Verifiable();
        mockOracleConnection.Setup(c => c.State).Returns(ConnectionState.Open);

        // Act
        var result = mockConexionContext.Object.GetConnection(ref mockOracleConnection.Object);

        // Assert
        mockOracleConnection.Verify(c => c.Open(), Times.Once()); // Verifica que Open haya sido llamado exactamente una vez.
        Assert.Equal(ConnectionState.Open, result.State); // Verifica que la conexión esté abierta.
    }

    [Fact]
    public void GetConnection_ShouldReturnExistingConnection_WhenConexionIsNotNull()
    {
        // Arrange
        var mockOracleConnection = new Mock<OracleConnection>();
        var mockConexionContext = new Mock<CConexionContext>();

        // Configurar la conexión mockeada
        mockOracleConnection.Setup(c => c.State).Returns(ConnectionState.Open);
        mockConexionContext.Setup(c => c.getStringConnection()).Returns("Data Source=someSource;User Id=someUser;Password=somePass;");
        
        // Act
        var result = mockConexionContext.Object.GetConnection(ref mockOracleConnection.Object);
        
        // Assert
        Assert.Equal(ConnectionState.Open, result.State); // Verifica que la conexión esté abierta.
        mockOracleConnection.Verify(c => c.Open(), Times.Never()); // No debe llamarse a Open, ya que la conexión ya está abierta.
    }
}
Reasons:
  • Blacklisted phrase (1): está
  • Long answer (-1):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: Alan Godinez Rodriguez