}
// Stocks
try {
    $stock1 = new rtShopStock();
    $stock1->setProductId($prod1->getId());
    $stock1->setQuantity(5);
    $stock1->setSku(mt_rand(1, 100000));
    $stock1->setPriceRetail(40);
    $stock1->save();
    $stock2 = new rtShopStock();
    $stock2->setProductId($prod2->getId());
    $stock2->setQuantity(5);
    $stock2->setSku(mt_rand(1, 100000));
    $stock2->setPriceRetail(40);
    $stock2->setPricePromotion(30);
    $stock2->save();
} catch (Exception $e) {
    throw new sfException('Stocks could not be added! Please check.');
}
// Stock to variation
try {
    $stock1tovar1 = new rtShopStockToVariation();
    $stock1tovar1->setStockId($stock1->getId());
    $stock1tovar1->setVariationId($var1->getId());
    $stock1tovar1->save();
    $stock1tovar2 = new rtShopStockToVariation();
    $stock1tovar2->setStockId($stock1->getId());
    $stock1tovar2->setVariationId($var2->getId());
    $stock1tovar2->save();
    $stock2tovar1 = new rtShopStockToVariation();
    $stock2tovar1->setStockId($stock2->getId());
if (sfConfig::has('app_rt_shop_shipping_charges')) {
    sfConfig::set('app_rt_shop_shipping_charges', array());
}
$t->diag('-----------------------------------------------------------------------------');
$t->diag('0. Check toolkit class');
$t->diag('-----------------------------------------------------------------------------');
$o1 = new rtShopStockTestTools();
$t->isa_ok($o1, 'rtShopStockTestTools', '->class() rtShopStockTestTools object is available');
// Clean up
unset($o1);
$t->diag('-----------------------------------------------------------------------------');
$t->diag('1. Empty save shouldn\'t fail');
$t->diag('-----------------------------------------------------------------------------');
try {
    $i1 = new rtShopStock();
    $i1->save();
    $t->pass('->save() rtShopStock allows empty saves');
    $i1->delete();
} catch (Exception $e) {
    $t->fail('->save() throws an Exception!');
}
// Clean up
unset($i1);
// Fixtures path
$fixtures_path = sfConfig::get('sf_plugins_dir') . '/rtShopPlugin/test/fixtures';
// Check that fixtures direcory abvailable
if (is_dir($fixtures_path)) {
    try {
        rtShopStockTestTools::clean();
        Doctrine_Core::loadData($fixtures_path);
        $t->pass('->loadData() of fixtures worked');
    $stock5->setPricePromotion(30);
    $stock5->save();
    $stock6 = new rtShopStock();
    $stock6->setProductId($prod6->getId());
    $stock6->setQuantity(5);
    $stock6->setSku(mt_rand(1, 100000));
    $stock6->setPriceRetail(40);
    $stock6->setPricePromotion(30);
    $stock6->save();
    $stock7 = new rtShopStock();
    $stock7->setProductId($prod7->getId());
    $stock7->setQuantity(5);
    $stock7->setSku(mt_rand(1, 100000));
    $stock7->setPriceRetail(40);
    $stock7->setPricePromotion(38);
    $stock7->save();
} catch (Exception $e) {
    throw new sfException('Stocks could not be added! Please check.');
}
try {
    $stock1tovar1 = new rtShopStockToVariation();
    $stock1tovar1->setStockId($stock1->getId());
    $stock1tovar1->setVariationId($var1->getId());
    $stock1tovar1->save();
    $stock1tovar2 = new rtShopStockToVariation();
    $stock1tovar2->setStockId($stock1->getId());
    $stock1tovar2->setVariationId($var2->getId());
    $stock1tovar2->save();
    $stock2tovar1 = new rtShopStockToVariation();
    $stock2tovar1->setStockId($stock2->getId());
    $stock2tovar1->setVariationId($var1->getId());
    $stock1->setSku(mt_rand(1, 100000));
    $stock1->setPriceRetail(40);
    $stock1->save();
    $stock2 = new rtShopStock();
    $stock2->setProductId($prod2->getId());
    $stock2->setQuantity(5);
    $stock2->setSku(mt_rand(1, 100000));
    $stock2->setPriceRetail(40);
    $stock2->setPricePromotion(30);
    $stock2->save();
    $stock3 = new rtShopStock();
    $stock3->setProductId($prod3->getId());
    $stock3->setQuantity(5);
    $stock3->setSku(mt_rand(1, 100000));
    $stock3->setPriceRetail(40);
    $stock3->save();
} catch (Exception $e) {
    throw new sfException('Stocks could not be added! Please check.');
}
try {
    $stock1tovar1 = new rtShopStockToVariation();
    $stock1tovar1->setStockId($stock1->getId());
    $stock1tovar1->setVariationId($var1->getId());
    $stock1tovar1->save();
    $stock1tovar2 = new rtShopStockToVariation();
    $stock1tovar2->setStockId($stock1->getId());
    $stock1tovar2->setVariationId($var2->getId());
    $stock1tovar2->save();
    $stock2tovar1 = new rtShopStockToVariation();
    $stock2tovar1->setStockId($stock2->getId());
    $stock2tovar1->setVariationId($var1->getId());