Exemple #1
0
        public void IncludeWithBadClrTypeShouldWorkForBothLoadsAndQueries()
        {
            using (var store = NewDocumentStore())
            {
                store.DatabaseCommands.Put("addresses/1", null, RavenJObject.FromObject(new Address { Street = "Street1" }), new RavenJObject());

                using (var session = store.OpenSession())
                {
                    var person = new Person { AddressId = "addresses/1", Name = "Name1" };
                    session.Store(person);

                    session.SaveChanges();
                }

                using (var session = store.OpenSession())
                {
                    var person = session.Include<Person>(x => x.AddressId).Load<Person>("people/1");

                    Assert.NotNull(person);
                    Assert.Equal("Name1", person.Name);
                    Assert.Equal("addresses/1", person.AddressId);

                    Assert.Equal(1, session.Advanced.NumberOfRequests);

                    var address = session.Load<Address>(person.AddressId);

                    Assert.Equal("Street1", address.Street);

                    Assert.Equal(1, session.Advanced.NumberOfRequests);
                }

                using (var session = store.OpenSession())
                {
                    var people = session
                        .Query<Person>()
                        .Include(x => x.AddressId)
                        .Customize(x => x.WaitForNonStaleResults())
                        .ToList();

                    Assert.Equal(1, people.Count);

                    var person = people[0];

                    Assert.NotNull(person);
                    Assert.Equal("Name1", person.Name);
                    Assert.Equal("addresses/1", person.AddressId);

                    Assert.Equal(1, session.Advanced.NumberOfRequests);

                    var address = session.Load<Address>(person.AddressId);

                    Assert.Equal("Street1", address.Street);

                    Assert.Equal(1, session.Advanced.NumberOfRequests);
                }
            }
        }
