Пример #1
0
        public void returns_metadata()
        {
            using (var store = GetDocumentStore())
            {
                var index = new Customers_ByName();
                index.Execute(store);

                using (var session = store.OpenSession())
                {
                    session.Store(new Customer {
                        Name = "John", Address = "Tel Aviv"
                    });
                    session.SaveChanges();
                }

                WaitForIndexing(store);

                using (var session = store.OpenSession())
                {
                    var customer = session.Query <Customer>().FirstOrDefault();
                    Assert.NotNull(customer);
                    Assert.NotNull(customer.Id);
                    Assert.Equal(customer.Name, "John");
                    Assert.Equal(customer.Address, "Tel Aviv");

                    var metadata = session.Advanced.GetMetadataFor(customer);
                    Assert.NotNull(metadata[Constants.Documents.Metadata.ChangeVector]);
                    Assert.NotNull(metadata[Constants.Documents.Metadata.RavenClrType]);
                    Assert.NotNull(metadata[Constants.Documents.Metadata.Collection]);
                    Assert.NotNull(metadata[Constants.Documents.Metadata.LastModified]);
                }
            }
        }
Пример #2
0
        public void projections_with_property_rename()
        {
            using (var store = GetDocumentStore())
            {
                var index = new Customers_ByName();
                index.Execute(store);

                using (var session = store.OpenSession())
                {
                    session.Store(new Customer {
                        Name = "John", Address = "Tel Aviv"
                    });
                    session.SaveChanges();

                    WaitForIndexing(store);

                    var customer = session.Query <Customer>(index.IndexName)
                                   .Select(r => new
                    {
                        Name                 = r.Name,
                        OtherThanName        = r.Address,
                        OtherThanName2       = r.Address,
                        AnotherOtherThanName = r.Name
                    }).Single();
                    {
                        Assert.Equal("John", customer.Name);
                        Assert.Equal("Tel Aviv", customer.OtherThanName);
                        Assert.Equal("Tel Aviv", customer.OtherThanName2);
                        Assert.Equal("John", customer.AnotherOtherThanName);
                    }
                }
            }
        }
Пример #3
0
        public void load_lazily_returns_metadata_async()
        {
            using (var store = GetDocumentStore())
            {
                var index = new Customers_ByName();
                index.Execute(store);

                using (var session = store.OpenSession())
                {
                    session.Store(new Customer {
                        Name = "John", Address = "Tel Aviv"
                    });
                    session.SaveChanges();
                }

                WaitForIndexing(store);

                using (var session = store.OpenAsyncSession())
                {
                    var customerLazy = session.Advanced.Lazily.LoadAsync <Customer>("customers/1-A");
                    var customer     = customerLazy.Value.Result;
                    Assert.NotNull(customer);
                    Assert.NotNull(customer.Id);
                    Assert.Equal(customer.Name, "John");
                    Assert.Equal(customer.Address, "Tel Aviv");

                    var metadata = session.Advanced.GetMetadataFor(customer);
                    Assert.NotNull(metadata[Constants.Documents.Metadata.ChangeVector]);
                    Assert.NotNull(metadata[Constants.Documents.Metadata.RavenClrType]);
                    Assert.NotNull(metadata[Constants.Documents.Metadata.Collection]);
                    Assert.NotNull(metadata[Constants.Documents.Metadata.LastModified]);
                }
            }
        }
Пример #4
0
        public async Task get_returns_metadata_async()
        {
            using (var store = NewDocumentStore())
            {
                var index = new Customers_ByName();
                index.Execute(store);

                using (var session = store.OpenSession())
                {
                    session.Store(new Customer {
                        Name = "John", Address = "Tel Aviv"
                    });
                    session.SaveChanges();
                }

                WaitForIndexing(store);

                var customer = await store.AsyncDatabaseCommands.GetAsync("customers/1");

                Assert.NotNull(customer);
                Assert.NotNull(customer.Key);
                Assert.Equal(customer.DataAsJson.Value <string>("Name"), "John");
                Assert.Equal(customer.DataAsJson.Value <string>("Address"), "Tel Aviv");

                Assert.NotNull(customer.Etag);
                Assert.NotNull(customer.LastModified);
                Assert.NotNull(customer.Metadata.Value <string>(Constants.RavenClrType));
                Assert.NotNull(customer.Metadata.Value <string>(Constants.RavenEntityName));
                Assert.NotNull(customer.Metadata.Value <string>(Constants.LastModified));
                Assert.NotNull(customer.Metadata.Value <string>(Constants.RavenLastModified));
            }
        }
