Exemplo n.º 1
0
        public void Aggressively_Cached_Load_Should_Be_Invalidated_Upon_Change()
        {
            using (var server = GetNewServer(enableAuthentication: true))
            {
                var serverUrl = ConfigureApiKeys(server);

                using (var docStore = new DocumentStore
                {
                    Url = serverUrl + "databases/Foo",
                    ApiKey = "Foo/ThisIsMySecret2",
                    Conventions =
                    {
                        ShouldAggressiveCacheTrackChanges = true
                    }

                })
                {
                    docStore.Initialize();

                    DeleteAllCars(docStore);

                    StoreCars(docStore);
                
                    using (var session = docStore.OpenSession("Foo"))
                    {
                        var car = GetAggressivelyCachedCar(session);
                        Assert.True(car.Brand.Equals("Volvo", StringComparison.OrdinalIgnoreCase));
                    }

                    using (var session = docStore.OpenSession())
                    {
                        docStore.GetObserveChangesAndEvictItemsFromCacheTask().Wait();
                        var car = session.Load<Car>("car/2");
                        car.Brand = "BMW";
                        session.SaveChanges();
                    }

                    using (var session = docStore.OpenSession("Foo"))
                    {
                        var car = GetAggressivelyCachedCar(session);
                        Assert.True(car.Brand.Equals("BMW", StringComparison.OrdinalIgnoreCase)); 

                    }
                }
            }
        }