internal void ClosedInstance(DataSourceImpl instance) { lock (_lock) { _instances.Remove(instance); } }
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); } }
/// <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); }
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()); } }
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); }); }
/// <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); }