public void Add_Inserts() { var sprocket = new Sprocket { Id = Guid.NewGuid(), Name = "Outer", Sprockets = new[] { new Sprocket { Id = Guid.NewGuid(), Name = "Inner" } } }; SprocketRepo.Add(sprocket); Sprocket found = SprocketCollection.AsQueryable().Single(s => s.Id == sprocket.Id); found.Name.Should().Be("Outer"); found.Sprockets.Single().Name.Should().Be("Inner"); }
public void Update_Saves() { var sprocket = new Sprocket { Id = Guid.NewGuid(), Name = "Outer", Sprockets = new[] { new Sprocket { Id = Guid.NewGuid(), Name = "Inner" } } }; SprocketCollection.Insert(sprocket); sprocket = SprocketCollection.AsQueryable().Single(s => s.Id == sprocket.Id); sprocket.Name = "Saved"; SprocketRepo.Update(sprocket); Sprocket found = SprocketCollection.AsQueryable().Single(s => s.Id == sprocket.Id); found.Name.Should().Be("Saved"); }
public void VersionlessUpdate_Succeeds() { // Mimic the scenario where an object does not start out versioned but a version field is added later. // The repository should behave as if a document with no version has version number 0. var rawCollection = MongoDatabase.GetCollection(SprocketCollection.Name); Guid id = Guid.NewGuid(); var doc = new BsonDocument(new Dictionary <string, object>() { { "_id", id }, { "Name", "Versionless" } }); rawCollection.Insert(doc); // sanity check var sprocket = SprocketCollection.AsQueryable().Single(s => s.Id == id); sprocket.Version.Should().Be(0); sprocket.Name = "Now versioned"; SprocketRepo.Update(sprocket); sprocket.Version.Should().Be(1); }