Example #1
0
        public void can_load_documents_with_transformer_with_load_document_streaming(string storageType)
        {
            using (var server = GetNewServer(requestedStorage: storageType))
                using (var store = NewRemoteDocumentStore(true, ravenDbServer: server))
                {
                    var transformer = new TestDocumentTransformer();
                    new TestDocumentTransformer().Execute(store);
                    var transformer2 = new TestDocumentTransformer2();
                    new TestDocumentTransformer2().Execute(store);

                    var document1Id = "test/1";
                    var document2Id = "test/2";

                    using (var session = store.OpenSession())
                    {
                        session.Store(new TestDocument {
                            Id = document1Id, Value = 1
                        });
                        session.Store(new TestDocument {
                            Id = document2Id, Value = 2
                        });
                        session.SaveChanges();
                    }

                    using (var session = store.OpenSession())
                    {
                        var docsWithoutTransformer = session.Advanced.LoadStartingWith <TestDocument>("test/", start: 0, pageSize: 1024).ToList();
                        Assert.Equal(2, docsWithoutTransformer.Count);
                        Assert.Equal(1, docsWithoutTransformer[0].Value);
                        Assert.Equal(2, docsWithoutTransformer[1].Value);
                    }

                    using (var enumerator = store.DatabaseCommands.StreamDocs(Etag.Empty, transformer: transformer.TransformerName))
                    {
                        var count = 0;
                        while (enumerator.MoveNext())
                        {
                            var result = enumerator.Current;
                            switch (count)
                            {
                            case 0:
                                Assert.True(result.Value <string>("ValueFormatted").StartsWith("Formatted Value is {\r\n  \"Value\": 1,\r\n"));
                                break;

                            case 1:
                                Assert.True(result.Value <string>("ValueFormatted").StartsWith("Formatted Value is {\r\n  \"Value\": 2,\r\n"));
                                break;
                            }
                            count++;
                        }

                        Assert.Equal(2, count);
                    }

                    using (var enumerator = store.DatabaseCommands.StreamDocs(Etag.Empty, transformer: transformer2.TransformerName))
                    {
                        var count = 0;
                        while (enumerator.MoveNext())
                        {
                            var result = enumerator.Current;
                            switch (count)
                            {
                            case 0:
                                Assert.True(result.Value <string>("ValueFormatted").StartsWith("Formatted Value is {\r\n  \"Value\": 1,\r\n"));
                                break;

                            case 1:
                                Assert.True(result.Value <string>("ValueFormatted").StartsWith("Formatted Value is {\r\n  \"Value\": 2,\r\n"));
                                break;
                            }
                            count++;
                        }

                        Assert.Equal(2, count);
                    }
                }
        }
Example #2
0
        public void can_load_documents_with_transformer_with_load_document_streaming()
        {
            using (var store = GetDocumentStore())
            {
                var transformer = new TestDocumentTransformer();
                new TestDocumentTransformer().Execute(store);
                var transformer2 = new TestDocumentTransformer2();
                new TestDocumentTransformer2().Execute(store);

                var document1Id = "test/1";
                var document2Id = "test/2";

                using (var session = store.OpenSession())
                {
                    session.Store(new TestDocument {
                        Id = document1Id, Value = 1
                    });
                    session.Store(new TestDocument {
                        Id = document2Id, Value = 2
                    });
                    session.SaveChanges();
                }

                using (var session = store.OpenSession())
                {
                    var docsWithoutTransformer = session.Advanced.LoadStartingWith <TestDocument>("test/", start: 0, pageSize: 1024).ToList();
                    Assert.Equal(2, docsWithoutTransformer.Count);
                    Assert.Equal(1, docsWithoutTransformer[0].Value);
                    Assert.Equal(2, docsWithoutTransformer[1].Value);
                }

                using (var enumerator = store.DatabaseCommands.StreamDocs(0, transformer: transformer.TransformerName))
                {
                    var count = 0;
                    while (enumerator.MoveNext())
                    {
                        var result = (RavenJObject)enumerator.Current.Value <RavenJArray>("$values")[0];
                        switch (count)
                        {
                        case 0:
                            Assert.True(result.Value <string>("ValueFormatted").StartsWith("Formatted Value is {\"Value\":1,"));
                            break;

                        case 1:
                            Assert.True(result.Value <string>("ValueFormatted").StartsWith("Formatted Value is {\"Value\":2,"));
                            break;
                        }
                        count++;
                    }

                    Assert.Equal(2, count);
                }

                using (var enumerator = store.DatabaseCommands.StreamDocs(0, transformer: transformer2.TransformerName))
                {
                    var count = 0;
                    while (enumerator.MoveNext())
                    {
                        var result = (RavenJObject)enumerator.Current.Value <RavenJArray>("$values")[0];
                        switch (count)
                        {
                        case 0:
                            Assert.True(result.Value <string>("ValueFormatted").StartsWith("Formatted Value is {\"Value\":1,"));
                            break;

                        case 1:
                            Assert.True(result.Value <string>("ValueFormatted").StartsWith("Formatted Value is {\"Value\":2,"));
                            break;
                        }
                        count++;
                    }

                    Assert.Equal(2, count);
                }
            }
        }