Eccube\Tests\Web\Admin\Order\EditControllerWithMultipleTest::testOrderProcessingWithTax PHP Method

testOrderProcessingWithTax() public method

受注編集時に、dtb_order.taxの値が正しく保存されているかどうかのテスト
    public function testOrderProcessingWithTax()
    {
        $Shippings = array();
        $Shippings[] = $this->createShipping($this->Product->getProductClasses()->toArray());
        $Shippings[] = $this->createShipping($this->Product->getProductClasses()->toArray());
        $Customer = $this->createCustomer();
        $Order = $this->createOrder($Customer);
        $formData = $this->createFormDataForMultiple($Customer, $Shippings);
        // 管理画面から受注登録
        $this->client->request('POST', $this->app->url('admin_order_edit', array('id' => $Order->getId())), array('order' => $formData, 'mode' => 'register'));
        $this->assertTrue($this->client->getResponse()->isRedirect($this->app->url('admin_order_edit', array('id' => $Order->getId()))));
        $EditedOrder = $this->app['eccube.repository.order']->find($Order->getId());
        $formDataForEdit = $this->createFormDataForEdit($EditedOrder);
        //税金計算
        $totalTax = 0;
        foreach ($formDataForEdit['OrderDetails'] as $indx => $orderDetail) {
            //商品数変更3個追加
            $formDataForEdit['OrderDetails'][$indx]['quantity'] = $orderDetail['quantity'] + 3;
            $tax = (int) $this->app['eccube.service.tax_rule']->calcTax($orderDetail['price'], $orderDetail['tax_rate'], $orderDetail['tax_rule']);
            $totalTax += $tax * $formDataForEdit['OrderDetails'][$indx]['quantity'];
        }
        // 管理画面で受注編集する
        $this->client->request('POST', $this->app->url('admin_order_edit', array('id' => $Order->getId())), array('order' => $formDataForEdit, 'mode' => 'register'));
        $EditedOrderafterEdit = $this->app['eccube.repository.order']->find($Order->getId());
        //確認する「トータル税金」
        $this->expected = $totalTax;
        $this->actual = $EditedOrderafterEdit->getTax();
        $this->verify();
    }