public void WhenCallingGetWritable_ThenGetConnectionGiveWritable()
        {
            var repCnx = new ReplicationConnection(this.CreateConnectionManager());
            var wCnx = repCnx.GetWritableConnection();
            var rCnx = repCnx.GetConnection();

            Assert.Equal("master", wCnx.ConnectionString);
            Assert.Equal("master", rCnx.ConnectionString);
            Assert.Equal(rCnx, wCnx);
        }
        public void WhenCallingDispose_ThenConnectionsAreDisposed()
        {
            var cnx = new Mock<IDbConnection>();
            cnx.Setup(c => c.Dispose()).Verifiable();

            var cnxManager = this.CreateConnectionManager(cnx.Object, cnx.Object);

            var repCnx = new ReplicationConnection(cnxManager);
            var wCnx = repCnx.GetWritableConnection();
            repCnx.Dispose();

            cnx.Verify(c => c.Dispose(), Times.Once(), "Dispose not called");
        }
        public void WhenBeginTransactionBeforeGetConnection_ThenBeginTransactionIsCalled()
        {
            var cnx = new Mock<IDbConnection>();
            cnx.Setup(c => c.BeginTransaction()).Verifiable();

            var cnxManager = this.CreateConnectionManager(cnx.Object, cnx.Object);

            var repCnx = new ReplicationConnection(cnxManager);
            repCnx.BeginTransaction();
            var wCnx = repCnx.GetConnection();

            cnx.Verify(c => c.BeginTransaction(), Times.Once(), "Begin transaction should have been called");
        }
 public ReplicationCommand(ReplicationConnection connection,
     ICommandTypeAnalyser cmdTypeAnalyzer)
 {
     this.connection = connection;
     this.cmdTypeAnalyzer = cmdTypeAnalyzer;
 }
        public void WhenChangeDatabaseBeforeGetConnection_ThenChangeDatabaseIsCalled()
        {
            string dbName = "my_test";
            var cnx = new Mock<IDbConnection>();
            cnx.Setup(c => c.ChangeDatabase(dbName)).Verifiable();

            var cnxManager = this.CreateConnectionManager(cnx.Object, cnx.Object);

            var repCnx = new ReplicationConnection(cnxManager);
            repCnx.ChangeDatabase(dbName);
            var wCnx = repCnx.GetConnection();

            cnx.Verify(c => c.ChangeDatabase(dbName), Times.Once(), "Change database should have been called");
        }
        public void WhenOpenBeforeGetWritable_ThenOpenIsCalled()
        {
            var cnx = new Mock<IDbConnection>();
            cnx.Setup(c => c.Open()).Verifiable();
            cnx.Setup(c => c.State).Returns(ConnectionState.Closed);

            var cnxManager = this.CreateConnectionManager(cnx.Object, cnx.Object);

            var repCnx = new ReplicationConnection(cnxManager);
            repCnx.Open();
            var wCnx = repCnx.GetWritableConnection();

            cnx.Verify(c => c.Open(), Times.Once(), "Open should have been called");
        }