Пример #1
0
 private IEnumerable <LargeDoc> GetDocs(int initial, int count)
 {
     for (var i = initial; i < initial + count; i++)
     {
         yield return(new LargeDoc
         {
             Guid = Guid.NewGuid(),
             Lorem = TempFile.LoremIpsum(10, 15, 2, 3, 3)
         });
     }
 }
Пример #2
0
        private IEnumerable <BsonDocument> GetDocs()
        {
            for (var i = 0; i < 220; i++)
            {
                var doc = new BsonDocument()
                          .Add("_id", Guid.NewGuid())
                          .Add("content", TempFile.LoremIpsum(20, 50, 1, 2, 1));

                yield return(doc);
            }
        }
Пример #3
0
        private BsonDocument CreateDoc(int id, string name)
        {
            var doc = new BsonDocument();

            doc["_id"]   = id;
            doc["name"]  = name;
            doc["desc"]  = TempFile.LoremIpsum(10, 10, 2, 2, 2);
            doc["date"]  = DateTime.Now.AddDays(_rnd.Next(300));
            doc["value"] = _rnd.NextDouble() * 5000;

            return(doc);
        }
Пример #4
0
 private IEnumerable <BsonDocument> GetDocs(int initial, int count, int type = 1)
 {
     for (var i = initial; i < initial + count; i++)
     {
         yield return(new BsonDocument
         {
             { "_id", i },
             { "name", Guid.NewGuid().ToString() },
             { "first", "John" },
             { "lorem", TempFile.LoremIpsum(3, 5, 2, 3, 3) }
         });
     }
 }
Пример #5
0
        private IEnumerable <BsonDocument> GetDocs(int count)
        {
            var rnd = new Random();

            for (var i = 0; i < count; i++)
            {
                yield return(new BsonDocument
                {
                    { "_id", ObjectId.NewObjectId() },
                    { "html", TempFile.LoremIpsum(15, 50, 4, 10, 3) }
                });
            }
        }
Пример #6
0
        public void Thread_InsertUpdate_Test()
        {
            const int N = 3000;

            using (var file = new TempFile())
                using (var db = new LiteEngine(file.Filename))
                {
                    db.EnsureIndex("col", "updated");

                    Assert.AreEqual(0, db.Count("col", Query.EQ("updated", true)));

                    // insert basic document
                    var ta = Task.Factory.StartNew(() =>
                    {
                        for (var i = 0; i < N; i++)
                        {
                            var doc = new BsonDocument {
                                { "_id", i }
                            };

                            db.Insert("col", doc);
                        }
                    });

                    // update _id=N
                    var tb = Task.Factory.StartNew(() =>
                    {
                        var i = 0;
                        while (i < N)
                        {
                            var doc = new BsonDocument
                            {
                                { "_id", i },
                                { "updated", true },
                                { "name", TempFile.LoremIpsum(5, 10, 1, 5, 1) }
                            };

                            if (db.Update("col", doc))
                            {
                                i++;
                            }
                        }
                    });

                    Task.WaitAll(ta, tb);

                    Assert.AreEqual(N, db.Count("col", Query.EQ("updated", true)));
                }
        }
Пример #7
0
        private IEnumerable <BsonDocument> GetDocs(int count)
        {
            var rnd = new Random();

            for (var i = 0; i < count; i++)
            {
                yield return(new BsonDocument
                {
                    { "_id", i },
                    { "name", Guid.NewGuid().ToString() },
                    { "type", rnd.Next(1, 100) },
                    { "lorem", TempFile.LoremIpsum(3, 5, 2, 3, 3) }
                });
            }
        }
Пример #8
0
        private IEnumerable <BsonDocument> GetDocs(int initial, int count, int type = 1, bool throwAtEnd = false)
        {
            for (var i = initial; i < initial + count; i++)
            {
                yield return(new BsonDocument
                {
                    { "_id", i },
                    { "name", Guid.NewGuid().ToString() },
                    { "type", type },
                    { "lorem", TempFile.LoremIpsum(3, 5, 2, 3, 3) }
                });
            }

            // force throw exception during big insert
            if (throwAtEnd)
            {
                throw new Exception("Try Recovery!");
            }
        }