Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 7
0
        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));
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
        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;
            }
        }
Ejemplo n.º 11
0
        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;
        }
Ejemplo n.º 13
0
        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;
        }
Ejemplo n.º 14
0
 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);
 }