コード例 #1
0
        public async Task WebApiQueryProviderTest3()
        {
            var serviceProvider = Substitute.For <IServiceProvider>();
            var repository      = Substitute.For <GenericRepository <Account> >();

            repository.RetrieveMultiple(Arg.Any <string>()).Returns(Task.FromResult(new List <Account>()));
            serviceProvider.GetService(Arg.Any <Type>()).Returns(repository);

            var provider = new WebApiQueryProvider(serviceProvider);
            var query    = new Query <Account>(provider).Where(p => p.StateCode == account_statecode.Active).Select(p => new { Id = p.Id, CreatedBy = p.CreatedBy }).ToList();

            await repository.Received().RetrieveMultiple($"{Account.CollectionName}?$select=accountid,_createdby_value&$filter=(statecode eq 0)");
        }
コード例 #2
0
        public async Task WebApiQueryProviderOrderByDescendingTest2bis()
        {
            var serviceProvider = Substitute.For <IServiceProvider>();
            var repository      = Substitute.For <GenericRepository <Account> >();

            repository.RetrieveMultiple(Arg.Any <string>()).Returns(Task.FromResult(new List <Account>()));
            serviceProvider.GetService(Arg.Any <Type>()).Returns(repository);

            var provider = new WebApiQueryProvider(serviceProvider);
            var query    = new Query <Account>(provider).Where(p => p.StateCode == account_statecode.Active).OrderByDescending(p => new { p.Address1_City, p.Name }).ToList();

            await repository.Received().RetrieveMultiple($"{Account.CollectionName}?$orderby=address1_city desc, name desc&$filter=(statecode eq 0)");
        }
コード例 #3
0
        public async Task WebApiQueryProviderTest1()
        {
            var serviceProvider = Substitute.For <IServiceProvider>();
            var repository      = Substitute.For <GenericRepository <Account> >();

            repository.RetrieveMultiple(Arg.Any <string>()).Returns(Task.FromResult(new List <Account>()));
            serviceProvider.GetService(Arg.Any <Type>()).Returns(repository);

            var provider = new WebApiQueryProvider(serviceProvider);
            var query    = new Query <Account>(provider).ToList();

            await repository.Received().RetrieveMultiple(Account.CollectionName);
        }
        public async Task WebApiQueryProviderOrderByTest1bis()
        {
            var serviceProvider = Substitute.For <IServiceProvider>();
            var repository      = Substitute.For <GenericRepository <Account> >();

            repository.RetrieveMultiple(Arg.Any <string>()).Returns(Task.FromResult(new List <Account>()));
            serviceProvider.GetService(Arg.Any <Type>()).Returns(repository);

            var provider = new WebApiQueryProvider(serviceProvider);
            var query    = new Query <Account>(provider).OrderBy(p => new { p.Address1_City, p.Name }).ToList();

            await repository.Received().RetrieveMultiple($"{Account.CollectionName}?$orderby=address1_city asc, name asc");
        }
コード例 #5
0
        public async Task WebApiQueryProviderOrderByDescendingTest4()
        {
            var serviceProvider = Substitute.For <IServiceProvider>();
            var repository      = Substitute.For <GenericRepository <Account> >();

            repository.RetrieveMultiple(Arg.Any <string>()).Returns(Task.FromResult(new List <Account>()));
            serviceProvider.GetService(Arg.Any <Type>()).Returns(repository);

            var provider = new WebApiQueryProvider(serviceProvider);
            var query    = new Query <Account>(provider).Where(p => p.StateCode == account_statecode.Active).Select(p => new Account {
                Id = p.Id, CustomerTypeCode = p.CustomerTypeCode
            }).OrderByDescending(p => p.Name).ToList();

            await repository.Received().RetrieveMultiple($"{Account.CollectionName}?$orderby=name desc&$select=accountid,customertypecode&$filter=(statecode eq 0)");
        }
コード例 #6
0
        public async Task WebApiQueryProviderTest6()
        {
            var serviceProvider = Substitute.For <IServiceProvider>();
            var repository      = Substitute.For <GenericRepository <Account> >();

            repository.RetrieveMultiple(Arg.Any <string>()).Returns(Task.FromResult(new List <Account>()));
            serviceProvider.GetService(Arg.Any <Type>()).Returns(repository);

            var provider = new WebApiQueryProvider(serviceProvider);
            var query    =
                new Query <Account>(provider)
                .Where(p => p.Name == "John" || p.Name == "Doe")
                .Where(p => p.StateCode == account_statecode.Active)
                .Select(p => new { Id = p.Id, CustomerTypeCode = p.CustomerTypeCode, ExchangeRate = p.ExchangeRate })
                .ToList();

            await repository.Received().RetrieveMultiple($"{Account.CollectionName}?$select=accountid,customertypecode,exchangerate&$filter=(name eq 'John' or name eq 'Doe') and (statecode eq 0)");
        }
コード例 #7
0
        public async Task WebApiQueryProviderTest7()
        {
            var serviceProvider = Substitute.For <IServiceProvider>();
            var repository      = Substitute.For <GenericRepository <CustomerAddress> >();

            serviceProvider.GetService(Arg.Any <Type>()).Returns(repository);

            repository.RetrieveMultiple(Arg.Any <string>()).Returns(Task.FromResult(new List <CustomerAddress>()));

            var guid = Guid.NewGuid();

            var provider = new WebApiQueryProvider(serviceProvider);
            var query    =
                new Query <CustomerAddress>(provider)
                .Where(p => p.ParentId == new Account(guid).ToNavigationProperty())
                .Select(p => new { Id = p.Id, ParentId = p.ParentId, ExchangeRate = p.ExchangeRate })
                .ToList();

            await repository.Received().RetrieveMultiple($"{CustomerAddress.CollectionName}?$select=customeraddressid,_parentid_value,exchangerate&$filter=(_parentid_value eq '{guid}')");
        }
        public async Task MockWebApiQueryProviderStartWithTest2()
        {
            var serviceProvider = Substitute.For <IServiceProvider>();
            var repository      = Substitute.For <GenericRepository <CustomerAddress> >();

            serviceProvider.GetService(Arg.Any <Type>()).Returns(repository);

            repository.RetrieveMultiple(Arg.Any <string>()).Returns(Task.FromResult(new List <CustomerAddress>()));

            var guid = Guid.NewGuid();

            var provider = new WebApiQueryProvider(serviceProvider);
            var query    =
                new Query <Contact>(provider)
                .Where(p => p.FirstName == "John" && p.LastName.StartsWith("Doe"))
                .Select(p => new { Id = p.Id })
                .ToList();

            await repository.Received().RetrieveMultiple($"{Contact.CollectionName}?$select=contactid&$filter=(firstname eq 'John' and startswith(lastname,'Doe'))");
        }
コード例 #9
0
 public WebApiContext(IHttpClientFactory httpClientFactory, IServiceProvider serviceProvider)
 {
     _queryProvider     = new WebApiQueryProvider(serviceProvider);
     _genericRepository = new GenericRepository(httpClientFactory);
 }