public async Task Found_Collection_Should_Not_Be_Tracked() { //Given const string realName = "A Collection"; var collectionId = await Database.OnceAsync(async db => { var repo = new CollectionRepository(db); var collection = new Collection { Name = realName }; await repo.AddAsync(collection); return(collection.Id); }); //When await Database.OnceAsync(async db => { var repo = new CollectionRepository(db); var collection = await repo.FindAsync(collectionId); collection.Name = "Manipulated Name"; await db.SaveChangesAsync(); }); //Then var result = await Database.OnceAsync(async db => await db.Collections.FindAsync(collectionId)); Assert.Equal(realName, result.Name); }
public async Task Mapped_Found_Collection_Should_Not_Be_Tracked() { //Given const string realName = "A Collection"; const int itemsCount = 3; var collectionId = await Database.OnceAsync(async db => { var repo = new CollectionRepository(db); var collection = new Collection { Name = realName }; for (var i = 0; i < itemsCount; i++) { collection.TodoItems.Add(new TodoItem { Name = $"Item{i}" }); } await repo.AddAsync(collection); return(collection.Id); }); //When await Database.OnceAsync(async db => { var repo = new CollectionRepository(db); var found = await repo.FindAndMapAsync(collectionId, collection => new { Collection = collection, TodoItemsCount = collection.TodoItems.Count, }); Assert.Equal(itemsCount, found.TodoItemsCount); found.Collection.Name = "Manipulated Name"; await db.SaveChangesAsync(); }); //Then var result = await Database.OnceAsync(async db => await db.Collections.FindAsync(collectionId)); Assert.Equal(realName, result.Name); }
public async Task Can_Add_A_New_Collection() { //Given var collection = new Collection { Name = "A Collection" }; //When await Database.OnceAsync(async db => { var repository = new CollectionRepository(db); await repository.AddAsync(collection); }); //Then var isExists = await Database.OnceAsync(async db => await db.Collections.AnyAsync(c => c.Name.Equals(collection.Name))); Assert.True(isExists); }