private function _parseCommonData($postArr) { $import = new CustomImport(); if (isset($postArr['txtFieldName']) && !empty($postArr['txtFieldName'])) { $import->setName(trim($postArr['txtFieldName'])); } if (isset($postArr['cmbAssignedFields']) && is_array($postArr['cmbAssignedFields'])) { $import->setAssignedFields($postArr['cmbAssignedFields']); } if (isset($postArr['containsHeader']) && !empty($postArr['containsHeader'])) { $containsHeader = true; } else { $containsHeader = false; } $import->setContainsHeader($containsHeader); return $import; }
/** * Test case for save() method for existing custom import definition */ public function testSaveUpdate() { $countBefore = $this->_count(); // save with duplicate name should throw exception $import = new CustomImport(); // we set id = 2, so save should update the record with id=2 $import->setId(2); $import->setName("Import 1"); $import->setAssignedFields(array("empId", "street1", "gender", "firstName", "lastName")); try { $import->save(); $this->fail("Exception should be thrown on duplicate name"); } catch (CustomImportException $e) { $this->assertEquals(CustomImportException::DUPLICATE_IMPORT_NAME, $e->getCode()); } // save with empty fields should throw exception $import->setName("New Import 1"); $import->setAssignedFields(array()); try { $import->save(); $this->fail("Exception should be thrown on empty assigned fields"); } catch (CustomImportException $e) { $this->assertEquals(CustomImportException::NO_ASSIGNED_FIELDS, $e->getCode()); } $import->setName("New Import 1"); $import->setAssignedFields(null); try { $import->save(); $this->fail("Exception should be thrown on empty assigned fields"); } catch (CustomImportException $e) { $this->assertEquals(CustomImportException::NO_ASSIGNED_FIELDS, $e->getCode()); } // save with field not in field list should throw exception $import->setName("New Import 1"); $import->setAssignedFields(array("firstName", "lastName", "EmployeeId")); try { $import->save(); $this->fail("Exception should be thrown on invalid field"); } catch (CustomImportException $e) { $this->assertEquals(CustomImportException::INVALID_FIELD_NAME, $e->getCode()); } // save with compulsary field missing should throw exception. $import->setName("New Import 1"); $import->setAssignedFields(array("firstName", "empId")); try { $import->save(); $this->fail("Exception should be thrown when compulsary field is missing"); } catch (CustomImportException $e) { $this->assertEquals(CustomImportException::COMPULSARY_FIELDS_NOT_ASSIGNED, $e->getCode()); } // valid save, verify data saved $import->setName("New Import 1"); $import->setAssignedFields(array("empId", "street1", "firstName", "lastName", "gender")); $import->setContainsHeader(true); $import->save(); $id = $import->getId(); // verify id not changed $this->assertTrue(!empty($id)); $this->assertEquals(2, $id); // verify saved $name = $import->getName(); $fields = implode(",", $import->getAssignedFields()); $hasHeader = CustomImport::HAS_HEADING; $countAfter = $this->_count(); $this->assertEquals($countAfter, $countBefore); $count = $this->_count("import_id={$id} AND name='{$name}' AND fields='{$fields}' AND has_heading='{$hasHeader}'"); $this->assertEquals(1, $count, "Not Updated"); // Save without changing anything $import->save(); $id = $import->getId(); // verify id not changed $this->assertTrue(!empty($id)); $this->assertEquals(2, $id); $countAfter = $this->_count(); $this->assertEquals($countAfter, $countBefore); $count = $this->_count("import_id={$id} AND name='{$name}' AND fields='{$fields}' AND has_heading='{$hasHeader}'"); $this->assertEquals(1, $count, "Not Updated"); }
/** * Creates a CustomImport object from a resultset row * * @param array $row Resultset row from the database. * @return CustomImport Custom Import object. */ private static function _createFromRow($row) { $tmp = new CustomImport(); $tmp->setId($row[self::DB_FIELDS_ID]); $tmp->setName($row[self::DB_FIELDS_NAME]); $assignedFields = $row[self::DB_FIELDS_FIELDS]; if (!empty($assignedFields)) { $tmp->setAssignedFields(explode(",", $assignedFields)); } else { $tmp->setAssignedFields(array()); } $hasHeader = $row[self::DB_FIELDS_HAS_HEADING] == self::HAS_HEADING ? true : false; $tmp->setContainsHeader($hasHeader); return $tmp; }