Exemple #1
0
        public void DeleteSuccess()
        {
            var model = TestModelFactory.GetModel();

            ZaabeeMongoClient.Add(model);
            Assert.Equal(1L, ZaabeeMongoClient.Delete(model));
        }
Exemple #2
0
        public async Task DeleteSuccessAsync()
        {
            var model = TestModelFactory.GetModel();
            await ZaabeeMongoClient.AddAsync(model);

            Assert.Equal(1L, await ZaabeeMongoClient.DeleteAsync(model));
        }
Exemple #3
0
        private static void Main(string[] args)
        {
            var configBuilder = new ConfigurationBuilder()
                                .SetBasePath(Directory.GetCurrentDirectory())
                                .AddJsonFile("RabbitMQ.json", true, true)
                                .AddJsonFile("MongoDb.json", true, true)
                                .AddJsonFile("Application.json", true, true);
            var config = configBuilder.Build();

            var rabbitMqConfig = config.GetSection("ZaabeeRabbitMQ").Get <MqConfig>();
            var mongoConfig    = config.GetSection("MongoDb").Get <MongoDbConfiger>();

            var applicationConfig = config.GetSection("Application");

            var mongoClient        = new ZaabeeMongoClient(mongoConfig);
            var categoryRepository = new ArticleCategoryRepository(mongoClient);
            var articleRepository  = new ArticleRepository(mongoClient);

            ZaabyServer.GetInstance()
            .UseDDD()
            .UseZaabyServer <IApplicationService>()
            .UseEventBus()
            .AddSingleton <IConfig>(p =>
                                    new Config(applicationConfig))
            .AddSingleton <IZaabeeRabbitMqClient>(p =>
                                                  new ZaabeeRabbitMqClient(rabbitMqConfig, new Serializer()))
            .AddScoped <IIntegrationEventBus, ZaabyEventBus>()
            .AddScoped <ArticleCategoryDomainService>()
            .AddSingleton <IArticleQueryService, ArticleQueryService>()
            .AddSingleton <IArticleRepository>(e => articleRepository)
            .AddSingleton(e => articleRepository)
            .AddSingleton <IArticleCategoryRepository>(e => categoryRepository)
            .AddSingleton <ICategoryQueryService>(e => categoryRepository)
            .Run();
        }
Exemple #4
0
        public void DeleteManySuccess()
        {
            var models = TestModelFactory.GetModels(5);

            ZaabeeMongoClient.AddRange(models);
            var strings = models.Select(p => p.String);

            Assert.Equal(5L, ZaabeeMongoClient.Delete <TestModel>(p => strings.Contains(p.String)));
        }
Exemple #5
0
        public void JoinTest2()
        {
            var query = from a in ZaabeeMongoClient.GetQueryable <TestModel>()
                        from b in ZaabeeMongoClient.GetQueryable <TestModel>()
                        where a.GuidList.Contains(b.Id)
                        select new { a, b };

            Assert.Throws <NotSupportedException>(() => query.ToList());
        }
Exemple #6
0
 public void UpdateManyNull()
 {
     Assert.Throws <ArgumentNullException>("update",
                                           () => ZaabeeMongoClient.Update <TestModel>(null, p => p.DateTime == DateTime.Now));
     Assert.Throws <ArgumentNullException>("where",
                                           () => ZaabeeMongoClient.Update(() => new TestModel {
         DateTime = DateTime.Now
     }, null));
 }
Exemple #7
0
        public async Task DeleteManySuccessAsync()
        {
            var models = TestModelFactory.GetModels(5);
            await ZaabeeMongoClient.AddRangeAsync(models);

            var strings = models.Select(p => p.String);

            Assert.Equal(5L, await ZaabeeMongoClient.DeleteAsync <TestModel>(p => strings.Contains(p.String)));
        }
Exemple #8
0
        public async Task UpdateManyNullAsync()
        {
            await Assert.ThrowsAsync <ArgumentNullException>("update",
                                                             async() => await ZaabeeMongoClient.UpdateAsync <TestModel>(null, p => p.DateTime == DateTime.Now));

            await Assert.ThrowsAsync <ArgumentNullException>("where",
                                                             async() => await ZaabeeMongoClient.UpdateAsync(() => new TestModel {
                DateTime = DateTime.Now
            }, null));
        }