Exemple #2
0
		public void ShouldWork()
		{
			var one = CreateStore();
			var two = CreateStore();

			var random = new Random();
			var content = new byte[10000];
			random.NextBytes(content);

			string id = null;

			using (var s1 = one.OpenSession())
			{
				for (int i = 0; i < 10000; i++)
				{
					var item = new Item { Name = "ayende", Content = content };
					s1.Store(item);

					id = item.Id;
				}

				s1.SaveChanges();
			}

			// master / master
			TellFirstInstanceToReplicateToSecondInstance();

			Thread.Sleep(2000);

			for (int i = 0; i < 10; i++)
			{
				using (var s2 = two.OpenSession())
				{
					var item = new Person { Name = "ayende" };
					s2.Store(item);

					s2.SaveChanges();

					Thread.Sleep(500);
				}
			}

			WaitForReplication(two, id);

			using (var s2 = two.OpenSession())
			{
				var count = s2
					.Query<Result>("Raven/DocumentsByEntityName")
					.Customize(x => x.WaitForNonStaleResults())
					.Count(x => x.Tag == "Items");

				Assert.Equal(10000, count);
			}
		}
        public async Task<HttpResponseMessage> MarkReadOnly()
        {
            var person = new Person();

            await Session
                .StoreAsync(person);

            Session
                .Advanced
                .MarkReadOnly(person);

            return new HttpResponseMessage();
        }
        public Task<HttpResponseMessage> GetDocumentUrl()
        {
            var person = new Person();

            Session
                .Store(person);

            Session
                .Advanced
                .GetDocumentUrl(person);
            return new CompletedTask<HttpResponseMessage>(new HttpResponseMessage());
        }
		public HttpResponseMessage Refresh()
		{
			var person = new Person();

			Session
				.Store(person);

			Session
				.SaveChanges();

			Session
				.Advanced
				.Refresh(person);

			return new HttpResponseMessage();
		}
		public HttpResponseMessage MarkReadOnly()
		{
			var person = new Person();

			Session
				.Store(person);

			Session
				.Advanced
				.MarkReadOnly(person);

			return new HttpResponseMessage();
		}
		public HttpResponseMessage IgnoreChangesFor()
		{
			var person = new Person();

			Session
				.Store(person);

			Session
				.Advanced
				.IgnoreChangesFor(person);
			return new HttpResponseMessage();
		}
		public HttpResponseMessage GetMetadataFor()
		{
			var person = new Person();

			Session
				.Store(person);

			Session
				.Advanced
				.GetMetadataFor(person);
			return new HttpResponseMessage();
		}
		public HttpResponseMessage ExplicitlyVersion()
		{
			var person = new Person();

			Session
				.Store(person);

			Session
				.Advanced
				.ExplicitlyVersion(person);
			return new HttpResponseMessage();
		}
        public Task<HttpResponseMessage> Refresh()
        {
            var person = new Person();

            Session
                .Store(person);

            Session
                .SaveChanges();

            Session
                .Advanced
                .Refresh(person);

            return new CompletedTask<HttpResponseMessage>(new HttpResponseMessage());
        }
        public Task<HttpResponseMessage> MarkReadOnly()
        {
            var person = new Person();

            Session
                .Store(person);

            Session
                .Advanced
                .MarkReadOnly(person);

            return new CompletedTask<HttpResponseMessage>(new HttpResponseMessage());
        }
        public Task<HttpResponseMessage> IsLoaded()
        {
            var person = new Person();

            Session
                .Store(person);

            Session
                .Advanced
                .IsLoaded("people/1");
            return new CompletedTask<HttpResponseMessage>(new HttpResponseMessage());
        }
        public Task<HttpResponseMessage> IgnoreChangesFor()
        {
            var person = new Person();

            Session
                .Store(person);

            Session
                .Advanced
                .IgnoreChangesFor(person);
            return new CompletedTask<HttpResponseMessage>(new HttpResponseMessage());
        }
        public Task<HttpResponseMessage> GetMetadataFor()
        {
            var person = new Person();

            Session
                .Store(person);

            Session
                .Advanced
                .GetMetadataFor(person);
            return new CompletedTask<HttpResponseMessage>(new HttpResponseMessage());
        }
        public async Task<HttpResponseMessage> Refresh()
        {
            var person = new Person();

            await Session
                .StoreAsync(person);

            await Session
                .SaveChangesAsync();

            await Session
                .Advanced
                .RefreshAsync(person);

            return new HttpResponseMessage();
        }
		public HttpResponseMessage Evict()
		{
			var person = new Person();

			Session
				.Store(person);

			Session
				.Advanced
				.Evict(person);
			return new HttpResponseMessage();
		}
        public async Task<HttpResponseMessage> ExplicitlyVersion()
        {
            var person = new Person();

            await Session
                .StoreAsync(person);

            Session
                .Advanced
                .ExplicitlyVersion(person);
            return new HttpResponseMessage();
        }
		public HttpResponseMessage GetDocumentUrl()
		{
			var person = new Person();

			Session
				.Store(person);

			Session
				.Advanced
				.GetDocumentUrl(person);
			return new HttpResponseMessage();
		}
        public async Task<HttpResponseMessage> GetDocumentUrl()
        {
            var person = new Person();

            await Session
                .StoreAsync(person);

            Session
                .Advanced
                .GetDocumentUrl(person);
            return new HttpResponseMessage();
        }
		public HttpResponseMessage HasChanged()
		{
			var person = new Person();

			Session
				.Store(person);

			Session
				.Advanced
				.HasChanged(person);
			return new HttpResponseMessage();
		}
        public async Task<HttpResponseMessage> GetMetadataFor()
        {
            var person = new Person();

            await Session
                .StoreAsync(person);

            Session
                .Advanced
                .GetMetadataFor(person);
            return new HttpResponseMessage();
        }
		public HttpResponseMessage IsLoaded()
		{
			var person = new Person();

			Session
				.Store(person);

			Session
				.Advanced
				.IsLoaded("people/1");
			return new HttpResponseMessage();
		}
        public async Task<HttpResponseMessage> HasChanged()
        {
            var person = new Person();

            await Session
                .StoreAsync(person);

            Session
                .Advanced
                .HasChanged(person);
            return new HttpResponseMessage();
        }
		public HttpResponseMessage MultiFacetedSearch()
		{
			var person = new Person();

			Session
				.Store(person);

			Session
				.Advanced
				.MultiFacetedSearch(new[]
				                    {
					                    new FacetQuery
					                    {
						                    IndexName = new RavenDocumentsByEntityName().IndexName, 
											Query = new IndexQuery(), 
											Facets = new List<Facet>
											         {
												         new Facet
												         {
													         Name = "Facet1", 
															 Mode = FacetMode.Default
												         }
											         }
					                    }
				                    });

			return new HttpResponseMessage();
		}
        public async Task<HttpResponseMessage> IgnoreChangesFor()
        {
            var person = new Person();

            await Session
                .StoreAsync(person);

            Session
                .Advanced
                .IgnoreChangesFor(person);
            return new HttpResponseMessage();
        }
        public async Task<HttpResponseMessage> IsLoaded()
        {
            var person = new Person();

            await Session
                .StoreAsync(person);

            Session
                .Advanced
                .IsLoaded("people/1");
            return new HttpResponseMessage();
        }
        public Task<HttpResponseMessage> ExplicitlyVersion()
        {
            var person = new Person();

            Session
                .Store(person);

            Session
                .Advanced
                .ExplicitlyVersion(person);
            return new CompletedTask<HttpResponseMessage>(new HttpResponseMessage());
        }