public void default_everything()
        {
            var defaults = new HiloSettings();

            var store   = DocumentStore.For("something");
            var mapping = store.Schema.MappingFor(typeof(IntDoc));

            var idStrategy = mapping.IdStrategy.ShouldBeOfType <HiloIdGeneration>();

            idStrategy.Increment.ShouldBe(defaults.Increment);
            idStrategy.MaxLo.ShouldBe(defaults.MaxLo);
        }
Example #2
0
 public void HiloSettings(HiloSettings hilo)
 {
     if (IdStrategy is HiloIdGeneration)
     {
         IdStrategy = new HiloIdGeneration(DocumentType, hilo);
     }
     else
     {
         throw new InvalidOperationException(
                   $"DocumentMapping for {DocumentType.FullName} is using {IdStrategy.GetType().FullName} as its Id strategy so cannot override Hilo sequence configuration");
     }
 }
Example #3
0
        public void default_everything()
        {
            var defaults = new HiloSettings();

            var store = DocumentStore.For(opts =>
            {
                opts.Connection(ConnectionSource.ConnectionString);
                opts.DatabaseSchemaName = "sequences";
            });

            store.Tenancy.Default.Sequences
            .SequenceFor(typeof(IntDoc)).MaxLo.ShouldBe(defaults.MaxLo);
        }
        public void default_everything()
        {
            var defaults = new HiloSettings();

            var store   = DocumentStore.For(ConnectionSource.ConnectionString);
            var mapping = store.Storage.MappingFor(typeof(IntDoc));

            mapping.ToIdAssignment <IntDoc>(store.Tenancy.Default)
            .As <IdAssigner <IntDoc, int> >().Generator
            .ShouldBeOfType <IntHiloGenerator>();

            store.Tenancy.Default.Sequences
            .SequenceFor(typeof(IntDoc)).MaxLo.ShouldBe(defaults.MaxLo);
        }
Example #5
0
        public void can_replace_hilo_def_settings()
        {
            var mapping = DocumentMapping.For <LongId>();

            var newDef = new HiloSettings {
                MaxLo = 33
            };

            mapping.HiloSettings = newDef;

            var sequence = mapping.IdStrategy.ShouldBeOfType <HiloIdGeneration>();

            sequence.MaxLo.ShouldBe(newDef.MaxLo);
        }
        public void default_everything()
        {
            var defaults = new HiloSettings();

            var store   = DocumentStore.For(ConnectionSource.ConnectionString);
            var mapping = store.Schema.MappingFor(typeof(IntDoc));

            var idStrategy = mapping.ToIdAssignment <IntDoc>(store.Schema)
                             .As <IdAssigner <IntDoc, int> >().Generator
                             .ShouldBeOfType <IntHiloGenerator>();



            idStrategy.Sequence.MaxLo.ShouldBe(defaults.MaxLo);
        }
Example #7
0
        public void build_assignment_for_long()
        {
            var settings = new HiloSettings();

            var sequence  = Substitute.For <ISequence>();
            var sequences = Substitute.For <ISequences>();
            var schema    = Substitute.For <IDocumentSchema>();

            schema.Sequences.Returns(sequences);
            sequences.Hilo(typeof(Target), settings).Returns(sequence);

            var generation = new HiloIdGeneration(typeof(Target), settings);


            generation.Build <long>(schema).ShouldBeOfType <LongHiloGenerator>()
            .Sequence.ShouldBeSameAs(sequence);
        }
        public void can_build_a_generator()
        {
            var settings = new HiloSettings();

            var sequence  = Substitute.For <ISequence>();
            var sequences = Substitute.For <ISequences>();
            var schema    = Substitute.For <IDocumentSchema>();

            schema.Sequences.Returns(sequences);
            sequences.Hilo(typeof(Target), settings).Returns(sequence);

            var mapping    = DocumentMapping.For <Target>();
            var generation = new IdentityKeyGeneration(mapping, settings);


            var generator = generation.Build <string>(schema).ShouldBeOfType <IdentityKeyGenerator>();

            generator
            .Sequence.ShouldBeSameAs(sequence);

            generator.Alias.ShouldBe(mapping.Alias);
        }
Example #9
0
 public DocumentMappingExpression <T> HiloSettings(HiloSettings settings)
 {
     _builder.Alter = mapping => mapping.HiloSettings = settings;
     return(this);
 }
Example #10
0
 /// <summary>
 /// Overrides the Hilo sequence increment and "maximum low" number for document types that
 /// use numeric id's and the Hilo Id assignment
 /// </summary>
 /// <param name="settings"></param>
 /// <returns></returns>
 public DocumentMappingExpression <T> HiloSettings(HiloSettings settings)
 {
     alter = mapping => mapping.HiloSettings(settings);
     return(this);
 }