Ejemplo n.º 1
0
        public virtual RavenPersistenceWireup WithSerializer(IDocumentSerializer instance)
        {
            Logger.Debug("Registering serializer of type '{0}'.", instance.GetType());

            this.serializer = instance;
            return(this);
        }
Ejemplo n.º 2
0
        public async Task DocumentEndToEnd(IDocumentSerializer serializer)
        {
            var table = CloudStorageAccount.DevelopmentStorageAccount
                        .CreateTableServiceClient()
                        .GetTableClient(serializer.GetType().Name);

            await table.DeleteAsync();

            await table.CreateAsync();

            try
            {
                var repo = DocumentRepository.Create <DocumentEntity>(CloudStorageAccount.DevelopmentStorageAccount,
                                                                      table.Name, serializer: serializer);

                var partitionKey = "P" + Guid.NewGuid().ToString("N");
                var rowKey       = "R" + Guid.NewGuid().ToString("N");

                var entity = await repo.PutAsync(new DocumentEntity
                {
                    PartitionKey = partitionKey,
                    RowKey       = rowKey,
                    Title        = "Foo",
                });

                entity.Title = "Bar";

                await repo.PutAsync(entity);

                var saved = await repo.GetAsync(partitionKey, rowKey);

                Assert.NotNull(saved);
                Assert.Equal("Bar", saved !.Title);
                Assert.Equal(DateOnly.FromDateTime(DateTime.Today), saved.Date);

                var entities = new List <DocumentEntity>();

                await foreach (var e in repo.EnumerateAsync(partitionKey))
                {
                    entities.Add(e);
                }

                Assert.Single(entities);

                await repo.DeleteAsync(saved);

                Assert.Null(await repo.GetAsync(partitionKey, rowKey));

                await foreach (var _ in repo.EnumerateAsync(partitionKey))
                {
                    Assert.False(true, "Did not expect to find any entities");
                }
            }
            finally
            {
                await table.DeleteAsync();
            }
        }
Ejemplo n.º 3
0
        public async Task CanQueryDocument(IDocumentSerializer serializer)
        {
            var table = CloudStorageAccount.DevelopmentStorageAccount
                        .CreateTableServiceClient()
                        .GetTableClient(nameof(CanQueryDocument) + serializer.GetType().Name);

            await table.DeleteAsync();

            await table.CreateAsync();

            try
            {
                var repo = DocumentRepository.Create <DocumentEntity>(CloudStorageAccount.DevelopmentStorageAccount,
                                                                      table.Name, serializer: serializer);

                var partitionKey = "P5943C610208D4008BEC052272ED07214";

                await repo.PutAsync(new DocumentEntity
                {
                    PartitionKey = partitionKey,
                    RowKey       = "Bar",
                    Title        = "Bar",
                });

                await repo.PutAsync(new DocumentEntity
                {
                    PartitionKey = partitionKey,
                    RowKey       = "Foo",
                    Title        = "Foo",
                });

                var typeName = typeof(DocumentEntity).FullName !.Replace('+', '.');

                var entities = await repo.EnumerateAsync(e =>
                                                         e.PartitionKey == partitionKey &&
                                                         e.RowKey.CompareTo("Foo") >= 0 && e.RowKey.CompareTo("Fop") < 0 &&
                                                         e.Version != "1.0" &&
                                                         e.Type == typeName)
                               .ToListAsync();

                Assert.Single(entities);
            }
            finally
            {
                await table.DeleteAsync();
            }
        }
Ejemplo n.º 4
0
        public virtual RavenPersistenceWireup WithSerializer(IDocumentSerializer instance)
        {
            Logger.Debug("Registering serializer of type '{0}'.", instance.GetType());

            this.serializer = instance;
            return this;
        }