public void Select_throws_for_unsupported_combinations() { var dbConfigurationMock = new Mock <DbContextConfiguration>(); var redisDatabaseMock = new Mock <RedisDatabase>(dbConfigurationMock.Object); var guidValueGenerator = new SimpleValueGeneratorFactory <GuidValueGenerator>(); var redisValueGeneratorFactory = new RedisValueGeneratorFactory(redisDatabaseMock.Object); var selector = new RedisValueGeneratorSelector(guidValueGenerator, redisValueGeneratorFactory); var typeMock = new Mock <IEntityType>(); typeMock.Setup(m => m.Name).Returns("AnEntity"); Assert.Equal( GetString("FormatNoValueGenerator", "MyProperty", "MyType", "String"), Assert.Throws <NotSupportedException>(() => selector.Select(CreateProperty(typeof(string), ValueGeneration.OnAdd))).Message); Assert.Equal( GetString("FormatNoValueGenerator", "MyProperty", "MyType", "Single"), Assert.Throws <NotSupportedException>(() => selector.Select(CreateProperty(typeof(float), ValueGeneration.OnAdd))).Message); Assert.Equal( GetString("FormatNoValueGenerator", "MyProperty", "MyType", "Double"), Assert.Throws <NotSupportedException>(() => selector.Select(CreateProperty(typeof(double), ValueGeneration.OnAdd))).Message); Assert.Equal( GetString("FormatNoValueGenerator", "MyProperty", "MyType", "DateTime"), Assert.Throws <NotSupportedException>(() => selector.Select(CreateProperty(typeof(DateTime), ValueGeneration.OnAdd))).Message); Assert.Equal( GetString("FormatNoValueGenerator", "MyProperty", "MyType", "DateTimeOffset"), Assert.Throws <NotSupportedException>(() => selector.Select(CreateProperty(typeof(DateTimeOffset), ValueGeneration.OnAdd))).Message); }
public ValueGeneratorSelector( [NotNull] SimpleValueGeneratorFactory<GuidValueGenerator> guidFactory) { Check.NotNull(guidFactory, "guidFactory"); _guidFactory = guidFactory; }
public void Returns_in_memory_GUID_generator_for_GUID_types_setup_for_value_generation() { var guidFactory = new SimpleValueGeneratorFactory <GuidValueGenerator>(); var selector = new ValueGeneratorSelector(guidFactory); Assert.Same(guidFactory, selector.Select(CreateProperty(typeof(Guid), ValueGeneration.OnAdd))); }
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 RedisValueGeneratorSelector( [NotNull] SimpleValueGeneratorFactory <GuidValueGenerator> guidFactory, [NotNull] RedisValueGeneratorFactory redisValueGeneratorFactory) : base(guidFactory) { Check.NotNull(redisValueGeneratorFactory, "redisValueGeneratorFactory"); _redisValueGeneratorFactory = redisValueGeneratorFactory; }
public SQLiteValueGeneratorSelector( [NotNull] SimpleValueGeneratorFactory<GuidValueGenerator> guidFactory, [NotNull] SimpleValueGeneratorFactory<TemporaryValueGenerator> tempFactory) : base(guidFactory) { Check.NotNull(tempFactory, "tempFactory"); _tempFactory = tempFactory; }
public InMemoryValueGeneratorSelector( [NotNull] SimpleValueGeneratorFactory <GuidValueGenerator> guidFactory, [NotNull] SimpleValueGeneratorFactory <InMemoryValueGenerator> inMemoryFactory) : base(guidFactory) { Check.NotNull(inMemoryFactory, "inMemoryFactory"); _inMemoryFactory = inMemoryFactory; }
public SQLiteValueGeneratorSelector( [NotNull] SimpleValueGeneratorFactory <GuidValueGenerator> guidFactory, [NotNull] SimpleValueGeneratorFactory <TemporaryValueGenerator> tempFactory) : base(guidFactory) { Check.NotNull(tempFactory, "tempFactory"); _tempFactory = tempFactory; }
public InMemoryValueGeneratorSelector( [NotNull] SimpleValueGeneratorFactory<GuidValueGenerator> guidFactory, [NotNull] SimpleValueGeneratorFactory<InMemoryValueGenerator> inMemoryFactory) : base(guidFactory) { Check.NotNull(inMemoryFactory, "inMemoryFactory"); _inMemoryFactory = inMemoryFactory; }
public void Returns_in_memory_GUID_generator_for_GUID_types_setup_for_client_values() { var guidFactory = new SimpleValueGeneratorFactory <GuidValueGenerator>(); var selector = new InMemoryValueGeneratorSelector( guidFactory, new SimpleValueGeneratorFactory <InMemoryValueGenerator>()); Assert.Same(guidFactory, selector.Select(CreateProperty(typeof(Guid), ValueGenerationOnAdd.Client))); }
public void Select_returns_GuidValueGenerator_for_Guid_type_with_ValueGeneration_set_to_OnAdd() { var dbConfigurationMock = new Mock <DbContextConfiguration>(); var redisDatabaseMock = new Mock <RedisDatabase>(dbConfigurationMock.Object); var guidValueGenerator = new SimpleValueGeneratorFactory <GuidValueGenerator>(); var redisValueGeneratorFactory = new RedisValueGeneratorFactory(redisDatabaseMock.Object); var selector = new RedisValueGeneratorSelector(guidValueGenerator, redisValueGeneratorFactory); Assert.Same(guidValueGenerator, selector.Select(CreateProperty(typeof(Guid), ValueGeneration.OnAdd))); }
public void Returns_sequential_GUID_generator_for_GUID_types_setup_for_client_values() { var sequentialGuidFactory = new SimpleValueGeneratorFactory<SequentialGuidValueGenerator>(); var selector = new SqlServerValueGeneratorSelector( new SimpleValueGeneratorFactory<GuidValueGenerator>(), new SimpleValueGeneratorFactory<TemporaryValueGenerator>(), new SqlServerSequenceValueGeneratorFactory(new SqlStatementExecutor()), sequentialGuidFactory); Assert.Same(sequentialGuidFactory, selector.Select(CreateProperty(typeof(Guid), ValueGenerationOnAdd.Client))); }
public InMemoryValueGeneratorSelector( [NotNull] SimpleValueGeneratorFactory <GuidValueGenerator> guidFactory, [NotNull] SimpleValueGeneratorFactory <InMemoryValueGenerator> inMemoryFactory, [NotNull] SimpleValueGeneratorFactory <TemporaryIntegerValueGenerator> integerFactory, [NotNull] SimpleValueGeneratorFactory <TemporaryStringValueGenerator> stringFactory, [NotNull] SimpleValueGeneratorFactory <TemporaryBinaryValueGenerator> binaryFactory) : base(guidFactory, integerFactory, stringFactory, binaryFactory) { Check.NotNull(inMemoryFactory, "inMemoryFactory"); _inMemoryFactory = inMemoryFactory; }
public void Returns_sequential_GUID_generator_for_GUID_types() { var sequentialGuidFactory = new SimpleValueGeneratorFactory <SequentialGuidValueGenerator>(); var selector = new SqlServerValueGeneratorSelector( new SimpleValueGeneratorFactory <GuidValueGenerator>(), new SimpleValueGeneratorFactory <TemporaryValueGenerator>(), new SqlServerSequenceValueGeneratorFactory(new SqlStatementExecutor(new LoggerFactory())), sequentialGuidFactory); Assert.Same(sequentialGuidFactory, selector.Select(CreateDefaultValueGenProperty <Guid>())); }
public void Returns_sequential_GUID_generator_for_GUID_types_setup_for_client_values() { var sequentialGuidFactory = new SimpleValueGeneratorFactory <SequentialGuidValueGenerator>(); var selector = new SqlServerValueGeneratorSelector( new SimpleValueGeneratorFactory <GuidValueGenerator>(), new SimpleValueGeneratorFactory <TemporaryValueGenerator>(), new SqlServerSequenceValueGeneratorFactory(new SqlStatementExecutor()), sequentialGuidFactory); Assert.Same(sequentialGuidFactory, selector.Select(CreateProperty(typeof(Guid), ValueGenerationOnAdd.Client))); }
public void Returns_in_memory_integer_generator_for_all_integer_types_setup_for_server_values() { var inMemoryFactory = new SimpleValueGeneratorFactory<InMemoryValueGenerator>(); var selector = new InMemoryValueGeneratorSelector( new SimpleValueGeneratorFactory<GuidValueGenerator>(), inMemoryFactory); Assert.Same(inMemoryFactory, selector.Select(CreateProperty(typeof(long), ValueGenerationOnAdd.Server))); Assert.Same(inMemoryFactory, selector.Select(CreateProperty(typeof(int), ValueGenerationOnAdd.Server))); Assert.Same(inMemoryFactory, selector.Select(CreateProperty(typeof(short), ValueGenerationOnAdd.Server))); Assert.Same(inMemoryFactory, selector.Select(CreateProperty(typeof(byte), ValueGenerationOnAdd.Server))); }
public void Returns_in_memory_integer_generator_for_all_integer_types_setup_for_server_values() { var inMemoryFactory = new SimpleValueGeneratorFactory <InMemoryValueGenerator>(); var selector = new InMemoryValueGeneratorSelector( new SimpleValueGeneratorFactory <GuidValueGenerator>(), inMemoryFactory); Assert.Same(inMemoryFactory, selector.Select(CreateProperty(typeof(long), ValueGenerationOnAdd.Server))); Assert.Same(inMemoryFactory, selector.Select(CreateProperty(typeof(int), ValueGenerationOnAdd.Server))); Assert.Same(inMemoryFactory, selector.Select(CreateProperty(typeof(short), ValueGenerationOnAdd.Server))); Assert.Same(inMemoryFactory, selector.Select(CreateProperty(typeof(byte), ValueGenerationOnAdd.Server))); }
public SqlServerValueGeneratorSelector( [NotNull] SimpleValueGeneratorFactory<GuidValueGenerator> guidFactory, [NotNull] SimpleValueGeneratorFactory<TemporaryValueGenerator> tempFactory, [NotNull] SqlServerSequenceValueGeneratorFactory sequenceFactory, [NotNull] SimpleValueGeneratorFactory<SequentialGuidValueGenerator> sequentialGuidFactory) : base(guidFactory) { Check.NotNull(sequenceFactory, "sequenceFactory"); Check.NotNull(sequentialGuidFactory, "sequentialGuidFactory"); _tempFactory = tempFactory; _sequenceFactory = sequenceFactory; _sequentialGuidFactory = sequentialGuidFactory; }
public void Returns_temp_generator_for_identity_generator_when_explicitly_configured() { var tempFactory = new SimpleValueGeneratorFactory <TemporaryValueGenerator>(); var selector = new SqlServerValueGeneratorSelector( new SimpleValueGeneratorFactory <GuidValueGenerator>(), tempFactory, new SqlServerSequenceValueGeneratorFactory(new SqlStatementExecutor(new LoggerFactory())), new SimpleValueGeneratorFactory <SequentialGuidValueGenerator>()); Assert.Same(tempFactory, selector.Select(CreateIdentityProperty <long>())); Assert.Same(tempFactory, selector.Select(CreateIdentityProperty <int>())); Assert.Same(tempFactory, selector.Select(CreateIdentityProperty <short>())); }
[Fact] // TODO: This will change when sequence becomes the default public void Returns_in_temp_generator_for_all_integer_types_except_byte_setup_for_value_generation() { var tempFactory = new SimpleValueGeneratorFactory <TemporaryValueGenerator>(); var selector = new SqlServerValueGeneratorSelector( new SimpleValueGeneratorFactory <GuidValueGenerator>(), tempFactory, new SqlServerSequenceValueGeneratorFactory(new SqlStatementExecutor(new LoggerFactory())), new SimpleValueGeneratorFactory <SequentialGuidValueGenerator>()); Assert.Same(tempFactory, selector.Select(CreateDefaultValueGenProperty <long>())); Assert.Same(tempFactory, selector.Select(CreateDefaultValueGenProperty <int>())); Assert.Same(tempFactory, selector.Select(CreateDefaultValueGenProperty <short>())); }
public void Returns_in_temp_generator_for_all_integer_types_except_byte_setup_for_client_values() { var tempFactory = new SimpleValueGeneratorFactory <TemporaryValueGenerator>(); var selector = new SqlServerValueGeneratorSelector( new SimpleValueGeneratorFactory <GuidValueGenerator>(), tempFactory, new SqlServerSequenceValueGeneratorFactory(new SqlStatementExecutor()), new SimpleValueGeneratorFactory <SequentialGuidValueGenerator>()); Assert.Same(tempFactory, selector.Select(CreateProperty(typeof(long), ValueGenerationOnAdd.Client))); Assert.Same(tempFactory, selector.Select(CreateProperty(typeof(int), ValueGenerationOnAdd.Client))); Assert.Same(tempFactory, selector.Select(CreateProperty(typeof(short), ValueGenerationOnAdd.Client))); }
public void Returns_in_temp_generator_for_all_integer_types_except_byte_setup_for_client_values() { var tempFactory = new SimpleValueGeneratorFactory<TemporaryValueGenerator>(); var selector = new SqlServerValueGeneratorSelector( new SimpleValueGeneratorFactory<GuidValueGenerator>(), tempFactory, new SqlServerSequenceValueGeneratorFactory(new SqlStatementExecutor()), new SimpleValueGeneratorFactory<SequentialGuidValueGenerator>()); Assert.Same(tempFactory, selector.Select(CreateProperty(typeof(long), ValueGenerationOnAdd.Client))); Assert.Same(tempFactory, selector.Select(CreateProperty(typeof(int), ValueGenerationOnAdd.Client))); Assert.Same(tempFactory, selector.Select(CreateProperty(typeof(short), ValueGenerationOnAdd.Client))); }
public SqlServerValueGeneratorSelector( [NotNull] SimpleValueGeneratorFactory <GuidValueGenerator> guidFactory, [NotNull] SimpleValueGeneratorFactory <TemporaryValueGenerator> tempFactory, [NotNull] SqlServerSequenceValueGeneratorFactory sequenceFactory, [NotNull] SimpleValueGeneratorFactory <SequentialGuidValueGenerator> sequentialGuidFactory) : base(guidFactory) { Check.NotNull(sequenceFactory, "sequenceFactory"); Check.NotNull(sequentialGuidFactory, "sequentialGuidFactory"); _tempFactory = tempFactory; _sequenceFactory = sequenceFactory; _sequentialGuidFactory = sequentialGuidFactory; }
public SqlServerValueGeneratorSelector( [NotNull] SimpleValueGeneratorFactory <GuidValueGenerator> guidFactory, [NotNull] SimpleValueGeneratorFactory <TemporaryIntegerValueGenerator> integerFactory, [NotNull] SimpleValueGeneratorFactory <TemporaryStringValueGenerator> stringFactory, [NotNull] SimpleValueGeneratorFactory <TemporaryBinaryValueGenerator> binaryFactory, [NotNull] SqlServerSequenceValueGeneratorFactory sequenceFactory, [NotNull] SimpleValueGeneratorFactory <SequentialGuidValueGenerator> sequentialGuidFactory) : base(guidFactory, integerFactory, stringFactory, binaryFactory) { Check.NotNull(sequenceFactory, "sequenceFactory"); Check.NotNull(sequentialGuidFactory, "sequentialGuidFactory"); _sequenceFactory = sequenceFactory; _sequentialGuidFactory = sequentialGuidFactory; }
public void Select_returns_RedisValueGeneratorFactory_for_all_integer_types_with_ValueGeneration_set_to_OnAdd() { var dbConfigurationMock = new Mock <DbContextConfiguration>(); var redisDatabaseMock = new Mock <RedisDatabase>(dbConfigurationMock.Object); var guidValueGenerator = new SimpleValueGeneratorFactory <GuidValueGenerator>(); var redisValueGeneratorFactory = new RedisValueGeneratorFactory(redisDatabaseMock.Object); var selector = new RedisValueGeneratorSelector(guidValueGenerator, redisValueGeneratorFactory); Assert.Same(redisValueGeneratorFactory, selector.Select(CreateProperty(typeof(long), ValueGeneration.OnAdd))); Assert.Same(redisValueGeneratorFactory, selector.Select(CreateProperty(typeof(int), ValueGeneration.OnAdd))); Assert.Same(redisValueGeneratorFactory, selector.Select(CreateProperty(typeof(short), ValueGeneration.OnAdd))); Assert.Same(redisValueGeneratorFactory, selector.Select(CreateProperty(typeof(byte), ValueGeneration.OnAdd))); Assert.Same(redisValueGeneratorFactory, selector.Select(CreateProperty(typeof(ulong), ValueGeneration.OnAdd))); Assert.Same(redisValueGeneratorFactory, selector.Select(CreateProperty(typeof(uint), ValueGeneration.OnAdd))); Assert.Same(redisValueGeneratorFactory, selector.Select(CreateProperty(typeof(ushort), ValueGeneration.OnAdd))); Assert.Same(redisValueGeneratorFactory, selector.Select(CreateProperty(typeof(sbyte), ValueGeneration.OnAdd))); }
public void Select_returns_null_for_all_types_with_ValueGeneration_set_to_None() { var dbConfigurationMock = new Mock <DbContextConfiguration>(); var redisDatabaseMock = new Mock <RedisDatabase>(dbConfigurationMock.Object); var guidValueGenerator = new SimpleValueGeneratorFactory <GuidValueGenerator>(); var redisValueGeneratorFactory = new RedisValueGeneratorFactory(redisDatabaseMock.Object); var selector = new RedisValueGeneratorSelector(guidValueGenerator, redisValueGeneratorFactory); Assert.Null(selector.Select(CreateProperty(typeof(long), ValueGeneration.None))); Assert.Null(selector.Select(CreateProperty(typeof(int), ValueGeneration.None))); Assert.Null(selector.Select(CreateProperty(typeof(short), ValueGeneration.None))); Assert.Null(selector.Select(CreateProperty(typeof(byte), ValueGeneration.None))); Assert.Null(selector.Select(CreateProperty(typeof(ulong), ValueGeneration.None))); Assert.Null(selector.Select(CreateProperty(typeof(uint), ValueGeneration.None))); Assert.Null(selector.Select(CreateProperty(typeof(ushort), ValueGeneration.None))); Assert.Null(selector.Select(CreateProperty(typeof(sbyte), ValueGeneration.None))); Assert.Null(selector.Select(CreateProperty(typeof(string), ValueGeneration.None))); Assert.Null(selector.Select(CreateProperty(typeof(float), ValueGeneration.None))); Assert.Null(selector.Select(CreateProperty(typeof(double), ValueGeneration.None))); Assert.Null(selector.Select(CreateProperty(typeof(Guid), ValueGeneration.None))); Assert.Null(selector.Select(CreateProperty(typeof(DateTime), ValueGeneration.None))); Assert.Null(selector.Select(CreateProperty(typeof(DateTimeOffset), ValueGeneration.None))); }