public void mongo_task_entity_update_by_express_test()
        {
            var dateTime = DateTime.Now;
            var timeSpan = new TimeSpan(1, 1, 1);
            var task     = GetMongoTaskEntity(dateTime, timeSpan);

            var repo = new MongoTestDB <MongoTaskEntity>();

            repo.Insert(task);
            var id = task.Id;

            var newTimeSpan = new TimeSpan(3, 3, 3);
            var newDateTime = dateTime.AddDays(-1);
            var newName     = "newMongoTest";

            task.SetUpdate(() => task.TaskEntity.StartTime, newTimeSpan);
            task.SetUpdate(() => task.TaskStatusEntity.LastRunTime, newDateTime);
            task.SetUpdate(() => task.Name, newName);

            repo.Update(p => p.Id == id, task);

            var updatedTaskList = repo.GetAll();

            updatedTaskList.Should().NotBeNull();

            var updatedTask = updatedTaskList.FirstOrDefault();

            updatedTask.Should().NotBeNull();
            updatedTask.TaskEntity.StartTime.Should().Be(newTimeSpan);
            updatedTask.TaskStatusEntity.LastRunTime.Day.Should().Be(dateTime.AddDays(-1).Day);
            updatedTask.Name.Should().Be(newName);
        }
Beispiel #2
0
        //[Fact]
        public void mongo_long_id_generator_concurrency_test()
        {
            var repo  = new MongoTestDB <CustomEntityTest, int>();
            var count = 10;
            var tasks = new Task[count];

            for (var i = 0; i < count; i++)
            {
                tasks[i] = Task.Factory.StartNew(() =>
                {
                    var custom = new CustomEntityTest()
                    {
                        Name = "jia" + DateTime.Now.ToLongDateString()
                    };
                    repo.Insert(custom);
                });
            }
            Task.WaitAll(tasks);
            var list = repo.GetAll().ToList();

            list.Count.Should().Be(count);
            var maxId = list.Max(p => p.Id);

            maxId.Should().Be(count);
        }
        public void mongo_task_entity_insert_test()
        {
            var dateTime = DateTime.Now;
            var timeSpan = new TimeSpan(1, 1, 1);
            var task     = GetMongoTaskEntity(dateTime, timeSpan);

            var repo = new MongoTestDB <MongoTaskEntity>();

            repo.Insert(task);
            var all       = repo.GetAll();
            var addedTask = all.First();

            addedTask.TaskStatusEntity.LastRunTime.Millisecond.Should().Be(dateTime.Millisecond);
            addedTask.TaskStatusEntity.LastRunTime.Second.Should().Be(dateTime.Second);
            addedTask.TaskEntity.StartTime.Should().Be(timeSpan);
        }
        public void mongo_batch_test()
        {
            var customerRepo = new MongoTestDB <Customer>();

            var custlist = new List <Customer>(new Customer[] {
                new Customer()
                {
                    FirstName = "Customer A"
                },
                new Customer()
                {
                    FirstName = "Client B"
                },
                new Customer()
                {
                    FirstName = "Customer C"
                },
                new Customer()
                {
                    FirstName = "Client D"
                },
                new Customer()
                {
                    FirstName = "Customer E"
                },
                new Customer()
                {
                    FirstName = "Client F"
                },
                new Customer()
                {
                    FirstName = "Customer G"
                },
            });

            //Insert batch
            customerRepo.Insert(custlist);
            var count = customerRepo.GetAll().Count();

            count.Should().Be(7);

            foreach (Customer c in custlist)
            {
                c.Id.Should().NotBe(new string('0', 24));
            }

            //Update batch
            foreach (Customer c in custlist)
            {
                c.LastName = c.FirstName;
            }
            customerRepo.Update(custlist);

            var updateList = customerRepo.GetAll();

            foreach (Customer c in updateList)
            {
                c.LastName.Should().Be(c.FirstName);
            }

            //Delete by criteria
            customerRepo.Delete(f => f.FirstName.StartsWith("Client"));

            count = customerRepo.GetAll().Count();
            count.Should().Be(4);

            //Delete specific object
            customerRepo.Delete(custlist[0]);

            //Test AsQueryable
            var selectedcustomers = customerRepo.GetBy(
                cust => cust.LastName.EndsWith("C") || cust.LastName.EndsWith("G"));

            selectedcustomers.ToList().Count.Should().Be(2);

            count = customerRepo.GetAll().Count();
            count.Should().Be(3);
        }