Пример #5
0
        public void load_lazily_returns_metadata()
        {
            using (var store = NewDocumentStore())
            {
                var index = new Customers_ByName();
                index.Execute(store);

                using (var session = store.OpenSession())
                {
                    session.Store(new Customer {
                        Name = "John", Address = "Tel Aviv"
                    });
                    session.SaveChanges();
                }

                WaitForIndexing(store);

                using (var session = store.OpenSession())
                {
                    var customerLazy = session.Advanced.Lazily.Load <Customer>("customers/1");
                    var customer     = customerLazy.Value;
                    Assert.NotNull(customer);
                    Assert.NotNull(customer.Id);
                    Assert.Equal(customer.Name, "John");
                    Assert.Equal(customer.Address, "Tel Aviv");

                    var metadata = session.Advanced.GetMetadataFor(customer);
                    Assert.NotNull(metadata.Value <string>("@etag"));
                    Assert.NotNull(metadata.Value <string>(Constants.RavenClrType));
                    Assert.NotNull(metadata.Value <string>(Constants.RavenEntityName));
                    Assert.NotNull(metadata.Value <string>(Constants.LastModified));
                    Assert.NotNull(metadata.Value <string>(Constants.RavenLastModified));
                }
            }
        }
Пример #6
0
        public void load_with_big_key_returns_metadata()
        {
            using (var store = NewDocumentStore())
            {
                var index = new Customers_ByName();
                index.Execute(store);
                var id = new string('a', 130);

                using (var session = store.OpenSession())
                {
                    session.Store(new Customer {
                        Name = "John", Address = "Tel Aviv"
                    }, id);
                    session.SaveChanges();
                }

                WaitForIndexing(store);

                var customer = store.DatabaseCommands.Get(id);
                Assert.NotNull(customer);
                Assert.NotNull(customer.Key);
                Assert.Equal(customer.DataAsJson.Value <string>("Name"), "John");
                Assert.Equal(customer.DataAsJson.Value <string>("Address"), "Tel Aviv");

                Assert.NotNull(customer.Etag);
                Assert.NotNull(customer.LastModified);
                Assert.NotNull(customer.Metadata.Value <string>(Constants.RavenClrType));
                Assert.NotNull(customer.Metadata.Value <string>(Constants.RavenEntityName));
                Assert.NotNull(customer.Metadata.Value <string>(Constants.LastModified));
                Assert.NotNull(customer.Metadata.Value <string>(Constants.RavenLastModified));
            }
        }
Пример #7
0
        public void returns_metadata_async()
        {
            using (var store = NewDocumentStore())
            {
                var index = new Customers_ByName();
                index.Execute(store);

                using (var session = store.OpenSession())
                {
                    session.Store(new Customer {
                        Name = "John", Address = "Tel Aviv"
                    });
                    session.SaveChanges();
                }

                WaitForIndexing(store);

                using (var session = store.OpenAsyncSession())
                {
                    var customerAsync = session.Query <Customer>().FirstOrDefaultAsync();
                    Assert.NotNull(customerAsync);
                    var customer = customerAsync.Result;
                    Assert.NotNull(customer.Id);
                    Assert.Equal(customer.Name, "John");
                    Assert.Equal(customer.Address, "Tel Aviv");

                    var metadata = session.Advanced.GetMetadataFor(customer);
                    Assert.NotNull(metadata.Value <string>("@etag"));
                    Assert.NotNull(metadata.Value <string>(Constants.RavenClrType));
                    Assert.NotNull(metadata.Value <string>(Constants.RavenEntityName));
                    Assert.NotNull(metadata.Value <string>(Constants.LastModified));
                    Assert.NotNull(metadata.Value <string>(Constants.RavenLastModified));
                }
            }
        }
Пример #8
0
        public async Task streaming_and_projections_with_property_rename_Async()
        {
            using (var store = NewDocumentStore())
            {
                var index = new Customers_ByName();
                index.Execute(store);

                using (var session = store.OpenSession())
                {
                    session.Store(new Customer {
                        Name = "John", Address = "Tel Aviv"
                    });
                    session.SaveChanges();
                }

                WaitForIndexing(store);
                using (var session = store.OpenAsyncSession())
                {
                    var query = session.Query <Customer>(index.IndexName)
                                .Select(r => new
                    {
                        Name          = r.Name,
                        OtherThanName = r.Address,
                    });

                    var enumerator = await session.Advanced.StreamAsync(query);

                    while (await enumerator.MoveNextAsync())
                    {
                        Assert.Equal("John", enumerator.Current.Document.Name);
                        Assert.Equal("Tel Aviv", enumerator.Current.Document.OtherThanName);
                    }
                }
            }
        }
