addsummaryrow.test.php

来自「一款可以和GOOGLE媲美的开源统计系统,运用AJAX.功能强大. 无色提示:」· PHP 代码 · 共 142 行

PHP
142
字号
<?phpif(!defined("PATH_TEST_TO_ROOT")) {	define('PATH_TEST_TO_ROOT', '../../../..');}if(!defined('CONFIG_TEST_INCLUDED')){	require_once "../../../../tests/config_test.php";}require_once 'DataTable.php';class Test_Piwik_DataTable_Filter_AddSummaryRow extends UnitTestCase{		public function test_offsetIsCount_summaryRowShouldBeTheRow()	{		$table = $this->getDataTableCount5();		$filter = new Piwik_DataTable_Filter_AddSummaryRow($table, 5);		$this->assertEqual($table->getRowsCount(), 5);		$this->assertTrue(Piwik_DataTable_Row::isEqual($table->getLastRow(), $this->getRow4()));	}		public function test_offsetIsLessThanCount_SummaryRowShouldBeTheSum()	{		$table = $this->getDataTableCount5();		$filter = new Piwik_DataTable_Filter_AddSummaryRow($table, 2);		$this->assertEqual($table->getRowsCount(), 3);		$expectedRow = new Piwik_DataTable_Row(array( Piwik_DataTable_Row::COLUMNS => array('label'=>Piwik_DataTable::LABEL_SUMMARY_ROW, 'nb' => 111)));		$this->assertTrue(Piwik_DataTable_Row::isEqual($table->getLastRow(), $expectedRow));	}		public function test_offsetIsMoreThanCount_shouldNotAddSummaryRow()	{		$table = $this->getDataTableCount5();		$filter = new Piwik_DataTable_Filter_AddSummaryRow($table, 6);		$this->assertEqual($table->getRowsCount(), 5);		$this->assertTrue(Piwik_DataTable_Row::isEqual($table->getLastRow(), $this->getRow4()));	}		public function test_whenThereIsAlreadyASummaryRow_shouldReplaceTheSummaryRow()	{		$table = $this->getDataTableCount5();		$filter1 = new Piwik_DataTable_Filter_AddSummaryRow($table, 3);		$filter2 = new Piwik_DataTable_Filter_AddSummaryRow($table, 2);		$this->assertEqual($table->getRowsCount(), 3);		$expectedRow = new Piwik_DataTable_Row(array( Piwik_DataTable_Row::COLUMNS => array('label'=>Piwik_DataTable::LABEL_SUMMARY_ROW, 'nb' => 111)));		$this->assertTrue(Piwik_DataTable_Row::isEqual($table->getLastRow(), $expectedRow));	}		public function test_sumTablesWithSummaryRow_shouldSumTheSummaryRow()	{		// row0, row1, row2, rowSummary1		$table1 = $this->getDataTableCount5();		$filter = new Piwik_DataTable_Filter_AddSummaryRow($table1, 3);				// row0, row1, rowSummary2		$table2 = $this->getDataTableCount5();		$filter = new Piwik_DataTable_Filter_AddSummaryRow($table2, 2);				// we expect row0+row0, row1+row1, row2, rowSummary1+rowSummary2		$expectedTable = new Piwik_DataTable;		$expectedTable->addRow( new Piwik_DataTable_Row(array( Piwik_DataTable_Row::COLUMNS => array('label'=>'amazon', 'nb' => 20000) )));		$expectedTable->addRow( new Piwik_DataTable_Row(array( Piwik_DataTable_Row::COLUMNS => array('label'=>'yahoo', 'nb' => 2000) )));		$expectedTable->addRow( new Piwik_DataTable_Row(array( Piwik_DataTable_Row::COLUMNS => array('label'=>'piwik', 'nb' => 100) )));		$expectedTable->addRow( new Piwik_DataTable_Row(array( Piwik_DataTable_Row::COLUMNS => array('label'=>Piwik_DataTable::LABEL_SUMMARY_ROW, 'nb' => 122) )));				$table1->addDataTable($table2);		$this->assertTrue(Piwik_DataTable::isEqual($expectedTable, $table1));	}		public function test_addOneTableWithSummaryRow()	{		// row0, row1, row2, rowSummary1		$table1 = $this->getDataTableCount5();		$filter = new Piwik_DataTable_Filter_AddSummaryRow($table1, 3);				// row0, row1, row2, row3, row4		$table2 = $this->getDataTableCount5();				// we expect row0+row0, row1+row1, row2+row2, row3, row4, rowSummary1		$expectedTable = new Piwik_DataTable;		$expectedTable->addRow( new Piwik_DataTable_Row(array( Piwik_DataTable_Row::COLUMNS => array('label'=>'amazon', 'nb' => 20000) )));		$expectedTable->addRow( new Piwik_DataTable_Row(array( Piwik_DataTable_Row::COLUMNS => array('label'=>'yahoo', 'nb' => 2000) )));		$expectedTable->addRow( new Piwik_DataTable_Row(array( Piwik_DataTable_Row::COLUMNS => array('label'=>'piwik', 'nb' => 200) )));		$expectedTable->addRow( $this->getRow3());		$expectedTable->addRow( $this->getRow4());		$expectedTable->addRow( new Piwik_DataTable_Row(array( Piwik_DataTable_Row::COLUMNS => array('label'=>Piwik_DataTable::LABEL_SUMMARY_ROW, 'nb' => 11))));				$table1->addDataTable($table2);		$this->assertTrue(Piwik_DataTable::isEqual($expectedTable, $table1));			}		public function test_whenRowsInRandomOrderButSortSpecified_shouldComputeSummaryRowAfterSort()	{		$table = new Piwik_DataTable;		$table->addRow( $this->getRow3() );		$table->addRow( $this->getRow2() );		$table->addRow( $this->getRow4() );		$table->addRow( $this->getRow1() );		$table->addRow( $this->getRow0() );				$filter = new Piwik_DataTable_Filter_AddSummaryRow($table, 2, Piwik_DataTable::LABEL_SUMMARY_ROW, $columnToSortBy = 'nb');		$this->assertEqual($table->getRowsCount(), 3);		$expectedRow = new Piwik_DataTable_Row(array( Piwik_DataTable_Row::COLUMNS => array('label'=>Piwik_DataTable::LABEL_SUMMARY_ROW, 'nb' => 111)));		$this->assertTrue(Piwik_DataTable_Row::isEqual($table->getLastRow(), $expectedRow));	}		/**	 * Returns table used for the tests	 *	 * @return Piwik_DataTable	 */	protected function getDataTableCount5()	{		$table = new Piwik_DataTable;		$table->addRow( $this->getRow0() );		$table->addRow( $this->getRow1() );		$table->addRow( $this->getRow2() );		$table->addRow( $this->getRow3() );		$table->addRow( $this->getRow4() );	  	return $table;	}	protected function getRow0()	{		return new Piwik_DataTable_Row(array( Piwik_DataTable_Row::COLUMNS => array('label'=>'amazon', 'nb' => 10000)));	}	protected function getRow1()	{		return new Piwik_DataTable_Row(array( Piwik_DataTable_Row::COLUMNS => array('label'=>'yahoo', 'nb' => 1000)));	}	protected function getRow2()	{		return new Piwik_DataTable_Row(array( Piwik_DataTable_Row::COLUMNS => array('label'=>'piwik', 'nb' => 100)));	}	protected function getRow3()	{		return new Piwik_DataTable_Row(array( Piwik_DataTable_Row::COLUMNS => array('label'=>'ask', 'nb' => 10)));	}	protected function getRow4()	{		return new Piwik_DataTable_Row(array( Piwik_DataTable_Row::COLUMNS => array('label'=>'google', 'nb' => 1)));	}}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?