コード例 #1
0
        public void SortByClientDesc()
        {
            var clientId  = Guid.NewGuid();
            var invoiceId = Guid.NewGuid();

            InsertAdditionalClientAndInvoice(clientId, invoiceId);

            var repo     = new Core.Data.Persistor.Invoice();
            var criteria = new Core.Data.Search.InvoiceCriteria
            {
                UserId         = _userId,
                HasBalanceOnly = false,
                SortBy         = Core.Data.Search.InvoiceCriteria.SortFields.Client,
                SortOrder      = Core.Data.SortDirection.DESC
            };

            var coll = repo.Search(criteria).ToList();

            Assert.Equal(9, coll.Count);
            Assert.True(coll[0].Client.CompanyName == "Company_client-company3");
            Assert.True(coll[1].Client.CompanyName == "Company_client-company");
            Assert.True(coll[2].Client.CompanyName == "Company_client-company");
            Assert.True(coll[3].Client.CompanyName == "Company_client-company");
            Assert.True(coll[4].Client.CompanyName == "Company_client-company");
            Assert.True(coll[5].Client.CompanyName == "Company_client-company");
            Assert.True(coll[6].Client.CompanyName == "Company_client-company");
            Assert.True(coll[7].Client.CompanyName == "Company_client-company");
            Assert.True(coll[8].Client.CompanyName == "Company_client-company");
        }
コード例 #2
0
        public void ByUserAndHasBalanceOnly()
        {
            var repo     = new Core.Data.Persistor.Invoice();
            var criteria = new Core.Data.Search.InvoiceCriteria {
                UserId = _userId
            };

            var coll = repo.Search(criteria).ToList();

            Assert.Equal(4, coll.Count);
        }
コード例 #3
0
        public void ByUserClientAndNumber()
        {
            var repo     = new Core.Data.Persistor.Invoice();
            var criteria = new Core.Data.Search.InvoiceCriteria
            {
                UserId         = _userId,
                HasBalanceOnly = false,
                Number         = "INV_0001"
            };

            var coll = repo.Search(criteria).ToList();

            Assert.Equal(1, coll.Count);
            Assert.NotNull(coll.Find(i => i.Number == "INV_0001"));
        }
コード例 #4
0
        public void ByUserAndVoidedDateRange()
        {
            var repo     = new Core.Data.Persistor.Invoice();
            var criteria = new Core.Data.Search.InvoiceCriteria
            {
                UserId          = _userId,
                HasBalanceOnly  = false,
                Voided          = true,
                VoidedDateRange = { From = DateTime.Parse("10/16/2015"), To = DateTime.Parse("10/17/2015") }
            };

            var coll = repo.Search(criteria).ToList();

            Assert.Equal(1, coll.Count);
            Assert.NotNull(coll.Find(i => i.Id == Guid.Parse("{2E046739-7C02-4E1D-8FD9-2C3C49F960C2}")));
        }
コード例 #5
0
        public void ByUserAndVoided()
        {
            var repo     = new Core.Data.Persistor.Invoice();
            var criteria = new Core.Data.Search.InvoiceCriteria
            {
                UserId         = _userId,
                HasBalanceOnly = false,
                Voided         = true
            };

            var coll = repo.Search(criteria).ToList();

            Assert.Equal(2, coll.Count);
            Assert.NotNull(coll.Find(i => i.Id == Guid.Parse("{2E046739-7C02-4E1D-8FD9-2C3C49F960C2}")));
            Assert.NotNull(coll.Find(i => i.Id == Guid.Parse("{97DB6BD9-E314-4463-BBF8-BCCB9C56F903}")));
        }
コード例 #6
0
        public void ByUserAndClient()
        {
            var clientId  = Guid.NewGuid();
            var invoiceId = Guid.NewGuid();

            InsertAdditionalClientAndInvoice(clientId, invoiceId);

            var repo = new Core.Data.Persistor.Invoice();

            var criteria = new Core.Data.Search.InvoiceCriteria {
                UserId = _userId, HasBalanceOnly = false, ClientId = clientId
            };
            var coll = repo.Search(criteria).ToList();

            Assert.Equal(1, coll.Count);
            Assert.NotNull(coll.Find(i => i.Id == invoiceId));
        }
コード例 #7
0
        public void ByUserAndInvoiceDateRange()
        {
            var repo     = new Core.Data.Persistor.Invoice();
            var criteria = new Core.Data.Search.InvoiceCriteria
            {
                UserId           = _userId,
                HasBalanceOnly   = false,
                InvoiceDateRange = { From = DateTime.Parse("10/25/2015"), To = DateTime.Parse("11/2/2015") }
            };

            var coll = repo.Search(criteria).ToList();

            Assert.Equal(3, coll.Count);
            Assert.NotNull(coll.Find(i => i.Id == Guid.Parse("{05CCDE2B-2637-4DFC-83DB-D92B3EB145D6}")));
            Assert.NotNull(coll.Find(i => i.Id == Guid.Parse("{6BBE344A-EBF9-404F-9130-C2B6AB23C5E1}")));
            Assert.NotNull(coll.Find(i => i.Id == Guid.Parse("{DE1317C4-0A7E-4E07-98C7-350E6AFD8CF3}")));
        }