Пример #9
0
        public async Task streaming_and_projections_with_property_rename_Async()
        {
            using (var store = GetDocumentStore())
            {
                var index = new Customers_ByName();
                index.Execute(store);

                using (var session = store.OpenSession())
                {
                    session.Store(new Customer {
                        Name = "John", Address = "Tel Aviv"
                    });
                    session.SaveChanges();
                }

                WaitForIndexing(store);

                using (var session = store.OpenAsyncSession())
                {
                    var query = session.Query <Customer>(index.IndexName);
                    //TODO - Add when we have query with projection

                    /* .Select(r => new
                     * {
                     *   Name = r.Name,
                     *   OtherThanName = r.Address,
                     * });*/

                    var enumerator = await session.Advanced.StreamAsync(query);

                    while (await enumerator.MoveNextAsync())
                    {
                        Assert.Equal("John", enumerator.Current.Document.Name);
                        //TODO - delete when we have query with projection
                        Assert.Equal("Tel Aviv", enumerator.Current.Document.Address);
                        //TODO - Add when we have query with projection
                        //Assert.Equal("Tel Aviv", enumerator.Current.Document.OtherThanName);

                        Assert.NotNull(enumerator.Current.Key);
                        Assert.NotNull(enumerator.Current.Metadata[Constants.Metadata.IndexScore]);
                    }
                }
            }
        }
Пример #10
0
        public async Task load_with_big_key_returns_metadata_async()
        {
            using (var store = GetDocumentStore())
            {
                var index = new Customers_ByName();
                index.Execute(store);
                var id = new string('a', 130);

                using (var session = store.OpenSession())
                {
                    session.Store(new Customer {
                        Name = "John", Address = "Tel Aviv"
                    }, id);
                    session.SaveChanges();
                }

                WaitForIndexing(store);

                using (var commands = store.Commands())
                {
                    var customer = await commands.GetAsync(id);

                    Assert.NotNull(customer);

                    var metadata = customer.BlittableJson.GetMetadata();
                    var key      = metadata.GetId();
                    Assert.NotNull(key);

                    dynamic customerDynamic = customer;

                    Assert.Equal(customerDynamic.Name.ToString(), "John");
                    Assert.Equal(customerDynamic.Address.ToString(), "Tel Aviv");

                    Assert.NotNull(metadata.GetChangeVector());
                    Assert.NotNull(metadata.GetLastModified());

                    object _;
                    Assert.NotNull(metadata.TryGetMember(Constants.Documents.Metadata.RavenClrType, out _));
                    Assert.NotNull(metadata.TryGetMember(Constants.Documents.Metadata.Collection, out _));
                    Assert.NotNull(metadata.TryGetMember(Constants.Documents.Metadata.LastModified, out _));
                }
            }
        }
Пример #11
0
        public void get_returns_metadata()
        {
            using (var store = GetDocumentStore())
            {
                var index = new Customers_ByName();
                index.Execute(store);

                using (var session = store.OpenSession())
                {
                    session.Store(new Customer {
                        Name = "John", Address = "Tel Aviv"
                    });
                    session.SaveChanges();
                }

                Indexes.WaitForIndexing(store);

                using (var commands = store.Commands())
                {
                    var customer = commands.Get("customers/1-A");

                    Assert.NotNull(customer);

                    var metadata = customer.BlittableJson.GetMetadata();
                    var id       = metadata.GetId();
                    Assert.NotNull(id);

                    dynamic customerDynamic = customer;

                    Assert.Equal(customerDynamic.Name.ToString(), "John");
                    Assert.Equal(customerDynamic.Address.ToString(), "Tel Aviv");

                    Assert.NotNull(metadata.GetChangeVector());
                    Assert.NotNull(metadata.GetLastModified());

                    object _;
                    Assert.NotNull(metadata.TryGetMember(Constants.Documents.Metadata.RavenClrType, out _));
                    Assert.NotNull(metadata.TryGetMember(Constants.Documents.Metadata.Collection, out _));
                    Assert.NotNull(metadata.TryGetMember(Constants.Documents.Metadata.LastModified, out _));
                }
            }
        }
