/**
  * Test inflating/defalting object
  *
  * @since 1.1.0
  *
  * @group price_object
  * @group price
  * @group edd_price
  */
 function testInflationDefaltion()
 {
     $data = ingot_test_data_price::edd_tests(10);
     $bandit = new \ingot\testing\bandit\price($data['group_ID']);
     $variant_id = $bandit->choose();
     $args = ['ID' => $variant_id, 'expires' => 167234];
     $obj = new \ingot\testing\object\price\test($args);
     $as_json = wp_json_encode($obj);
     $this->assertEquals(wp_json_encode($args), $as_json);
     $inflated = \ingot\testing\utility\price::inflate_price_test($as_json);
     $this->assertSame($obj->ID, $inflated->ID);
     $this->assertSame($obj->variant, $inflated->variant);
 }
 /**
  * Test contents of price cookie
  *
  * @since 1.1.0
  *
  * @group cookie
  * @group price_cookie
  * @group price
  *
  * @covers \ingot\testing\cookies\price()
  */
 public function testCookieSetup()
 {
     $group_1 = ingot_test_data_price::edd_tests(10);
     $group_2 = ingot_test_data_price::edd_tests(15);
     $cookie_class = new \ingot\testing\cookies\price([]);
     $price_cookie = $cookie_class->get_cookie();
     $this->assertArrayHasKey('edd', $price_cookie);
     $this->assertFalse(empty($price_cookie['edd']));
     $this->assertInternalType('array', $price_cookie['edd']);
     $product_1 = \ingot\testing\utility\price::get_product_ID($group_1['group_ID']);
     $product_2 = \ingot\testing\utility\price::get_product_ID($group_2['group_ID']);
     $this->assertArrayHasKey($product_1, $price_cookie['edd']);
     $this->assertArrayHasKey($product_2, $price_cookie['edd']);
     $this->assertSame(2, count($price_cookie['edd']));
     foreach ($price_cookie['edd'] as $content) {
         $content = \ingot\testing\utility\price::inflate_price_test($content);
         $this->assertInternalType('object', $content);
         foreach (['plugin', 'ID', 'variant', 'expires', 'price', 'product'] as $key) {
             $this->assertObjectHasAttribute($key, $content);
         }
         $this->assertInternalType('object', $content->product);
     }
 }
Beispiel #3
0
 /**
  * @param $products
  */
 private function set_products($products)
 {
     foreach ($products as $id => $test) {
         if (is_string($test)) {
             $test = json_decode($test, true);
         }
         if (is_array($test)) {
             $test = \ingot\testing\utility\price::inflate_price_test($test);
             $this->products[$id] = $test;
         }
     }
 }