public async Task async_hit_returns_values() { StoreOptions(_ => { _.Schema.For <Shop>().SoftDeleted().AddSubClass <CoffeeShop>(); }); var shop = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(shop); session.SaveChanges(); session.Delete(shop); session.SaveChanges(); } var metadata = await theStore.Advanced.MetadataForAsync(shop); metadata.ShouldNotBeNull(); metadata.CurrentVersion.ShouldNotBe(Guid.Empty); metadata.LastModified.ShouldNotBe(default(DateTime)); metadata.DotNetType.ShouldBe(typeof(CoffeeShop).FullName); metadata.DocumentType.ShouldBe("coffee_shop"); metadata.Deleted.ShouldBeTrue(); metadata.DeletedAt.ShouldNotBeNull(); }
public async Task can_update_with_optimistic_concurrency_95_async() { var doc1 = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(doc1); await session.SaveChangesAsync(); } using (var session = theStore.OpenSession()) { var doc2 = await session.LoadAsync <CoffeeShop>(doc1.Id); doc2.Name = "Mozart's"; session.Store(doc2); await session.SaveChangesAsync(); } using (var session = theStore.QuerySession()) { (await session.LoadAsync <CoffeeShop>(doc1.Id)).Name.ShouldBe("Mozart's"); } }
public void store_with_the_right_version() { var doc1 = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(doc1); session.SaveChanges(); } DocumentMetadata metadata; using (var session = theStore.QuerySession()) { metadata = session.MetadataFor(doc1); } using (var session = theStore.OpenSession()) { doc1.Name = "Mozart's"; session.Store(doc1, metadata.CurrentVersion); session.SaveChanges(); } using (var query = theStore.QuerySession()) { query.Load <CoffeeShop>(doc1.Id).Name .ShouldBe("Mozart's"); } }
public void total_miss_returns_null() { var shop = new CoffeeShop(); theStore.Advanced.MetadataFor(shop) .ShouldBeNull(); }
public void can_update_with_optimistic_concurrency_95() { var doc1 = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(doc1); session.SaveChanges(); } using (var session = theStore.OpenSession()) { var doc2 = session.Load<CoffeeShop>(doc1.Id); doc2.Name = "Mozart's"; session.Store(doc2); session.SaveChanges(); } using (var session = theStore.QuerySession()) { session.Load<CoffeeShop>(doc1.Id).Name.ShouldBe("Mozart's"); } }
public async Task can_update_and_delete_related_documents() { var emp1 = new CoffeeShopEmployee(); var doc1 = new CoffeeShop(); doc1.Employees.Add(emp1.Id); using (var session = theStore.OpenSession()) { session.Store(emp1); session.Store(doc1); await session.SaveChangesAsync().ConfigureAwait(false); } using (var session = theStore.OpenSession(tracking: DocumentTracking.DirtyTracking)) { var emp = session.Load <CoffeeShopEmployee>(emp1.Id); var doc = session.Load <CoffeeShop>(doc1.Id); doc.Employees.Remove(emp.Id); session.Delete(emp); await session.SaveChangesAsync().ConfigureAwait(false); } }
public void update_multiple_docs_at_a_time_sad_path() { var doc1 = new CoffeeShop(); var doc2 = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(doc1, doc2); session.SaveChanges(); } using (var session = theStore.DirtyTrackedSession()) { var doc12 = session.Load <CoffeeShop>(doc1.Id); doc12.Name = "Mozart's"; var doc22 = session.Load <CoffeeShop>(doc2.Id); doc22.Name = "Dominican Joe's"; using (var other = theStore.DirtyTrackedSession()) { other.Load <CoffeeShop>(doc1.Id).Name = "Genuine Joe's"; other.Load <CoffeeShop>(doc2.Id).Name = "Cafe Medici"; other.SaveChanges(); } var ex = Exception <AggregateException> .ShouldBeThrownBy(() => { session.SaveChanges(); }); ex.InnerExceptions.OfType <ConcurrencyException>().Count().ShouldBe(2); } }
public async Task store_with_the_right_version_async() { var doc1 = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(doc1); await session.SaveChangesAsync(); } DocumentMetadata metadata; using (var session = theStore.QuerySession()) { metadata = await session.MetadataForAsync(doc1); } using (var session = theStore.OpenSession()) { doc1.Name = "Mozart's"; session.Store(doc1, metadata.CurrentVersion); await session.SaveChangesAsync(); } using (var query = theStore.QuerySession()) { (await query.LoadAsync <CoffeeShop>(doc1.Id)).Name .ShouldBe("Mozart's"); } }
public void can_update_and_delete_related_documents_synchronous() { var emp1 = new CoffeeShopEmployee(); var doc1 = new CoffeeShop(); doc1.Employees.Add(emp1.Id); using (var session = theStore.OpenSession()) { session.Store(emp1); session.Store(doc1); session.SaveChanges(); } using (var session = theStore.OpenSession(tracking: DocumentTracking.DirtyTracking)) { var emp = session.Load <CoffeeShopEmployee>(emp1.Id); var doc = session.Load <CoffeeShop>(doc1.Id); doc.Employees.Remove(emp.Id); session.Delete(emp); session.SaveChanges(); } }
public async Task update_multiple_docs_at_a_time_happy_path_async() { var doc1 = new CoffeeShop(); var doc2 = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(doc1, doc2); await session.SaveChangesAsync(); } using (var session = theStore.DirtyTrackedSession()) { var doc12 = await session.LoadAsync <CoffeeShop>(doc1.Id); doc12.Name = "Mozart's"; var doc22 = await session.LoadAsync <CoffeeShop>(doc2.Id); doc22.Name = "Dominican Joe's"; await session.SaveChangesAsync(); } using (var query = theStore.QuerySession()) { (await query.LoadAsync <CoffeeShop>(doc1.Id)).Name.ShouldBe("Mozart's"); (await query.LoadAsync <CoffeeShop>(doc2.Id)).Name.ShouldBe("Dominican Joe's"); } }
public void can_do_multiple_updates_in_a_row_standard() { var doc1 = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(doc1); session.SaveChanges(); } using (var session = theStore.DirtyTrackedSession()) { var doc2 = session.Load <CoffeeShop>(doc1.Id); doc2.Name = "Mozart's"; session.SaveChanges(); doc2.Name = "Cafe Medici"; session.SaveChanges(); } using (var query = theStore.QuerySession()) { query.Load <CoffeeShop>(doc1.Id).Name.ShouldBe("Cafe Medici"); } }
public void update_multiple_docs_at_a_time_happy_path() { var doc1 = new CoffeeShop(); var doc2 = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(doc1, doc2); session.SaveChanges(); } using (var session = theStore.DirtyTrackedSession()) { var doc12 = session.Load <CoffeeShop>(doc1.Id); doc12.Name = "Mozart's"; var doc22 = session.Load <CoffeeShop>(doc2.Id); doc22.Name = "Dominican Joe's"; session.SaveChanges(); } using (var query = theStore.QuerySession()) { query.Load <CoffeeShop>(doc1.Id).Name.ShouldBe("Mozart's"); query.Load <CoffeeShop>(doc2.Id).Name.ShouldBe("Dominican Joe's"); } }
public void total_miss_returns_null() { var shop = new CoffeeShop(); theStore.Tenancy.Default.MetadataFor(shop) .ShouldBeNull(); }
public void total_miss_returns_null() { var shop = new CoffeeShop(); theSession.MetadataFor(shop) .ShouldBeNull(); }
public async Task store_with_the_right_version_async() { var doc1 = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(doc1); await session.SaveChangesAsync().ConfigureAwait(false); } var metadata = theStore.Advanced.MetadataFor(doc1); using (var session = theStore.OpenSession()) { doc1.Name = "Mozart's"; session.Store(doc1, metadata.CurrentVersion); await session.SaveChangesAsync().ConfigureAwait(false); } using (var query = theStore.QuerySession()) { (await query.LoadAsync <CoffeeShop>(doc1.Id).ConfigureAwait(false)).Name .ShouldBe("Mozart's"); } }
public async Task can_do_multiple_updates_in_a_row_standard_async() { var doc1 = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(doc1); await session.SaveChangesAsync(); } using (var session = theStore.DirtyTrackedSession()) { var doc2 = await session.LoadAsync <CoffeeShop>(doc1.Id); doc2.Name = "Mozart's"; await session.SaveChangesAsync(); doc2.Name = "Cafe Medici"; await session.SaveChangesAsync(); } using (var query = theStore.QuerySession()) { (await query.LoadAsync <CoffeeShop>(doc1.Id)).Name.ShouldBe("Cafe Medici"); } }
public void Bug_669_can_store_and_update_same_document_with_optimistic_concurrency_and_dirty_tracking() { var doc1 = new CoffeeShop(); using (var session = theStore.OpenSession(tracking: DocumentTracking.DirtyTracking)) { session.Store(doc1); doc1.Name = "New Name"; session.SaveChanges(); } }
public void can_insert_with_optimistic_concurrency_95() { using (var session = theStore.OpenSession()) { var coffeeShop = new CoffeeShop(); session.Store(coffeeShop); session.SaveChanges(); SpecificationExtensions.ShouldNotBeNull(session.Load <CoffeeShop>(coffeeShop.Id)); } }
public async Task can_insert_with_optimistic_concurrency_95_async() { using (var session = theStore.OpenSession()) { var coffeeShop = new CoffeeShop(); session.Store(coffeeShop); await session.SaveChangesAsync(); SpecificationExtensions.ShouldNotBeNull((await session.LoadAsync <CoffeeShop>(coffeeShop.Id))); } }
public async Task can_insert_with_optimistic_concurrency_95_async() { using (var session = theStore.OpenSession()) { var coffeeShop = new CoffeeShop(); session.Store(coffeeShop); await session.SaveChangesAsync().ConfigureAwait(false); (await session.LoadAsync<CoffeeShop>(coffeeShop.Id).ConfigureAwait(false)).ShouldNotBeNull(); } }
public void can_insert_with_optimistic_concurrency_95() { using (var session = theStore.OpenSession()) { var coffeeShop = new CoffeeShop(); session.Store(coffeeShop); session.SaveChanges(); session.Load<CoffeeShop>(coffeeShop.Id).ShouldNotBeNull(); } }
public async Task can_insert_with_optimistic_concurrency_94_async() { using (var session = theStore.OpenSession()) { var coffeeShop = new CoffeeShop(); session.Store(coffeeShop); await session.SaveChangesAsync().ConfigureAwait(false); (await session.LoadAsync <CoffeeShop>(coffeeShop.Id).ConfigureAwait(false)).ShouldNotBeNull(); } }
public void can_store_same_document_multiple_times_with_optimistic_concurrency() { var doc1 = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(doc1); session.Store(doc1); session.SaveChanges(); } }
public void hit_returns_values() { var shop = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(shop); session.SaveChanges(); } var metadata = theStore.Advanced.MetadataFor(shop); metadata.ShouldNotBeNull(); metadata.CurrentVersion.ShouldNotBe(Guid.Empty); metadata.LastModified.ShouldNotBe(default(DateTime)); }
public async Task update_with_stale_version_standard_async() { var doc1 = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(doc1); await session.SaveChangesAsync().ConfigureAwait(false); } var session1 = theStore.DirtyTrackedSession(); var session2 = theStore.DirtyTrackedSession(); var session1Copy = await session1.LoadAsync <CoffeeShop>(doc1.Id).ConfigureAwait(false); var session2Copy = await session2.LoadAsync <CoffeeShop>(doc1.Id).ConfigureAwait(false); try { session1Copy.Name = "Mozart's"; session2Copy.Name = "Dominican Joe's"; // Should go through just fine await session2.SaveChangesAsync().ConfigureAwait(false); var ex = await Exception <AggregateException> .ShouldBeThrownByAsync(async() => { await session1.SaveChangesAsync().ConfigureAwait(false); }); var concurrency = ex.InnerExceptions.OfType <ConcurrencyException>().Single(); concurrency.Message.ShouldBe($"Optimistic concurrency check failed for {typeof(CoffeeShop).FullName} #{doc1.Id}"); } finally { session1.Dispose(); session2.Dispose(); } using (var query = theStore.QuerySession()) { (await query.LoadAsync <CoffeeShop>(doc1.Id).ConfigureAwait(false)).Name.ShouldBe("Dominican Joe's"); } }
public void overwrite_with_stale_version_standard() { var doc1 = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(doc1); session.SaveChanges(); } // SAMPLE: sample-override-optimistic-concurrency var session1 = theStore.OpenSession(new SessionOptions { ConcurrencyChecks = ConcurrencyChecks.Disabled, Tracking = DocumentTracking.DirtyTracking }); // ENDSAMPLE var session2 = theStore.DirtyTrackedSession(); var session1Copy = session1.Load <CoffeeShop>(doc1.Id); var session2Copy = session2.Load <CoffeeShop>(doc1.Id); try { session1Copy.Name = "Mozart's"; session2Copy.Name = "Dominican Joe's"; // Should go through just fine session2.SaveChanges(); session1.SaveChanges(); } finally { session1.Dispose(); session2.Dispose(); } using (var query = theStore.QuerySession()) { query.Load <CoffeeShop>(doc1.Id).Name.ShouldBe("Mozart's"); } }
public void update_with_stale_version() { var doc1 = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(doc1); session.SaveChanges(); } var session1 = theStore.DirtyTrackedSession(); var session2 = theStore.DirtyTrackedSession(); var session1Copy = session1.Load <CoffeeShop>(doc1.Id); var session2Copy = session2.Load <CoffeeShop>(doc1.Id); try { session1Copy.Name = "Mozart's"; session2Copy.Name = "Dominican Joe's"; // Should go through just fine session2.SaveChanges(); var ex = Exception <AggregateException> .ShouldBeThrownBy(() => { session1.SaveChanges(); }); var concurrency = ex.InnerExceptions.OfType <ConcurrencyException>().Single(); concurrency.Message.ShouldBe($"Optimistic concurrency check failed for {typeof(Shop).FullName} #{doc1.Id}"); } finally { session1.Dispose(); session2.Dispose(); } using (var query = theStore.QuerySession()) { query.Load <CoffeeShop>(doc1.Id).Name.ShouldBe("Dominican Joe's"); } }
public void hit_returns_values() { var shop = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(shop); session.SaveChanges(); } var metadata = theStore.Advanced.MetadataFor(shop); metadata.ShouldNotBeNull(); metadata.CurrentVersion.ShouldNotBe(Guid.Empty); metadata.LastModified.ShouldNotBe(default(DateTime)); metadata.DotNetType.ShouldBe(typeof(CoffeeShop).FullName); metadata.DocumentType.ShouldBeNull(); metadata.Deleted.ShouldBeFalse(); metadata.DeletedAt.ShouldBeNull(); }
public async Task update_multiple_docs_at_a_time_sad_path_async() { var doc1 = new CoffeeShop(); var doc2 = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(doc1, doc2); await session.SaveChangesAsync().ConfigureAwait(false); } using (var session = theStore.DirtyTrackedSession()) { var doc12 = await session.LoadAsync <CoffeeShop>(doc1.Id).ConfigureAwait(false); doc12.Name = "Mozart's"; var doc22 = await session.LoadAsync <CoffeeShop>(doc2.Id).ConfigureAwait(false); doc22.Name = "Dominican Joe's"; using (var other = theStore.DirtyTrackedSession()) { (await other.LoadAsync <CoffeeShop>(doc1.Id).ConfigureAwait(false)).Name = "Genuine Joe's"; (await other.LoadAsync <CoffeeShop>(doc2.Id).ConfigureAwait(false)).Name = "Cafe Medici"; await other.SaveChangesAsync().ConfigureAwait(false); } var ex = await Exception <AggregateException> .ShouldBeThrownByAsync(async() => { await session.SaveChangesAsync().ConfigureAwait(false); }); ex.InnerExceptions.OfType <ConcurrencyException>().Count().ShouldBe(2); } }
public void store_with_the_right_version_sad_path() { var doc1 = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(doc1); session.SaveChanges(); } using (var session = theStore.OpenSession()) { doc1.Name = "Mozart's"; // Some random version that won't match session.Store(doc1, Guid.NewGuid()); Exception <AggregateException> .ShouldBeThrownBy(() => { session.SaveChanges(); }); } }
public async Task can_update_with_optimistic_concurrenc_async() { var doc1 = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(doc1); await session.SaveChangesAsync().ConfigureAwait(false); } using (var session = theStore.OpenSession()) { var doc2 = await session.LoadAsync<Shop>(doc1.Id).ConfigureAwait(false); doc2.As<CoffeeShop>().Name = "Mozart's"; session.Store(doc2); await session.SaveChangesAsync().ConfigureAwait(false); } using (var session = theStore.QuerySession()) { (await session.LoadAsync<CoffeeShop>(doc1.Id).ConfigureAwait(false)).Name.ShouldBe("Mozart's"); } }
public async Task store_with_the_right_version_sad_path_async() { var doc1 = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(doc1); await session.SaveChangesAsync(); } using (var session = theStore.OpenSession()) { doc1.Name = "Mozart's"; // Some random version that won't match session.Store(doc1, Guid.NewGuid()); await Exception <ConcurrencyException> .ShouldBeThrownByAsync(async() => { await session.SaveChangesAsync(); }); } }
public void can_update_with_optimistic_concurrency_95() { var doc1 = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(doc1); session.SaveChanges(); } using (var session = theStore.OpenSession()) { var doc2 = session.Load <CoffeeShop>(doc1.Id); doc2.Name = "Mozart's"; session.Store(doc2); session.SaveChanges(); } using (var session = theStore.QuerySession()) { session.Load <CoffeeShop>(doc1.Id).Name.ShouldBe("Mozart's"); } }
public void total_miss_returns_null() { var shop = new CoffeeShop(); SpecificationExtensions.ShouldBeNull(theStore.Tenancy.Default.MetadataFor(shop)); }
public void update_multiple_docs_at_a_time_sad_path() { var doc1 = new CoffeeShop(); var doc2 = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(doc1, doc2); session.SaveChanges(); } using (var session = theStore.DirtyTrackedSession()) { var doc12 = session.Load<CoffeeShop>(doc1.Id); doc12.Name = "Mozart's"; var doc22 = session.Load<CoffeeShop>(doc2.Id); doc22.Name = "Dominican Joe's"; using (var other = theStore.DirtyTrackedSession()) { other.Load<CoffeeShop>(doc1.Id).Name = "Genuine Joe's"; other.Load<CoffeeShop>(doc2.Id).Name = "Cafe Medici"; other.SaveChanges(); } var ex = Exception<AggregateException>.ShouldBeThrownBy(() => { session.SaveChanges(); }); ex.InnerExceptions.OfType<ConcurrencyException>().Count().ShouldBe(2); } }
public async Task update_with_stale_version_standard_async() { var doc1 = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(doc1); await session.SaveChangesAsync().ConfigureAwait(false); } var session1 = theStore.DirtyTrackedSession(); var session2 = theStore.DirtyTrackedSession(); var session1Copy = await session1.LoadAsync<CoffeeShop>(doc1.Id).ConfigureAwait(false); var session2Copy = await session2.LoadAsync<CoffeeShop>(doc1.Id).ConfigureAwait(false); try { session1Copy.Name = "Mozart's"; session2Copy.Name = "Dominican Joe's"; // Should go through just fine await session2.SaveChangesAsync().ConfigureAwait(false); var ex = await Exception<AggregateException>.ShouldBeThrownByAsync(async () => { await session1.SaveChangesAsync().ConfigureAwait(false); }); var concurrency = ex.InnerExceptions.OfType<ConcurrencyException>().Single(); concurrency.Message.ShouldBe($"Optimistic concurrency check failed for {typeof(CoffeeShop).FullName} #{doc1.Id}"); } finally { session1.Dispose(); session2.Dispose(); } using (var query = theStore.QuerySession()) { (await query.LoadAsync<CoffeeShop>(doc1.Id).ConfigureAwait(false)).Name.ShouldBe("Dominican Joe's"); } }
public void update_with_stale_version() { var doc1 = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(doc1); session.SaveChanges(); } var session1 = theStore.DirtyTrackedSession(); var session2 = theStore.DirtyTrackedSession(); var session1Copy = session1.Load<CoffeeShop>(doc1.Id); var session2Copy = session2.Load<CoffeeShop>(doc1.Id); try { session1Copy.Name = "Mozart's"; session2Copy.Name = "Dominican Joe's"; // Should go through just fine session2.SaveChanges(); var ex = Exception<AggregateException>.ShouldBeThrownBy(() => { session1.SaveChanges(); }); var concurrency = ex.InnerExceptions.OfType<ConcurrencyException>().Single(); concurrency.Message.ShouldBe($"Optimistic concurrency check failed for {typeof(Shop).FullName} #{doc1.Id}"); } finally { session1.Dispose(); session2.Dispose(); } using (var query = theStore.QuerySession()) { query.Load<CoffeeShop>(doc1.Id).Name.ShouldBe("Dominican Joe's"); } }
public async Task can_do_multiple_updates_in_a_row_standard_async() { var doc1 = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(doc1); await session.SaveChangesAsync().ConfigureAwait(false); } using (var session = theStore.DirtyTrackedSession()) { var doc2 = await session.LoadAsync<CoffeeShop>(doc1.Id).ConfigureAwait(false); doc2.Name = "Mozart's"; await session.SaveChangesAsync().ConfigureAwait(false); doc2.Name = "Cafe Medici"; await session.SaveChangesAsync().ConfigureAwait(false); } using (var query = theStore.QuerySession()) { (await query.LoadAsync<CoffeeShop>(doc1.Id).ConfigureAwait(false)).Name.ShouldBe("Cafe Medici"); } }
public void can_do_multiple_updates_in_a_row_standard() { var doc1 = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(doc1); session.SaveChanges(); } using (var session = theStore.DirtyTrackedSession()) { var doc2 = session.Load<CoffeeShop>(doc1.Id); doc2.Name = "Mozart's"; session.SaveChanges(); doc2.Name = "Cafe Medici"; session.SaveChanges(); } using (var query = theStore.QuerySession()) { query.Load<CoffeeShop>(doc1.Id).Name.ShouldBe("Cafe Medici"); } }
public async Task update_multiple_docs_at_a_time_happy_path_async() { var doc1 = new CoffeeShop(); var doc2 = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(doc1, doc2); await session.SaveChangesAsync().ConfigureAwait(false); } using (var session = theStore.DirtyTrackedSession()) { var doc12 = await session.LoadAsync<CoffeeShop>(doc1.Id).ConfigureAwait(false); doc12.Name = "Mozart's"; var doc22 = await session.LoadAsync<CoffeeShop>(doc2.Id).ConfigureAwait(false); doc22.Name = "Dominican Joe's"; await session.SaveChangesAsync().ConfigureAwait(false); } using (var query = theStore.QuerySession()) { (await query.LoadAsync<CoffeeShop>(doc1.Id).ConfigureAwait(false)).Name.ShouldBe("Mozart's"); (await query.LoadAsync<CoffeeShop>(doc2.Id).ConfigureAwait(false)).Name.ShouldBe("Dominican Joe's"); } }
public void update_multiple_docs_at_a_time_happy_path() { var doc1 = new CoffeeShop(); var doc2 = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(doc1, doc2); session.SaveChanges(); } using (var session = theStore.DirtyTrackedSession()) { var doc12 = session.Load<CoffeeShop>(doc1.Id); doc12.Name = "Mozart's"; var doc22 = session.Load<CoffeeShop>(doc2.Id); doc22.Name = "Dominican Joe's"; session.SaveChanges(); } using (var query = theStore.QuerySession()) { query.Load<CoffeeShop>(doc1.Id).Name.ShouldBe("Mozart's"); query.Load<CoffeeShop>(doc2.Id).Name.ShouldBe("Dominican Joe's"); } }
public async Task update_multiple_docs_at_a_time_sad_path_async() { var doc1 = new CoffeeShop(); var doc2 = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(doc1, doc2); await session.SaveChangesAsync().ConfigureAwait(false); } using (var session = theStore.DirtyTrackedSession()) { var doc12 = await session.LoadAsync<CoffeeShop>(doc1.Id).ConfigureAwait(false); doc12.Name = "Mozart's"; var doc22 = await session.LoadAsync<CoffeeShop>(doc2.Id).ConfigureAwait(false); doc22.Name = "Dominican Joe's"; using (var other = theStore.DirtyTrackedSession()) { (await other.LoadAsync<CoffeeShop>(doc1.Id).ConfigureAwait(false)).Name = "Genuine Joe's"; (await other.LoadAsync<CoffeeShop>(doc2.Id).ConfigureAwait(false)).Name = "Cafe Medici"; await other.SaveChangesAsync().ConfigureAwait(false); } var ex = await Exception<AggregateException>.ShouldBeThrownByAsync(async () => { await session.SaveChangesAsync().ConfigureAwait(false); }); ex.InnerExceptions.OfType<ConcurrencyException>().Count().ShouldBe(2); } }
public void store_with_the_right_version() { var doc1 = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(doc1); session.SaveChanges(); } var metadata = theStore.Advanced.MetadataFor(doc1); using (var session = theStore.OpenSession()) { doc1.Name = "Mozart's"; session.Store(doc1, metadata.CurrentVersion); session.SaveChanges(); } using (var query = theStore.QuerySession()) { query.Load<CoffeeShop>(doc1.Id).Name .ShouldBe("Mozart's"); } }
public async Task store_with_the_right_version_async() { var doc1 = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(doc1); await session.SaveChangesAsync().ConfigureAwait(false); } var metadata = theStore.Advanced.MetadataFor(doc1); using (var session = theStore.OpenSession()) { doc1.Name = "Mozart's"; session.Store(doc1, metadata.CurrentVersion); await session.SaveChangesAsync().ConfigureAwait(false); } using (var query = theStore.QuerySession()) { (await query.LoadAsync<CoffeeShop>(doc1.Id).ConfigureAwait(false)).Name .ShouldBe("Mozart's"); } }
public void store_with_the_right_version_sad_path() { var doc1 = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(doc1); session.SaveChanges(); } using (var session = theStore.OpenSession()) { doc1.Name = "Mozart's"; // Some random version that won't match session.Store(doc1, Guid.NewGuid()); Exception<AggregateException>.ShouldBeThrownBy(() => { session.SaveChanges(); }); } }
public async Task store_with_the_right_version_sad_path_async() { var doc1 = new CoffeeShop(); using (var session = theStore.OpenSession()) { session.Store(doc1); await session.SaveChangesAsync().ConfigureAwait(false); } using (var session = theStore.OpenSession()) { doc1.Name = "Mozart's"; // Some random version that won't match session.Store(doc1, Guid.NewGuid()); await Exception<AggregateException>.ShouldBeThrownByAsync(async () => { await session.SaveChangesAsync().ConfigureAwait(false); }); } }