Example #1
0
 internal void ClosedInstance(DataSourceImpl instance)
 {
     lock (_lock)
     {
         _instances.Remove(instance);
     }
 }
Example #2
0
 public void DataSourceImplTest()
 {
     // Arrange / Act
     using (var actual = new DataSourceImpl(() => new DsTestConnection())) {
         // Assert
         var fi         = actual.GetType().GetField("_connection", BindingFlags.Instance | BindingFlags.NonPublic);
         var connection = fi.GetValue(actual);
         Assert.IsNotNull(connection);
     }
 }
Example #3
0
        /// <summary>
        /// Called internally by the SDK to associate this test data source with an
        /// <see cref="LdClient"/> instance. You do not need to call this method.
        /// </summary>
        /// <param name="context">created internally by <c>LdClient</c></param>
        /// <param name="dataSourceUpdates">created internally by <c>LdClient</c></param>
        /// <returns>a data source instance</returns>
        public IDataSource CreateDataSource(LdClientContext context, IDataSourceUpdates dataSourceUpdates)
        {
            var instance = new DataSourceImpl(this, dataSourceUpdates, context.Basic.Logger.SubLogger("DataSource.TestData"));

            lock (_lock)
            {
                _instances.Add(instance);
            }
            return(instance);
        }
Example #4
0
        public void GetConnectionTest()
        {
            // Arrange
            using (var source = new DataSourceImpl(() => new DsTestConnection())) {
                // Act
                var actual = source.GetConnection();

                // Assert
                Assert.IsNotNull(actual);
                Assert.AreEqual(typeof(DsTestConnection), actual.GetType());
            }
        }
Example #5
0
        public void DisposeTest()
        {
            // Arrange
            var connection = new DsTestConnection();
            var source     = new DataSourceImpl(() => connection);

            // Act
            var actual = (DsTestConnection)source.GetConnection();

            source.Dispose();

            // Assert
            Assert.IsTrue(actual.IsDispose);
        }
        public void Decorate_Twice_Test()
        {
            // Arrange
            ConnectionDecorator target = new ConnectionDecorator();
            DataSourceImpl      ds     = new DataSourceImpl(() => new DbConnectionForConnectionDecorator());

            target.DataSource = ds;

            // Act/Assert
            target.Decorate(connection => {
                target.Decorate(connection2 => {
                    Assert.AreEqual(ConnectionState.Open, connection2.State);
                    Assert.AreEqual(connection, connection2);
                });
                Assert.AreEqual(ConnectionState.Open, connection.State);
            });
        }
Example #7
0
        /// <inheritdoc/>
        public IDataSource CreateDataSource(
            LdClientContext context,
            IDataSourceUpdateSink updateSink,
            User currentUser,
            bool inBackground
            )
        {
            var instance = new DataSourceImpl(
                this,
                updateSink,
                currentUser,
                context.BaseLogger.SubLogger("DataSource.TestData")
                );

            lock (_lock)
            {
                _instances.Add(instance);
            }
            return(instance);
        }