コード例 #8
0
        public void ByUserPaged()
        {
            var repo     = new Core.Data.Persistor.Invoice();
            var criteria = new Core.Data.Search.InvoiceCriteria
            {
                UserId         = _userId,
                HasBalanceOnly = false,
                PageSize       = 4,
                Page           = 2
            };

            var coll = repo.Search(criteria).ToList();

            Assert.Equal(4, coll.Count);
            Assert.NotNull(coll.Find(c => c.Number == "INV_0005"));
            Assert.NotNull(coll.Find(c => c.Number == "INV_0006"));
            Assert.NotNull(coll.Find(c => c.Number == "INV_0007"));
            Assert.NotNull(coll.Find(c => c.Number == "INV_0008"));
        }
コード例 #9
0
        public void SortByDataDesc()
        {
            var repo     = new Core.Data.Persistor.Invoice();
            var criteria = new Core.Data.Search.InvoiceCriteria
            {
                UserId         = _userId,
                HasBalanceOnly = false,
                SortBy         = Core.Data.Search.InvoiceCriteria.SortFields.Date,
                SortOrder      = Core.Data.SortDirection.DESC
            };

            var coll = repo.Search(criteria).ToList();

            Assert.Equal(8, coll.Count);
            Assert.True(coll[0].Date == DateTime.Parse("11/15/2015"));
            Assert.True(coll[1].Date == DateTime.Parse("11/10/2015"));
            Assert.True(coll[2].Date == DateTime.Parse("11/5/2015"));
            Assert.True(coll[3].Date == DateTime.Parse("11/1/2015"));
            Assert.True(coll[4].Date == DateTime.Parse("10/30/2015"));
            Assert.True(coll[5].Date == DateTime.Parse("10/25/2015"));
            Assert.True(coll[6].Date == DateTime.Parse("10/20/2015"));
            Assert.True(coll[7].Date == DateTime.Parse("10/15/2015"));
        }
コード例 #10
0
        public void SortByNumberDesc()
        {
            var repo     = new Core.Data.Persistor.Invoice();
            var criteria = new Core.Data.Search.InvoiceCriteria
            {
                UserId         = _userId,
                HasBalanceOnly = false,
                SortBy         = Core.Data.Search.InvoiceCriteria.SortFields.Number,
                SortOrder      = Core.Data.SortDirection.DESC
            };

            var coll = repo.Search(criteria).ToList();

            Assert.Equal(8, coll.Count);
            Assert.True(coll[0].Number == "INV_0008");
            Assert.True(coll[1].Number == "INV_0007");
            Assert.True(coll[2].Number == "INV_0006");
            Assert.True(coll[3].Number == "INV_0005");
            Assert.True(coll[4].Number == "INV_0004");
            Assert.True(coll[5].Number == "INV_0003");
            Assert.True(coll[6].Number == "INV_0002");
            Assert.True(coll[7].Number == "INV_0001");
        }
コード例 #11
0
        public void Successful()
        {
            // data
            var invoiceId1 = new Guid();
            var invoiceId2 = new Guid();
            var criteria   = new Core.Data.Search.InvoiceCriteria()
            {
                UserId = Guid.NewGuid()
            };

            var invoices = new List <Core.Data.Model.Invoice>
            {
                new Core.Data.Model.Invoice {
                    Id = invoiceId1
                },
                new Core.Data.Model.Invoice {
                    Id = invoiceId2
                }
            };

            // mocks
            var invoicePersistor = Mocks.StrictMock <Core.Data.Persistor.Invoice>();
            var bll = Mocks.StrictMock <Core.Logic.InvoiceLogic>(invoicePersistor, null, null);

            bll.Expect(b => b.Search(criteria)).CallOriginalMethod(OriginalCallOptions.NoExpectation);
            bll.Expect(b => b.VaildateCriteria(criteria));
            invoicePersistor.Expect(d => d.Search(criteria)).Return(invoices.AsQueryable());

            // record
            Mocks.ReplayAll();

            var results = bll.Search(criteria);

            Assert.NotEmpty(results);
            Assert.NotNull(results.FirstOrDefault(s => s.Id == invoiceId1));
            Assert.NotNull(results.FirstOrDefault(s => s.Id == invoiceId2));
        }
コード例 #12
0
        public IQueryable <Core.Data.Model.Invoice> Search([FromBody] Core.Data.Search.InvoiceCriteria criteria)
        {
            criteria.UserId = UserId;

            return(Logic.Search(criteria));
        }