/**
  * Test CRM_Sepa_BAO_SEPAMandate::add()
  *
  * @author niko bochan
  */
 public function testCreateUsingBAO()
 {
     // create a new contact
     $contactId = $this->individualCreate();
     // create a recurring contribution
     $txmd5 = md5(date("YmdHis" . rand(1, 100)));
     $txref = "SDD-TEST-RCUR-" . $txmd5;
     $cparams = array('contact_id' => $contactId, 'frequency_interval' => '1', 'frequency_unit' => 'month', 'amount' => 123.42, 'contribution_status_id' => 1, 'start_date' => date("Ymd") . "000000", 'currency' => "EUR", 'trxn_id' => $txref);
     $contrib = $this->callAPISuccess("contribution_recur", "create", $cparams);
     $contrib = $contrib["values"][$contrib["id"]];
     // mandate parameters array
     $params = array();
     $params['status'] = "FRST";
     $params['is_enabled'] = 1;
     $params['version'] = 3;
     $params['debug'] = 1;
     $params['contact_id'] = $contactId;
     $params['source'] = "TestSource";
     $params['entity_table'] = "civicrm_contribution_recur";
     $params['entity_id'] = $contrib;
     $params['creation_date'] = "20140722092142";
     $params['validation_date'] = "20140722092142";
     $params['date'] = "20140722092142";
     $params['iban'] = "BE68844010370034";
     $params['bic'] = "TESTTEST";
     $params['type'] = "RCUR";
     $params['creditor_id'] = $this->getCreditor();
     $dao = CRM_Sepa_BAO_SEPAMandate::add($params);
     // close the mandate
     CRM_Sepa_BAO_SEPAMandate::terminateMandate($dao->id, date("Y-m-d"), "Test");
     // get the mandate via API and test it against the parameters array
     $mdtest = $this->callAPISuccess("SepaMandate", "get", array("entity_id" => $dao->id));
     $mdtest = $mdtest["values"][$mdtest["id"]];
     foreach ($params as $key => $value) {
         $this->assertEquals($params[$key], $value);
     }
 }