Пример #12
0
        public void multi_load_returns_metadata()
        {
            using (var store = GetDocumentStore())
            {
                var index = new Customers_ByName();
                index.Execute(store);

                using (var session = store.OpenSession())
                {
                    session.Store(new Customer {
                        Name = "John", Address = "Tel Aviv"
                    });
                    session.Store(new Customer {
                        Name = "John", Address = "Tel Aviv"
                    });
                    session.SaveChanges();
                }

                WaitForIndexing(store);

                using (var session = store.OpenSession())
                {
                    var customers = session.Load <Customer>(new List <string> {
                        "customers/1-A", "customers/2-A"
                    });

                    foreach (var customer in customers.Values)
                    {
                        Assert.NotNull(customer);
                        Assert.NotNull(customer.Id);
                        Assert.Equal(customer.Name, "John");
                        Assert.Equal(customer.Address, "Tel Aviv");

                        var metadata = session.Advanced.GetMetadataFor(customer);
                        Assert.NotNull(metadata[Constants.Documents.Metadata.ChangeVector]);
                        Assert.NotNull(metadata[Constants.Documents.Metadata.RavenClrType]);
                        Assert.NotNull(metadata[Constants.Documents.Metadata.Collection]);
                        Assert.NotNull(metadata[Constants.Documents.Metadata.LastModified]);
                    }
                }
            }
        }
Пример #13
0
        public void streaming_query_returns_metadata()
        {
            using (var store = NewDocumentStore())
            {
                var index = new Customers_ByName();
                index.Execute(store);

                using (var session = store.OpenSession())
                {
                    session.Store(new Customer {
                        Name = "John", Address = "Tel Aviv"
                    });
                    session.SaveChanges();
                }

                WaitForIndexing(store);

                using (var session = store.OpenSession())
                {
                    var query      = session.Query <Customer>(index.IndexName);
                    var enumerator = session.Advanced.Stream(query);

                    while (enumerator.MoveNext())
                    {
                        Assert.NotNull(enumerator.Current.Document.Id);
                        Assert.Equal("John", enumerator.Current.Document.Name);
                        Assert.Equal("Tel Aviv", enumerator.Current.Document.Address);

                        Assert.NotNull(enumerator.Current.Key);
                        Assert.NotNull(enumerator.Current.Etag);
                        Assert.NotNull(enumerator.Current.Metadata.Value <string>(Constants.RavenClrType));
                        Assert.NotNull(enumerator.Current.Metadata.Value <string>(Constants.RavenEntityName));
                        Assert.NotNull(enumerator.Current.Metadata.Value <string>(Constants.TemporaryScoreValue));
                        Assert.NotNull(enumerator.Current.Metadata.Value <string>(Constants.LastModified));
                        Assert.NotNull(enumerator.Current.Metadata.Value <string>(Constants.RavenLastModified));
                    }
                }
            }
        }
Пример #14
0
        public void streaming_and_projections_with_property_rename()
        {
            using (var store = NewDocumentStore())
            {
                var index = new Customers_ByName();
                index.Execute(store);

                using (var session = store.OpenSession())
                {
                    session.Store(new Customer {
                        Name = "John", Address = "Tel Aviv"
                    });
                    session.SaveChanges();
                }

                WaitForIndexing(store);

                using (var session = store.OpenSession())
                {
                    var query = session.Query <Customer>(index.IndexName)
                                .Select(r => new
                    {
                        Name          = r.Name,
                        OtherThanName = r.Address,
                    });

                    var enumerator = session.Advanced.Stream(query);

                    while (enumerator.MoveNext())
                    {
                        Assert.Equal("John", enumerator.Current.Document.Name);
                        Assert.Equal("Tel Aviv", enumerator.Current.Document.OtherThanName);

                        Assert.NotNull(enumerator.Current.Key);
                        Assert.NotNull(enumerator.Current.Metadata.Value <string>(Constants.TemporaryScoreValue));
                    }
                }
            }
        }
Пример #15
0
        public void streaming_query_returns_metadata()
        {
            using (var store = GetDocumentStore())
            {
                var index = new Customers_ByName();
                index.Execute(store);

                using (var session = store.OpenSession())
                {
                    session.Store(new Customer {
                        Name = "John", Address = "Tel Aviv"
                    });
                    session.SaveChanges();
                }

                WaitForIndexing(store);

                using (var session = store.OpenSession())
                {
                    var query      = session.Query <Customer>(index.IndexName);
                    var enumerator = session.Advanced.Stream(query);

                    while (enumerator.MoveNext())
                    {
                        Assert.NotNull(enumerator.Current.Document.Id);
                        Assert.Equal("John", enumerator.Current.Document.Name);
                        Assert.Equal("Tel Aviv", enumerator.Current.Document.Address);

                        Assert.NotNull(enumerator.Current.Id);
                        Assert.NotNull(enumerator.Current.ChangeVector);
                        Assert.NotNull(enumerator.Current.Metadata[Constants.Documents.Metadata.RavenClrType]);
                        Assert.NotNull(enumerator.Current.Metadata[Constants.Documents.Metadata.Collection]);
                        Assert.NotNull(enumerator.Current.Metadata[Constants.Documents.Metadata.IndexScore]);
                        Assert.NotNull(enumerator.Current.Metadata[Constants.Documents.Metadata.LastModified]);;
                    }
                }
            }
        }
