Example #1
0
        public void CheckSpecificationQueryStrategyOnCondition()
        {
            var strategy = new ExpressionSpecificationQueryStrategy <SimpleEntity>(p => p.Id == 0);

            ConditionalExtensions.OnCondition(strategy, true).GetType().ShouldEqual(typeof(ExpressionSpecificationQueryStrategy <SimpleEntity>));
            ConditionalExtensions.OnCondition(strategy, false).GetType().ShouldEqual(typeof(DefaultSpecificationQueryStrategy <SimpleEntity>));
        }
        //        [Test]
        public void ModifyAll()
        {
            var mongoDatabase = CreateEmptyMongoDatabase();
            var repository    = new MongoDbRepository(mongoDatabase);

            repository.Add(new MySimpleAccount("xyz", DateTime.Today.AddDays(-1), 1)
            {
                Weigth = 1
            });
            repository.Add(new MySimpleAccount("xyz", DateTime.Today.AddDays(-1), 2)
            {
                Weigth = 2
            });
            repository.Add(new MySimpleAccount("xyz", DateTime.Today.AddDays(-1), 3)
            {
                Weigth = 3
            });
            repository.Add(new MySimpleAccount("xyz", DateTime.Today, 4)
            {
                Weigth = 4
            });
            repository.Add(new MySimpleAccount("xyz", DateTime.Today, 5)
            {
                Weigth = 5
            });
            repository.Add(new MySimpleAccount("xyz", DateTime.Today, 6)
            {
                Weigth = 6
            });

            var lessThanTodayQuery = new ExpressionSpecificationQueryStrategy <MySimpleAccount>(p => p.DOB < DateTime.Today);

            repository.GetEntities <MySimpleAccount>(lessThanTodayQuery).Count().ShouldEqual(3);

            var result3 = repository.ModifyAll <MySimpleAccount>(
                lessThanTodayQuery,
                new MongoUpdateItem <MySimpleAccount>(p => p.DOB, DateTime.Today),
                new MongoUpdateItem <MySimpleAccount>(p => p.Weigth, 100));

            result3.DocumentsAffected.ShouldEqual(3);

            repository.GetEntities <MySimpleAccount>(lessThanTodayQuery).Count().ShouldEqual(0);
            repository.GetEntities <MySimpleAccount>(p => p.DOB == DateTime.Today).Count().ShouldEqual(6);
            repository.GetEntities <MySimpleAccount>(p => p.Weigth == 100).Count().ShouldEqual(3);
        }
 public void CheckSpecificationQueryStrategyOnCondition()
 {
     var strategy = new ExpressionSpecificationQueryStrategy<SimpleEntity>(p => p.Id == 0);
     ConditionalExtensions.OnCondition(strategy, true).GetType().ShouldEqual(typeof(ExpressionSpecificationQueryStrategy<SimpleEntity>));
     ConditionalExtensions.OnCondition(strategy, false).GetType().ShouldEqual(typeof(DefaultSpecificationQueryStrategy<SimpleEntity>));
 }
        //        [Test]
        public void ModifyAll()
        {
            var mongoDatabase = CreateEmptyMongoDatabase();
            var repository = new MongoDbRepository(mongoDatabase);

            repository.Add(new MySimpleAccount("xyz", DateTime.Today.AddDays(-1), 1) { Weigth = 1 });
            repository.Add(new MySimpleAccount("xyz", DateTime.Today.AddDays(-1), 2) { Weigth = 2 });
            repository.Add(new MySimpleAccount("xyz", DateTime.Today.AddDays(-1), 3) { Weigth = 3 });
            repository.Add(new MySimpleAccount("xyz", DateTime.Today, 4) { Weigth = 4 });
            repository.Add(new MySimpleAccount("xyz", DateTime.Today, 5) { Weigth = 5 });
            repository.Add(new MySimpleAccount("xyz", DateTime.Today, 6) { Weigth = 6 });

            var lessThanTodayQuery = new ExpressionSpecificationQueryStrategy<MySimpleAccount>(p => p.DOB < DateTime.Today);
            repository.GetEntities<MySimpleAccount>(lessThanTodayQuery).Count().ShouldEqual(3);

            var result3 = repository.ModifyAll<MySimpleAccount>(
                    lessThanTodayQuery,
                    new MongoUpdateItem<MySimpleAccount>(p => p.DOB, DateTime.Today),
                    new MongoUpdateItem<MySimpleAccount>(p => p.Weigth, 100));

            result3.DocumentsAffected.ShouldEqual(3);

            repository.GetEntities<MySimpleAccount>(lessThanTodayQuery).Count().ShouldEqual(0);
            repository.GetEntities<MySimpleAccount>(p => p.DOB == DateTime.Today).Count().ShouldEqual(6);
            repository.GetEntities<MySimpleAccount>(p => p.Weigth == 100).Count().ShouldEqual(3);
        }