예제 #1
0
 public function updateInstall(Install $originalInstall, Install $newInstall)
 {
     $fields = array_diff_assoc($newInstall->dump(), $originalInstall->dump());
     $fields['id'] = $originalInstall->getId();
     $query = sprintf(static::UPDATE_PATCH, $this->buildSet($fields));
     $this->query->write($query, $fields);
 }
예제 #2
0
 public function updateInstall(Install $originalInstall, Install $newInstall)
 {
     $table = $originalInstall->getTable();
     $filepath = $this->loadFilepath($table);
     $encoded = json_encode($newInstall->dump(), JSON_PRETTY_PRINT);
     $this->filesystem->delete($filepath);
     $this->filesystem->write($filepath, $encoded);
 }
예제 #3
0
 /**
  * Will return all patches that are greater than the applied install provided.
  *
  * @param Install $originalInstall
  * @return \Closure
  */
 public function findAfterInstall(Install $originalInstall)
 {
     return function (Patch $patch) use($originalInstall) {
         $patchNumber = $patch->getPatch();
         $installPatchNumber = $originalInstall->getPatch();
         if ($installPatchNumber == 0) {
             return $patchNumber >= $installPatchNumber;
         } else {
             return $patchNumber > $installPatchNumber;
         }
     };
 }
예제 #4
0
 public function testGets()
 {
     $raw = ['table' => 'someTable', 'patch' => 'somePatch', 'install' => 'someInstall'];
     $install = new Install($raw);
     $this->assertEquals(null, $install->getId());
     $this->assertEquals(1234, $install->getId(1234));
     $this->assertEquals($raw['table'], $install->getTable());
     $this->assertEquals($raw['patch'], $install->getPatch());
     $this->assertEquals($raw['install'], $install->getInstall());
     $this->assertEquals($raw, $install->dump());
 }