function test_AggregatorResult_stores_data() { $result = new tx_caretaker_AggregatorResult(123, 2, 2, 1, 3, 5, 'This is a Message'); $this->assertEquals($result->getTimestamp(), 123); $this->assertEquals($result->getState(), 2); $this->assertEquals($result->getStateInfo(), 'ERROR'); $this->assertEquals($result->getMessage()->getText(), 'This is a Message'); $this->assertEquals($result->getNumUNDEFINED(), 2); $this->assertEquals($result->getNumOK(), 1); $this->assertEquals($result->getNumWARNING(), 3); $this->assertEquals($result->getNumERROR(), 5); }
function test_comparisonOfAggreagtorResults() { $result = tx_caretaker_AggregatorResult::create(tx_caretaker_Constants::state_undefined); $compareResult = tx_caretaker_AggregatorResult::create(tx_caretaker_Constants::state_undefined); $this->assertTrue($result->equals($compareResult), 'two empty undefined results should be equal'); $compareResult = tx_caretaker_AggregatorResult::create(tx_caretaker_Constants::state_ok); $this->assertTrue($result->isDifferent($compareResult), 'result with other state is not equal'); $compareResult = tx_caretaker_AggregatorResult::create(tx_caretaker_Constants::state_undefined, 0, 0, 0, 0); $this->assertTrue($result->equals($compareResult), 'result with state undefined and all errorNumbers 0 is equal to empty result'); $compareResult = tx_caretaker_AggregatorResult::create(tx_caretaker_Constants::state_undefined, 1, 0, 0, 0); $this->assertFalse($result->equals($compareResult), 'result with state undefined and but numUndefined = 1 is not equal to empty result'); $compareResult = tx_caretaker_AggregatorResult::create(tx_caretaker_Constants::state_undefined, 0, 1, 0, 0); $this->assertFalse($result->equals($compareResult), 'result with state undefined and but numOK = 1 is not equal to empty result'); $compareResult = tx_caretaker_AggregatorResult::create(tx_caretaker_Constants::state_undefined, 0, 0, 1, 0); $this->assertFalse($result->equals($compareResult), 'result with state undefined and but numWarning = 1 is not equal to empty result'); $compareResult = tx_caretaker_AggregatorResult::create(tx_caretaker_Constants::state_undefined, 0, 0, 0, 1); $this->assertFalse($result->equals($compareResult), 'result with state undefined and but numError = 1 is not equal to empty result'); }
/** * Save Aggregator Result to the DB * * @param tx_caretaker_AggregatorNode $node * @param tx_caretaker_AggregatorResult $aggregator_result * @return integer UID of the new DB result Record */ public function addNodeResult(tx_caretaker_AggregatorNode $node, tx_caretaker_AggregatorResult $aggregator_result) { //add an undefined row to the testresult column $instance = $node->getInstance(); if ($instance) { $instanceUid = $instance->getUid(); } else { $instanceUid = 0; } $values = array('aggregator_uid' => $node->getUid(), 'aggregator_type' => $node->getType(), 'instance_uid' => $instanceUid, 'result_status' => $aggregator_result->getState(), 'tstamp' => $aggregator_result->getTstamp(), 'result_num_undefined' => $aggregator_result->getNumUNDEFINED(), 'result_num_ok' => $aggregator_result->getNumOK(), 'result_num_warnig' => $aggregator_result->getNumWARNING(), 'result_num_error' => $aggregator_result->getNumERROR(), 'result_msg' => $aggregator_result->getMessage()->getText(), 'result_values' => serialize($aggregator_result->getMessage()->getValues()), 'result_submessages' => serialize($aggregator_result->getSubMessages())); $GLOBALS['TYPO3_DB']->exec_INSERTquery('tx_caretaker_aggregatorresult', $values); return $GLOBALS['TYPO3_DB']->sql_insert_id(); }
/** * Aggregate Child-Testresults * * @param array<tx_caretaker_NodeResult> $test_results Child-Results to aggregate * @return tx_caretaker_AggregatorResult Aggregated State */ protected function getAggregatedResult($test_results) { $num_tests = count($test_results); $num_undefined = 0; $num_ok = 0; $num_warnings = 0; $num_errors = 0; $num_due = 0; $num_ack = 0; $childnode_titles_undefined = array(); $childnode_titles_ok = array(); $childnode_titles_warning = array(); $childnode_titles_error = array(); $childnode_titles_ack = array(); $childnode_titles_due = array(); if (is_array($test_results)) { foreach ($test_results as $test_result) { /** @var tx_caretaker_NodeResult $result */ $result = $test_result['result']; /** @var tx_caretaker_AbstractNode $node */ $node = $test_result['node']; switch ($result->getState()) { default: case tx_caretaker_Constants::state_undefined: $num_undefined++; $childnode_titles_undefined[] = $node->getTitle(); break; case tx_caretaker_Constants::state_ack: $num_ack++; $num_undefined++; $childnode_titles_ack[] = $node->getTitle(); break; case tx_caretaker_Constants::state_due: $num_due++; $num_undefined++; $childnode_titles_due[] = $node->getTitle(); break; case tx_caretaker_Constants::state_ok: $num_ok++; $childnode_titles_ok[] = $node->getTitle(); break; case tx_caretaker_Constants::state_warning: $num_warnings++; $childnode_titles_warning[] = $node->getTitle(); break; case tx_caretaker_Constants::state_error: $num_errors++; $childnode_titles_error[] = $node->getTitle(); break; } } } $values = array('num_tests' => $num_tests, 'num_ok' => $num_ok, 'num_warning' => $num_warnings, 'num_error' => $num_errors, 'num_undefined' => $num_undefined, 'num_ack' => $num_undefined, 'num_due' => $num_undefined); $message = new tx_caretaker_ResultMessage('LLL:EXT:caretaker/locallang_fe.xml:aggregator_result_message', $values); // create Submessages $submessages = array(); if ($num_errors > 0) { foreach ($childnode_titles_error as $childTitle) { $submessages[] = new tx_caretaker_ResultMessage('LLL:EXT:caretaker/locallang_fe.xml:aggregator_result_submessage_error', array('title' => $childTitle)); } } if ($num_warnings > 0) { foreach ($childnode_titles_warning as $childTitle) { $submessages[] = new tx_caretaker_ResultMessage('LLL:EXT:caretaker/locallang_fe.xml:aggregator_result_submessage_warning', array('title' => $childTitle)); } } if ($num_undefined > 0) { foreach ($childnode_titles_undefined as $childTitle) { $submessages[] = new tx_caretaker_ResultMessage('LLL:EXT:caretaker/locallang_fe.xml:aggregator_result_submessage_undefined', array('title' => $childTitle)); } } if ($num_ack > 0) { foreach ($childnode_titles_ack as $childTitle) { $submessages[] = new tx_caretaker_ResultMessage('LLL:EXT:caretaker/locallang_fe.xml:aggregator_result_submessage_ack', array('title' => $childTitle)); } } if ($num_due > 0) { foreach ($childnode_titles_due as $childTitle) { $submessages[] = new tx_caretaker_ResultMessage('LLL:EXT:caretaker/locallang_fe.xml:aggregator_result_submessage_due', array('title' => $childTitle)); } } if ($num_errors > 0) { return tx_caretaker_AggregatorResult::create(tx_caretaker_Constants::state_error, $num_undefined, $num_ok, $num_warnings, $num_errors, $message, $submessages); } else { if ($num_warnings > 0) { return tx_caretaker_AggregatorResult::create(tx_caretaker_Constants::state_warning, $num_undefined, $num_ok, $num_warnings, $num_errors, $message, $submessages); } else { if ($num_undefined == $num_tests) { return tx_caretaker_AggregatorResult::create(tx_caretaker_Constants::state_undefined, $num_undefined, $num_ok, $num_warnings, $num_errors, $message, $submessages); } else { return tx_caretaker_AggregatorResult::create(tx_caretaker_Constants::state_ok, $num_undefined, $num_ok, $num_warnings, $num_errors, $message, $submessages); } } } }