示例#1
0
        public void GetDealsOfDealer_RandomRange_ShouldBeIntegrated()
        {
            //init
            var dealersResult = dealerController.Dealers();
            var givenDealers  = dealersResult.GetObject <PagedResult <Dealer> >().Queryable.ToArray();
            var dealersArb    = ControllerHelper.ChooseFrom(givenDealers).ToArbitrary();

            Prop.ForAll(dealersArb, (dealer) =>
            {
                var deals     = sut.GetDealsOfDealer(dealer.Id, 1, int.MaxValue).Result.GetObject <PagedResult <Deal> >().Queryable.ToList();
                var sales     = sut.GetSalesOfDealer(dealer.Id, 1, int.MaxValue).GetObject <PagedResult <Deal> >().Queryable.ToList();
                var purchases = sut.GetPurchasesOfDealer(dealer.Id, 1, int.MaxValue).GetObject <PagedResult <Deal> >().Queryable.ToList();
                var union     = sales.Union(purchases).ToList();

                foreach (var item in deals)
                {
                    var u = union.Single(i => i.Id == item.Id);


                    Assert.AreEqual(u.SellerId, item.SellerId);
                    Assert.AreEqual(u.BuyerId, item.BuyerId);
                    Assert.AreEqual(u.DealPriceId, item.DealPriceId);
                    Assert.AreEqual(u.DealPaymentId, item.DealPaymentId);
                    Assert.AreEqual(u.DealTime, item.DealTime);
                    union.Remove(u);
                }

                Assert.IsEmpty(union);
            }).QuickCheckThrowOnFailure();
        }
示例#2
0
        public void GetGeneral_InvalidDealerId_ShouldBadRequest()
        {
            //init
            var dealersResult = dealerController.Dealers();
            var givenDealers  = dealersResult.GetObject <PagedResult <Dealer> >().Queryable.Select(i => i.Id).ToList();
            var dealersArb    = Arb.Generate <int>().Where(i => !givenDealers.Contains(i)).ToArbitrary();

            Prop.ForAll(dealersArb, (dealerId) =>
            {
                var result = sut.GetGeneral(dealerId).Result;
                Assert.IsInstanceOf <BadRequestObjectResult>(result);
            }).QuickCheckThrowOnFailure();
        }
示例#3
0
        public void GetSuggestedDealers_RandomNonNullInput_ShouldNotBeEmpty()
        {
            //init
            var dealersResult = sut.Dealers();
            var givenDealers  = dealersResult.GetObject <PagedResult <Dealer> >().Queryable.ToArray();
            var dealersArb    = ControllerHelper.ChooseFrom(givenDealers).Where(i => i.Name != null).ToArbitrary();


            Prop.ForAll(dealersArb, (dealer) =>
            {
                //execution
                var subname = dealer.Name.Substring(0, Gen.Choose(0, dealer.Name.Length).Sample(0, 1).Single());
                var result  = sut.GetSuggestedDealers(subname);
                var dealers = result.GetObject <IEnumerable <Dealer> >().ToList();

                //assertion
                Assert.AreNotEqual(dealers.Count, 0);
            }).QuickCheckThrowOnFailure();
        }
示例#4
0
        public async Task InitializeAsync()
        {
            var db = new DbContextOptionsBuilder <HesabdarContext>()
                     .UseInMemoryDatabase(databaseName: "test", new InMemoryDatabaseRoot());

            context = new HesabdarContext(db.Options);
            context.Database.EnsureCreated();

            materialController = new MaterialController(context);
            dealerController   = new DealerController(context);
            sut = new DealController(context);
            await TestDataGenerator.GenerateSeedMaterialAsync(materialController);

            await TestDataGenerator.GenerateSeedDealersAsync(dealerController);

            var materials = materialController.GetMaterials(1, Int32.MaxValue).GetObject <PagedResult <Material> >().Queryable.ToList();
            var dealers   = dealerController.Dealers(1, Int32.MaxValue).GetObject <PagedResult <Dealer> >().Queryable.ToList();
            await TestDataGenerator.GenerateSeedDealAsync(sut, dealers, materials);
        }