Exemple #9
0
        public async Task AddAsync()
        {
            var model = TestModelFactory.GetModel();
            await ZaabeeMongoClient.AddAsync(model);

            var result = ZaabeeMongoClient.GetQueryable <TestModel>().FirstOrDefault(p => p.Id == model.Id);

            Assert.NotNull(result);
            Assert.Equal(model.ToJson(), result.ToJson());
        }
Exemple #10
0
        public async Task AddRangeAsync()
        {
            var models = TestModelFactory.GetModels(4).ToList();
            await ZaabeeMongoClient.AddRangeAsync(models);

            var ids     = models.Select(g => g.Id).ToList();
            var results = ZaabeeMongoClient.GetQueryable <TestModel>().Where(p => ids.Contains(p.Id))
                          .ToList();

            Assert.Equal(models.OrderBy(p => p.Id).ToList().ToJson(), results.OrderBy(p => p.Id).ToList().ToJson());
        }
Exemple #11
0
        public void JoinTest1()
        {
            var testModel = TestModelFactory.GetModel();

            ZaabeeMongoClient.Add(testModel);
            var query = from a in ZaabeeMongoClient.GetQueryable <TestModel>()
                        join b in ZaabeeMongoClient.GetQueryable <TestModel>() on a.Id equals b.Id into joinedReadings
                        where a.Id == testModel.Id
                        select new { A = a, B = joinedReadings };

            Assert.Throws <NotSupportedException>(() => query.FirstOrDefault());
        }
Exemple #12
0
        public void UpdateSuccess()
        {
            var model = TestModelFactory.GetModel();

            ZaabeeMongoClient.Add(model);
            model.Int         = 199;
            model.String      = Guid.NewGuid().ToString();
            model.DateTimeUtc = DateTime.UtcNow;
            ZaabeeMongoClient.Update(model);
            var result = ZaabeeMongoClient.GetQueryable <TestModel>().FirstOrDefault(p => p.Id == model.Id);

            Assert.Equal(model.ToJson(), result.ToJson());
        }
Exemple #13
0
        public void UpdateManySuccess()
        {
            var models = TestModelFactory.GetModels(5);

            ZaabeeMongoClient.AddRange(models);
            var strings = models.Select(p => p.String);
            var ids     = models.Select(p => p.Id);
            var now     = DateTime.Now;
            var utcNow  = DateTime.UtcNow;
            var name    = Guid.NewGuid().ToString();
            var kids    = new List <TestModel>
            {
                new TestModel {
                    Id = Guid.NewGuid(), DateTime = DateTime.Now, DateTimeUtc = DateTime.UtcNow
                }
            };
            var modifyQuantity = ZaabeeMongoClient.Update(
                () => new TestModel
            {
                DateTime    = now,
                DateTimeUtc = utcNow,
                String      = name,
                KidList     = kids,
                EnumInt     = EnumInt.Banana
            },
                p => strings.Contains(p.String));

            models.ForEach(model =>
            {
                model.DateTime    = now;
                model.DateTimeUtc = utcNow;
                model.String      = name;
                model.KidList     = kids;
                model.EnumInt     = EnumInt.Banana;
            });

            var results = ZaabeeMongoClient.GetQueryable <TestModel>().Where(p => ids.Contains(p.Id)).ToList();

            Assert.Equal(5L, modifyQuantity);
            Assert.Equal(models.OrderBy(p => p.Id).ToList().ToJson(), results.OrderBy(p => p.Id).ToList().ToJson());
        }
Exemple #14
0
 public async Task DeleteManyNullAsync()
 {
     await Assert.ThrowsAsync <ArgumentNullException>("where",
                                                      async() => await ZaabeeMongoClient.DeleteAsync((Expression <Func <TestModel, bool> >)null));
 }
Exemple #15
0
 public void DeleteNull()
 {
     Assert.Throws <ArgumentNullException>("entity", () => ZaabeeMongoClient.Delete((TestModel)null));
 }
Exemple #16
0
 public void DeleteManyNull()
 {
     Assert.Throws <ArgumentNullException>("where",
                                           () => ZaabeeMongoClient.Delete((Expression <Func <TestModel, bool> >)null));
 }
Exemple #17
0
 public async Task DeleteNullAsync()
 {
     await Assert.ThrowsAsync <ArgumentNullException>("entity",
                                                      async() => await ZaabeeMongoClient.DeleteAsync((TestModel)null));
 }