Пример #1
0
 public function testGetCorrectDefinitionAfterDefinitionDeleted()
 {
     $req = new Test_DataModel_Requirement();
     $oDef1 = $req->getDefinition();
     DataModel_Definitions::destroy();
     $req2 = new Test_DataModel_Requirement();
     $oDef2 = $req2->getDefinition();
     $this->assertNotSame($oDef1, $oDef2);
 }
Пример #2
0
function defineDatastoreTestModels()
{
    DataModel_Definitions::destroy();
    $oMeta = DataModel_Definitions::get('Test_Customer');
    $oMeta->addField('customerId')->asMandatory();
    $oMeta->addField('customerFirstName');
    $oMeta->addField('customerSurname');
    $oMeta->addField('customerAddress1');
    $oMeta->addField('customerAddress2');
    $oMeta->addField('customerCounty');
    $oMeta->addField('customerCity');
    $oMeta->addField('customerCountry');
    $oMeta->addField('customerPostcode');
    $oMeta->addField('customerEmailAddress');
    $oMeta->setPrimaryKey('customerId');
    $oMeta->addView('name')->withField('customerId')->withField('customerFirstName')->withField('customerSurname');
    /*
            $oMeta = DataModel_Definitions::get('Test_PremiumCustomer');
            $oMeta->inheritsFrom('customer');
            $oMeta->addField('customerTerms');
    */
    $oMeta = DataModel_Definitions::get('Test_Order');
    $oMeta->addField('masterCustomerId');
    $oMeta->addField('giftCustomerId');
    $oMeta->addField('orderId');
    $oMeta->addField('orderStatus');
    $oMeta->addField('orderTotal');
    $oMeta->addField('orderPostage');
    $oMeta->addField('orderStatusChange');
    $oMeta->addField('dateCreated');
    $oMeta->setPrimaryKey('orderId');
    $oMeta->hasOne('customer')->ourFieldIs('masterCustomerId')->theirModelIs('Test_Customer')->theirFieldIs('customerId');
    $oMeta->hasOne('giftRecipient')->ourFieldIs('giftCustomerId')->theirModelIs('Test_Customer')->theirFieldIs('customerId');
    $oMeta->hasMany('lineItems')->ourFieldIs('orderId')->theirModelIs('Test_OrderContent')->theirFieldIs('masterOrderId');
    $oMeta = DataModel_Definitions::get('Test_OrderContent');
    $oMeta->addField('uid');
    $oMeta->addField('masterOrderId');
    $oMeta->addField('pid');
    $oMeta->addField('quantity');
    $oMeta->addField('cost');
    $oMeta->setPrimaryKey('uid');
    $oMeta->hasOne('order')->ourFieldIs('masterOrderId')->theirModelIs('Test_Order')->theirFieldIs('orderId');
    $oMeta->hasOne('product')->ourFieldIs('pid')->theirModelIs('Test_Product')->theirFieldIs('pid');
    $oMeta = DataModel_Definitions::get('Test_Product');
    $oMeta->addField('pid');
    $oMeta->addField('productName');
    $oMeta->addField('productSummary');
    $oMeta->addField('productUrl');
    $oMeta->addField('productCode');
    $oMeta->addField('productCost');
    $oMeta->addField('isActive');
    $oMeta->setPrimaryKey('pid');
    $oMeta->hasMany('tags')->ourFieldIs('pid')->theirModelIs('Test_Product_Tag')->theirFieldIs('productId');
    $oMeta->hasMany('relatedProducts')->foundVia('Test_RelatedProducts', 'relatedProducts')->ourFieldIs('pid')->theirFieldIs('productId1');
    $oDef = DataModel_Definitions::get('Test_RelatedProducts');
    $oDef->addField('productId1');
    $oDef->addField('productId2');
    $oDef->addField('uid');
    $oDef->setPrimaryKey('uid');
    $oDef->hasMany('relatedProducts')->ourFieldIs('productId2')->theirModelIs('Test_Product')->theirFieldIs('pid');
    $oDef = DataModel_Definitions::get('Test_Product_Tag');
    $oDef->addField('productId');
    $oDef->addField('tagName');
    $oDef->setPrimaryKey(array('productId', 'tagName'));
    $oDef = DataModel_Definitions::get('Test_Product_Annotated_Tag');
    $oDef->inherits('Test_Product_Tag');
    $oDef->addField('tagAnnotation');
}