You are here

protected function CommerceReportsSalesTestCase::_test in Commerce Reporting 7.3

3 calls to CommerceReportsSalesTestCase::_test()
CommerceReportsSalesTestCase::testMultipleOrders in tests/commerce_reports.test
CommerceReportsSalesTestCase::testNoOrders in tests/commerce_reports.test
CommerceReportsSalesTestCase::testSingleOrder in tests/commerce_reports.test

File

tests/commerce_reports.test, line 363
Unit tests for the commerce reports module.

Class

CommerceReportsSalesTestCase

Code

protected function _test() {
  $sales = array();
  foreach ($this->orders as $order) {
    $created = $order['commerce_order']->created;
    if (empty($sales[$created])) {
      $sales[$created] = array(
        'orders' => 0,
        'revenue' => 0,
      );
    }
    $sales[$created]['orders']++;
    foreach ($order['products'] as $product_id => $quantity) {
      $sales[$created]['revenue'] += $quantity * $this->products[$product_id]->commerce_price['und'][0]['amount'];
    }
  }
  $report = views_get_view_result('commerce_reports_sales', 'page');
  foreach ($report as $line) {
    $created = $line->commerce_order_created_granularity;
    if (empty($sales[$created])) {
      $this
        ->assertTrue(empty($line->order_id) && empty($line->commerce_order_total) && empty($line->commerce_order_total_1), t('There was no unintented activity.'));
    }
    else {
      $orders = $sales[$created]['orders'];
      $revenue = $sales[$created]['revenue'];
      $average = (int) floor($revenue / $orders);
      $this
        ->assertEqual($line->order_id, $orders, t('The right amount of orders was reported.'));
      $this
        ->assertEqual($line->field_data_commerce_order_total_commerce_order_total_amount, $revenue, t('The right amount of revenue was reported.'));
      $this
        ->assertEqual((int) floor($line->field_data_commerce_order_total_commerce_order_total_amount_1), $average, t('The right average of revenue was reported.'));
    }
  }
}