Merge branch 'master' into organization-access

This commit is contained in:
Almira Krdzic
2018-10-15 00:25:11 +02:00
11 changed files with 352 additions and 7 deletions

View File

@@ -0,0 +1,120 @@
<?php
class Wiaas__Package_Status_Test extends Wiaas_Unit_Test_Case {
/**
* @covers Wiaas_Package_Status::register_package_status_taxonomy()
* @covers Wiaas_Package_Status::get_available_package_statuses()
*/
function test_register_package_status_taxonomy() {
$taxonomy = get_taxonomy('package_status');
$this->assertInstanceOf(WP_Taxonomy::class, $taxonomy);
$package_statuses = Wiaas_Package_Status::get_available_package_statuses();
$this->assertNotEmpty($package_statuses);
$this->assertContains(Wiaas_Package_Status::AVAILABLE, $package_statuses);
}
/**
* @covers Wiaas_Package_Type::set_package_status()
* @covers Wiaas_Package_Type::get_package_status()
*/
function test_adding_package_status() {
$package = $this->create_new_package();
Wiaas_Package_Status::set_package_status($package->get_id(), Wiaas_Package_Status::AVAILABLE);
$package_status = Wiaas_Package_Status::get_package_status($package->get_id());
$this->assertNotNull($package_status);
$this->assertEquals($package_status, Wiaas_Package_Status::AVAILABLE);
}
/**
* Test package status update on simple product price update
*/
function test_package_status_update_on_simple_product_price_update() {
$product1 = $this->create_new_product(20);
$this->add_product_category($product1, 'hardware');
$product2 = $this->create_new_product(20);
$this->add_product_category($product2, 'software');
$package = $this->create_new_package();
$this->add_products_to_package($package, array( $product1, $product2));
$pricing_rules = array(
'purchase' => array(
'minimal_fixed_price' => 100,
'principal_amount' => 0,
'minimal_services_price' => 0
),
'purchase_24' => array(
'minimal_fixed_price' => 100,
'principal_amount' => 0,
'minimal_services_price' => 100
),
'managed_36' => array(
'minimal_fixed_price' => 100,
'principal_amount' => 100,
'minimal_services_price' => 100
)
);
$commision = 50;
$cost_margin = 100;
Wiaas_Package_Pricing::set_package_prices($package, $pricing_rules, $commision, $cost_margin);
$this->assertEquals(Wiaas_Package_Status::get_package_status($package)->get_id(), Wiaas_Package_Status::AVAILABLE);
$product1->set_price(1000);
$this->assertEquals(Wiaas_Package_Status::get_package_status($package)->get_id(), Wiaas_Package_Status::MARGIN_EXCEEDED);
}
/**
* Test package status update on cost margin update
*/
function test_package_status_update_on_margin_cost_update() {
$product1 = $this->create_new_product(20);
$this->add_product_category($product1, 'hardware');
$product2 = $this->create_new_product(20);
$this->add_product_category($product2, 'software');
$package = $this->create_new_package();
$this->add_products_to_package($package, array( $product1, $product2));
$pricing_rules = array(
'purchase' => array(
'minimal_fixed_price' => 100,
'principal_amount' => 0,
'minimal_services_price' => 0
),
'purchase_24' => array(
'minimal_fixed_price' => 100,
'principal_amount' => 0,
'minimal_services_price' => 100
),
'managed_36' => array(
'minimal_fixed_price' => 100,
'principal_amount' => 100,
'minimal_services_price' => 100
)
);
$commision = 50;
$cost_margin = 0;
Wiaas_Package_Pricing::set_package_prices($package, $pricing_rules, $commision, $cost_margin);
$this->assertEquals(Wiaas_Package_Status::get_package_status($package)->get_id(), Wiaas_Package_Status::AVAILABLE);
$cost_margin = 1;
Wiaas_Package_Pricing::set_package_prices($package, $pricing_rules, $commision, $cost_margin);
$this->assertEquals(Wiaas_Package_Status::get_package_status($package)->get_id(), Wiaas_Package_Status::MARGIN_EXCEEDED);
}
}

View File

@@ -29,8 +29,9 @@ class Wiaas_Package_Pricing_Test extends Wiaas_Unit_Test_Case {
);
$commision = 60;
$cost_margin = 0;
Wiaas_Package_Pricing::set_package_prices($package, $pricing_rules, $commision);
Wiaas_Package_Pricing::set_package_prices($package, $pricing_rules, $commision, $cost_margin);
$configured_prices = Wiaas_Package_Pricing::get_package_prices($package);

View File

@@ -31,7 +31,8 @@ class Wiaas_Pricing_Test extends Wiaas_Unit_Test_Case {
)
);
$commision = 50;
Wiaas_Package_Pricing::set_package_prices($package, $pricing_rules, $commision);
$cost_margin = 0;
Wiaas_Package_Pricing::set_package_prices($package, $pricing_rules, $commision, $cost_margin);
$expected_prices = array(
'purchase' => array(
@@ -229,7 +230,8 @@ class Wiaas_Pricing_Test extends Wiaas_Unit_Test_Case {
)
);
$commision = 50;
Wiaas_Package_Pricing::set_package_prices($addon_package, $pricing_rules, $commision);
$cost_margin = 0;
Wiaas_Package_Pricing::set_package_prices($addon_package, $pricing_rules, $commision, $cost_margin);
Wiaas_Package_Addon::set_package_addons($package, array($addon_package->get_id()));
@@ -306,7 +308,8 @@ class Wiaas_Pricing_Test extends Wiaas_Unit_Test_Case {
)
);
$commision = 50;
Wiaas_Package_Pricing::set_package_prices($option_package, $pricing_rules, $commision);
$cost_margin = 0;
Wiaas_Package_Pricing::set_package_prices($option_package, $pricing_rules, $commision, $cost_margin);
Wiaas_Package_Option_Groups::set_package_option_groups($package, array(
'id' => 'option',