orderRepository = self::getContainer()->get('sylius.repository.order'); $this->vendorRepository = self::getContainer()->get('bitbag.open_marketplace.component.vendor.repository.vendor'); } public function test_it_finds_all_customers_of_vendor(): void { $this->loadFixturesFromFile('OrderRepositoryTest/test_it_finds_all_vendor_orders.yaml'); $vendorOliver = $this->vendorRepository->findOneBy(['slug' => 'oliver-queen-company']); $queryBuilder = $this->orderRepository->findAllByVendorQueryBuilder($vendorOliver); $result = $queryBuilder->getQuery()->getResult(); self::assertCount(1, $result); } public function test_it_finds_order_for_vendor(): void { $this->loadFixturesFromFile('OrderRepositoryTest/test_it_finds_order_for_vendor.yaml'); $vendorOliver = $this->vendorRepository->findOneBy(['slug' => 'oliver-queen-company']); $order = $this->orderRepository->findOneBy(['vendor' => $vendorOliver]); $result = $this->orderRepository->findOrderForVendor($vendorOliver, (string) $order->getId()); self::assertEquals($order->getId(), $result->getId()); } public function test_it_finds_orders_for_vendors_customer(): void { $this->loadFixturesFromFile('OrderRepositoryTest/test_it_finds_orders_for_vendors_customer.yaml'); $vendorOliver = $this->vendorRepository->findOneBy(['slug' => 'oliver-queen-company']); $customer = self::getContainer()->get('sylius.repository.customer')->findOneBy(['email' => 'test2@example.com']); $queryBuilder = $this->orderRepository->findOrdersForVendorByCustomer($vendorOliver, (string) $customer->getId()); $result = $queryBuilder->getQuery()->getResult(); self::assertCount(1, $result); } public function test_it_finds_for_settlement(): void { $this->loadFixturesFromFile('OrderRepositoryTest/test_it_finds_for_settlement.yaml'); $vendorWayne = $this->vendorRepository->findOneBy(['slug' => 'Wayne-Enterprises-Inc']); $vendorWeyland = $this->vendorRepository->findOneBy(['slug' => 'Weyland-Corp']); $channel = self::getContainer()->get('sylius.repository.channel')->findOneBy(['code' => 'US']); $startDate = new \DateTime('last week monday 00:00:00'); $endDate = new \DateTime('last week sunday 23:59:59'); $lastSettlementVendorWeyland = $this->orderRepository->findForSettlementByVendorAndChannelAndDates($vendorWeyland, $channel, $startDate, $endDate); $lastSettlementVendorWayne = $this->orderRepository->findForSettlementByVendorAndChannelAndDates($vendorWayne, $channel, $startDate, $endDate); $this->assertSame($lastSettlementVendorWayne['total'], '1002'); $this->assertSame($lastSettlementVendorWayne['commissionTotal'], '70'); $this->assertNull($lastSettlementVendorWeyland['total']); $this->assertNull($lastSettlementVendorWeyland['commissionTotal']); } public function test_it_counts_order_for_settlement(): void { $this->loadFixturesFromFile('OrderRepositoryTest/test_it_counts_order_for_settlement.yaml'); $settlementRepository = self::getContainer()->get('open_marketplace.repository.settlement'); $settlements = $settlementRepository->findAll(); $this->assertCount(1, $settlements); $this->assertSame( 2, $this->orderRepository->countOrderForSettlement($settlements[0]) ); } public function test_it_create_query_builder_to_find_order_for_settlement(): void { $this->loadFixturesFromFile('OrderRepositoryTest/test_it_create_query_builder_to_find_order_for_settlement.yaml'); $settlementRepository = self::getContainer()->get('open_marketplace.repository.settlement'); $settlements = $settlementRepository->findAll(); $this->assertCount(1, $settlements); $this->assertCount( 2, $this->orderRepository->findForSettlementQueryBuilder($settlements[0])->getQuery()->getResult() ); } }