示例#1
0
        public void Returns_in_memory_GUID_generator_for_GUID_types_setup_for_client_values()
        {
            var guidFactory = new SimpleValueGeneratorFactory <GuidValueGenerator>();

            var selector = new ValueGeneratorSelector(guidFactory);

            Assert.Same(guidFactory, selector.Select(CreateProperty(typeof(Guid), ValueGenerationOnAdd.Client)));
        }
        public void Returns_in_memory_GUID_generator_for_GUID_types_setup_for_client_values()
        {
            var guidFactory = new SimpleValueGeneratorFactory<GuidValueGenerator>();

            var selector = new ValueGeneratorSelector(guidFactory);

            Assert.Same(guidFactory, selector.Select(CreateProperty(typeof(Guid), ValueGenerationOnAdd.Client)));
        }
示例#3
0
        public virtual IValueGenerator GetGenerator([NotNull] IProperty property)
        {
            Check.NotNull(property, "property");

            var factory = _selector.Select(property);
            var pool    = _cache.GetOrAdd(factory.GetCacheKey(property), k => CreatePool(property, factory));

            return(pool.GetGenerator());
        }
        public void Throws_for_unsupported_combinations()
        {
            var selector = new ValueGeneratorSelector(
                new SimpleValueGeneratorFactory<GuidValueGenerator>());

            var typeMock = new Mock<IEntityType>();
            typeMock.Setup(m => m.Name).Returns("AnEntity");

            var property = CreateProperty(typeof(Guid), ValueGenerationOnAdd.Server);

            Assert.Equal(
                Strings.FormatNoValueGenerator("server", "MyType", "MyProperty", "Guid"),
                Assert.Throws<NotSupportedException>(() => selector.Select(property)).Message);
        }
示例#5
0
        public void Throws_for_unsupported_combinations()
        {
            var selector = new ValueGeneratorSelector(
                new SimpleValueGeneratorFactory <GuidValueGenerator>());

            var typeMock = new Mock <IEntityType>();

            typeMock.Setup(m => m.Name).Returns("AnEntity");

            var property = CreateProperty(typeof(Guid), ValueGenerationOnAdd.Server);

            Assert.Equal(
                Strings.FormatNoValueGenerator("server", "MyType", "MyProperty", "Guid"),
                Assert.Throws <NotSupportedException>(() => selector.Select(property)).Message);
        }
        public virtual IValueGenerator GetGenerator([NotNull] IProperty property)
        {
            Check.NotNull(property, "property");

            // TODO: Consider if a specific generator has been set on the property then use it instead

            var factory = _selector.Select(property);

            if (factory == null)
            {
                return(null);
            }

            var pool = _cache.GetOrAdd(factory.GetCacheKey(property), k => CreatePool(property, factory));

            return(pool.GetGenerator());
        }
示例#7
0
        public virtual IValueGenerator GetGenerator([NotNull] IProperty property)
        {
            Check.NotNull(property, "property");

            if (property.IsForeignKey())
            {
                return(_foreignKeyValueGenerator);
            }

            var factory = _selector.Select(property);

            if (factory == null)
            {
                return(null);
            }

            var pool = _cache.GetOrAdd(factory.GetCacheKey(property), k => CreatePool(property, factory));

            return(pool.GetGenerator());
        }
示例#8
0
        public void Returns_null_when_no_value_generation_configured()
        {
            var selector = new ValueGeneratorSelector(new SimpleValueGeneratorFactory <GuidValueGenerator>());

            Assert.Null(selector.Select(CreateProperty(typeof(int), ValueGenerationOnAdd.None)));
        }
        public void Returns_null_when_no_value_generation_configured()
        {
            var selector = new ValueGeneratorSelector(new SimpleValueGeneratorFactory<GuidValueGenerator>());

            Assert.Null(selector.Select(CreateProperty(typeof(int), ValueGenerationOnAdd.None)));
        }