Пример #16
0
        public async Task streaming_query_returns_metadata_async()
        {
            using (var store = GetDocumentStore())
            {
                var index = new Customers_ByName();
                index.Execute(store);

                using (var session = store.OpenSession())
                {
                    session.Store(new Customer {
                        Name = "John", Address = "Tel Aviv"
                    });
                    session.SaveChanges();
                }

                WaitForIndexing(store);

                using (var session = store.OpenAsyncSession())
                {
                    var query      = session.Query <Customer>(index.IndexName);
                    var enumerator = await session.Advanced.StreamAsync(query);

                    while (await enumerator.MoveNextAsync())
                    {
                        Assert.NotNull(enumerator.Current.Document.Id);
                        Assert.Equal("John", enumerator.Current.Document.Name);
                        Assert.Equal("Tel Aviv", enumerator.Current.Document.Address);
                        Assert.NotNull(enumerator.Current.Key);
                        Assert.NotNull(enumerator.Current.Etag);
                        Assert.NotNull(enumerator.Current.Metadata[Constants.Headers.RavenClrType]);
                        Assert.NotNull(enumerator.Current.Metadata[Constants.Headers.RavenEntityName]);
                        Assert.NotNull(enumerator.Current.Metadata[Constants.Headers.LastModified]);
                        Assert.NotNull(enumerator.Current.Metadata[Constants.Headers.RavenLastModified]);
                        Assert.NotNull(enumerator.Current.Metadata[Constants.Metadata.IndexScore]);
                    }
                }
            }
        }
Пример #17
0
        public async Task streaming_returns_metadata_async()
        {
            using (var store = GetDocumentStore())
            {
                var index = new Customers_ByName();
                index.Execute(store);

                using (var session = store.OpenSession())
                {
                    session.Store(new Customer {
                        Name = "John", Address = "Tel Aviv"
                    });
                    session.SaveChanges();
                }

                WaitForIndexing(store);

                using (var session = store.OpenAsyncSession())
                {
                    var enumerator = await session.Advanced.StreamAsync <Customer>(startsWith : "customers/");

                    while (await enumerator.MoveNextAsync())
                    {
                        Assert.NotNull(enumerator.Current.Document.Id);
                        Assert.Equal("John", enumerator.Current.Document.Name);
                        Assert.Equal("Tel Aviv", enumerator.Current.Document.Address);

                        Assert.NotNull(enumerator.Current.Id);
                        Assert.NotNull(enumerator.Current.ChangeVector);
                        Assert.NotNull(enumerator.Current.Metadata[Constants.Documents.Metadata.RavenClrType]);
                        Assert.NotNull(enumerator.Current.Metadata[Constants.Documents.Metadata.Collection]);
                        Assert.NotNull(enumerator.Current.Metadata[Constants.Documents.Metadata.LastModified]);
                    }
                }
            }
        }
Пример #18
0
        public void streaming_returns_metadata()
        {
            using (var store = GetDocumentStore())
            {
                var index = new Customers_ByName();
                index.Execute(store);

                using (var session = store.OpenSession())
                {
                    session.Store(new Customer {
                        Name = "John", Address = "Tel Aviv"
                    });
                    session.SaveChanges();
                }

                WaitForIndexing(store);

                using (var session = store.OpenSession())
                {
                    var enumerator = session.Advanced.Stream <Customer>("customers/");

                    while (enumerator.MoveNext())
                    {
                        Assert.NotNull(enumerator.Current.Document.Id);
                        Assert.Equal("John", enumerator.Current.Document.Name);
                        Assert.Equal("Tel Aviv", enumerator.Current.Document.Address);

                        Assert.NotNull(enumerator.Current.Key);
                        Assert.NotNull(enumerator.Current.Etag);
                        Assert.NotNull(enumerator.Current.Metadata[Constants.Headers.RavenEntityName]);
                        Assert.NotNull(enumerator.Current.Metadata[Constants.Headers.RavenLastModified]);
                        Assert.NotNull(enumerator.Current.Metadata[Constants.Headers.LastModified]);
                    }
                }
            }
        }