示例#1
0
        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");
        }
示例#2
0
        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);
        }