public ClassDefinition( string id, Type classType, bool isAbstract, ClassDefinition baseClass, Type storageGroupType, IPersistentMixinFinder persistentMixinFinder, IDomainObjectCreator instanceCreator) { ArgumentUtility.CheckNotNullOrEmpty("id", id); ArgumentUtility.CheckNotNull("classType", classType); ArgumentUtility.CheckNotNull("persistentMixinFinder", persistentMixinFinder); _id = id; _storageGroupType = storageGroupType; _classType = classType; _persistentMixinFinder = persistentMixinFinder; _isAbstract = isAbstract; _propertyAccessorDataCache = new PropertyAccessorDataCache(this); _cachedRelationEndPointDefinitions = new DoubleCheckedLockingContainer <RelationEndPointDefinitionCollection> ( () => RelationEndPointDefinitionCollection.CreateForAllRelationEndPoints(this, true)); _cachedPropertyDefinitions = new DoubleCheckedLockingContainer <PropertyDefinitionCollection> ( () => new PropertyDefinitionCollection(PropertyDefinitionCollection.CreateForAllProperties(this, true), true)); _baseClass = baseClass; _instanceCreator = instanceCreator; _handleCreator = new Lazy <Func <ObjectID, IDomainObjectHandle <DomainObject> > > (BuildHandleCreator, LazyThreadSafetyMode.PublicationOnly); }
/// <summary> /// Initializes a new instance of the <see cref="ExtensibleEnumDefinition{T}"/> class. /// </summary> /// <param name="valueDiscoveryService">An implementation of <see cref="IExtensibleEnumValueDiscoveryService"/> used to discover the values /// for this <see cref="ExtensibleEnumDefinition{T}"/>.</param> public ExtensibleEnumDefinition(IExtensibleEnumValueDiscoveryService valueDiscoveryService) { ArgumentUtility.CheckNotNull("valueDiscoveryService", valueDiscoveryService); _valueDiscoveryService = valueDiscoveryService; _cache = new DoubleCheckedLockingContainer <CacheItem> (RetrieveValues); }
public void HasValue() { SampleClass expected = new SampleClass(); IFactory mockFactory = _mocks.StrictMock <IFactory> (); DoubleCheckedLockingContainer <SampleClass> container = new DoubleCheckedLockingContainer <SampleClass> (delegate { return(mockFactory.Create()); }); _mocks.ReplayAll(); Assert.That(container.HasValue, Is.False); _mocks.VerifyAll(); _mocks.BackToRecordAll(); Expect.Call(mockFactory.Create()).Return(expected); _mocks.ReplayAll(); SampleClass actual = container.Value; Assert.That(container.HasValue, Is.True); _mocks.VerifyAll(); container.Value = null; Assert.That(container.HasValue, Is.False); }
public MixinIntroducedMethodInformation(InterfaceImplementationMethodInformation mixinMethodInfo) { ArgumentUtility.CheckNotNull("mixinMethodInfo", mixinMethodInfo); _mixinMethodInfo = mixinMethodInfo; _methodInterfaceDeclarationCache = new DoubleCheckedLockingContainer <ICollection <IMethodInformation> > (() => _mixinMethodInfo.FindInterfaceDeclarations().ConvertToCollection()); }
public void SetAndGetValue() { SampleClass expected = new SampleClass(); DoubleCheckedLockingContainer <SampleClass> container = new DoubleCheckedLockingContainer <SampleClass> (delegate { throw new NotImplementedException(); }); container.Value = expected; Assert.That(container.Value, Is.SameAs(expected)); }
protected override void OnDeserialized() { base.OnDeserialized(); var typeForBindableObjectClass = GetTypeForBindableObjectClass(); _mixinConfigurationAtInstantiationTime = MixinConfiguration.ActiveConfiguration; _bindableObjectProvider = BindableObjectProvider.GetProviderForBindableObjectType(typeForBindableObjectClass); _bindableObjectClass = new DoubleCheckedLockingContainer <BindableObjectClass> (InitializeBindableObjectClass); }
public QueryConfiguration() { _queries = new DoubleCheckedLockingContainer <QueryDefinitionCollection> (LoadAllQueryDefinitions); _queryFilesProperty = new ConfigurationProperty( "queryFiles", typeof(ConfigurationElementCollection <QueryFileElement>), null, ConfigurationPropertyOptions.None); _properties.Add(_queryFilesProperty); }
public void GetValueFromFactory() { SampleClass expected = new SampleClass(); IFactory mockFactory = _mocks.StrictMock <IFactory>(); DoubleCheckedLockingContainer <SampleClass> container = new DoubleCheckedLockingContainer <SampleClass> (delegate { return(mockFactory.Create()); }); Expect.Call(mockFactory.Create()).Return(expected); _mocks.ReplayAll(); SampleClass actual = container.Value; _mocks.VerifyAll(); Assert.That(actual, Is.SameAs(expected)); }
public StorageGroupElement() { _storageGroup = new DoubleCheckedLockingContainer <StorageGroupAttribute> ( delegate { return((StorageGroupAttribute)Activator.CreateInstance(StorageGroupType)); }); _storageGroupTypeProperty = TypeElement <StorageGroupAttribute> .CreateTypeProperty(null); _storageProviderNameProperty = new ConfigurationProperty( "provider", typeof(string), null, ConfigurationPropertyOptions.IsRequired); _properties.Add(_storageGroupTypeProperty); _properties.Add(_storageProviderNameProperty); }
public void SetUp() { try { ServiceLocator.SetLocatorProvider(() => null); LogManager.ResetConfiguration(); Assert.That(LogManager.GetLogger(typeof(LoggingClientTransactionListener)).IsDebugEnabled, Is.False); StandardConfiguration.Initialize(); TableInheritanceConfiguration.Initialize(); SqlConnection.ClearAllPools(); var masterAgent = new DatabaseAgent(DatabaseTest.MasterConnectionString); masterAgent.ExecuteBatchFile("DataDomainObjects_CreateDB.sql", false, DatabaseConfiguration.GetReplacementDictionary()); var testDomainAgent = new DatabaseAgent(DatabaseTest.TestDomainConnectionString); testDomainAgent.ExecuteBatchFile("DataDomainObjects_SetupDB.sql", true, DatabaseConfiguration.GetReplacementDictionary()); _standardMappingDatabaseAgent = new StandardMappingDatabaseAgent(DatabaseTest.TestDomainConnectionString); string sqlFileName = StandardMappingTest.CreateTestDataFileName; _standardMappingDatabaseAgent.ExecuteBatchFile(sqlFileName, true, DatabaseConfiguration.GetReplacementDictionary()); string sqlFileName1 = TableInheritanceMappingTest.CreateTestDataFileName; _standardMappingDatabaseAgent.ExecuteBatchFile(sqlFileName1, true, DatabaseConfiguration.GetReplacementDictionary()); _standardMappingDatabaseAgent.SetDatabaseReadOnly(DatabaseTest.DatabaseName); // We don't want the tests to initialize a default mapping; therefore, modify MappingConfiguration.s_mappingConfiguration so that it will // throw when asked to generate a new MappingConfiguration. _previousMappingConfigurationContainer = (DoubleCheckedLockingContainer <IMappingConfiguration>)PrivateInvoke.GetNonPublicStaticField( typeof(MappingConfiguration), "s_mappingConfiguration"); var throwingMappingConfigurationContainer = new DoubleCheckedLockingContainer <IMappingConfiguration> ( () => { throw new InvalidOperationException( "This test failed to setup the mapping configuration. Did you forget to derive from StandardMappingTest or to call base.SetUp?"); }); PrivateInvoke.SetNonPublicStaticField(typeof(MappingConfiguration), "s_mappingConfiguration", throwingMappingConfigurationContainer); } catch (Exception ex) { Console.WriteLine("SetUpFixture failed: " + ex); Console.WriteLine(); throw; } }
public SecurityManagerConfiguration() { _xmlnsProperty = new ConfigurationProperty("xmlns", typeof(string), null, ConfigurationPropertyOptions.None); _organizationalStructureFactory = new DoubleCheckedLockingContainer <IOrganizationalStructureFactory> ( delegate { return(OrganizationalStructureFactoryElement.CreateInstance()); }); _organizationalStructureFactoryProperty = new ConfigurationProperty( "organizationalStructureFactory", typeof(TypeElement <IOrganizationalStructureFactory, OrganizationalStructureFactory>), null, ConfigurationPropertyOptions.None); _accessControlProperty = new ConfigurationProperty( "accessControl", typeof(AccessControlElement), null, ConfigurationPropertyOptions.None); _properties.Add(_xmlnsProperty); _properties.Add(_organizationalStructureFactoryProperty); _properties.Add(_accessControlProperty); }
public VirtualRelationEndPointDefinition( ClassDefinition classDefinition, string propertyName, bool isMandatory, CardinalityType cardinality, string sortExpressionText, IPropertyInformation propertyInfo) { ArgumentUtility.CheckNotNull("classDefinition", classDefinition); ArgumentUtility.CheckNotNullOrEmpty("propertyName", propertyName); ArgumentUtility.CheckValidEnumValue("cardinality", cardinality); ArgumentUtility.CheckNotNull("propertyInfo", propertyInfo); _classDefinition = classDefinition; _cardinality = cardinality; _isMandatory = isMandatory; _propertyName = propertyName; _sortExpressionText = sortExpressionText; _sortExpression = new DoubleCheckedLockingContainer <SortExpressionDefinition> (() => ParseSortExpression(_sortExpressionText)); _propertyInfo = propertyInfo; }
public virtual void SetUp() { _appenderProxy = (LinqToSqlAppenderProxy)PrivateInvoke.CreateInstanceNonPublicCtor( typeof(LinqToSqlAppenderProxy), "Test", typeof(FakeLinqToSqlProfiler), typeof(MockableLinqToSqlAppender)); _mockableAppender = (MockableLinqToSqlAppender)_appenderProxy.LinqToSqlAppender; _container = (DoubleCheckedLockingContainer <LinqToSqlAppenderProxy>) PrivateInvoke.GetNonPublicStaticField(typeof(LinqToSqlAppenderProxy), "s_instance"); Assertion.IsNotNull(_container); if (_container.HasValue) { _originalAppender = _container.Value; } else { _originalAppender = null; } _container.Value = _appenderProxy; }
static SecurityManagerConfiguration() { s_current = new DoubleCheckedLockingContainer <SecurityManagerConfiguration> ( delegate { return((SecurityManagerConfiguration)ConfigurationManager.GetSection("remotion.securityManager") ?? new SecurityManagerConfiguration()); }); }
public DomainObjectsConfiguration() { _mappingLoaderConfiguration = new DoubleCheckedLockingContainer <MappingLoaderConfiguration> (GetMappingLoaderConfiguration); _persistenceConfiguration = new DoubleCheckedLockingContainer <StorageConfiguration> (GetPersistenceConfiguration); _queryConfiguration = new DoubleCheckedLockingContainer <QueryConfiguration> (GetQueryConfiguration); }