public function testDeleteBobsPackage()
 {
     $_SERVER['SERVER_NAME'] = 'bob.localhost.com';
     $count = Version::count();
     $p = Package::find_by_name('bobs_other_package');
     $v = Version::find('first', array('package_id' => $p->id, 'version' => '0.0.1'));
     $this->delete('delete', array(), array('id' => $v->package_id, 'version' => $v->id), array('user' => User::find_by_username('bob')->id));
     $this->assertEquals($count - 1, Version::count(array('cache' => false)));
     $this->assertFalse(Version::exists('id', $v->id));
     $this->assertRedirect(url_for('PackageController', 'show', $p->id));
 }
 public function testDeleteBobsPackage()
 {
     $_SERVER['SERVER_NAME'] = 'bob.localhost.com';
     $count = Package::count();
     $v_count = Version::count();
     $p = Package::find_by_name('bobs_other_package');
     $versions = $p->count('versions');
     $this->delete('delete', array(), array('id' => $p->id), array('user' => User::find_by_username('bob')->id));
     $this->assertEquals($count - 1, Package::count(array('cache' => false)));
     $this->assertEquals($v_count - $versions, Version::count(array('cache' => false)));
     $this->assertRedirect('/');
 }
 public function package_maintainers()
 {
     $this->package = Package::find_by_name($_GET['name']);
     $data = unserialize(Version::find('first', array('conditions' => array('package_id' => $this->package->id)))->meta);
     $this->maintainers = array();
     foreach (array('lead', 'developer', 'contributor', 'helper') as $role) {
         if (isset($data[$role]) && !empty($data[$role])) {
             if (!is_assoc($data[$role])) {
                 foreach ($data[$role] as $node) {
                     $node['role'] = $role;
                     $this->maintainers[] = $node;
                 }
             } else {
                 $data[$role]['role'] = $role;
                 $this->maintainers[] = $data[$role];
             }
         }
     }
 }
 public function package_maintainers()
 {
     $this->package = Package::find_by_name($_GET['name']);
     $date = DateHelper::from_db($this->package->updated_at);
     $date = date(DATE_RFC822, $date);
     $this->header("Last-Modified: {$date}");
     $data = unserialize(Version::find('first', array('conditions' => array('package_id' => $this->package->id)))->meta);
     $this->maintainers = array();
     foreach (array('lead', 'developer', 'contributor', 'helper') as $role) {
         if (isset($data[$role]) && !empty($data[$role])) {
             if (!is_assoc($data[$role])) {
                 foreach ($data[$role] as $node) {
                     $node['role'] = $role;
                     $this->maintainers[] = $node;
                 }
             } else {
                 $data[$role]['role'] = $role;
                 $this->maintainers[] = $data[$role];
             }
         }
     }
 }
 /**
  * @expectedException NimbleRecordException
  */
 public function testBobTriesToRatePackageThatsRaitedByBob()
 {
     $p = Package::find_by_name('bobs_other_package');
     $user = $p->user;
     PackageRating::create(array('user_id' => $user->id, 'package_id' => $p->id, 'rating' => 0.1));
 }