Refactored ConfigFile class so that it is no longer a singleton
[phpmyadmin.git] / test / classes / PMA_Index_test.php
blob2e6af2acacae6521562417acb56f4f5ec2ce21ad
1 <?php
2 /* vim: set expandtab sw=4 ts=4 sts=4: */
3 /**
4 * Test for PMA_Index class
6 * @package PhpMyAdmin-test
7 */
9 /*
10 * Include to test.
12 require_once 'libraries/Index.class.php';
14 /**
15 * Test for PMA_Index class
17 * @package PhpMyAdmin-test
19 class PMA_Index_Test extends PHPUnit_Framework_TestCase
21 private $_params = array();
23 /**
24 * Configures parameters.
26 * @return void
28 public function setup()
30 $this->_params['Schema'] = "PMA_Schema";
31 $this->_params['Table'] = "PMA_Table";
32 $this->_params['Key_name'] = "PMA_Key_name";
33 $this->_params['Index_type'] = "PMA_Index_type";
34 $this->_params['Comment'] = "PMA_Comment";
35 $this->_params['Index_comment'] = "PMA_Index_comment";
36 $this->_params['Non_unique'] = "PMA_Non_unique";
37 $this->_params['Packed'] = "PMA_Packed";
39 //test add columns
40 $column1 = array("Column_name"=>"column1","Seq_in_index"=>"index1",
41 "Collation"=>"Collation1","Cardinality"=>"Cardinality1",
42 "Null"=>"null1"
44 $column2 = array("Column_name"=>"column2","Seq_in_index"=>"index2",
45 "Collation"=>"Collation2","Cardinality"=>"Cardinality2",
46 "Null"=>"null2"
48 $column3 = array("Column_name"=>"column3","Seq_in_index"=>"index3",
49 "Collation"=>"Collation3","Cardinality"=>"Cardinality3",
50 "Null"=>"null3"
52 $this->_params['columns'][] = $column1;
53 $this->_params['columns'][] = $column2;
54 $this->_params['columns'][] = $column3;
57 /**
58 * Test for Constructor
60 * @return void
62 public function testConstructor()
64 $index = new PMA_Index($this->_params);
65 $this->assertEquals(
66 'PMA_Index_comment',
67 $index->getComment()
69 $this->assertEquals(
70 'PMA_Comment',
71 $index->getRemarks()
73 $this->assertEquals(
74 'PMA_Index_type',
75 $index->getType()
77 $this->assertEquals(
78 'PMA_Packed',
79 $index->getPacked()
81 $this->assertEquals(
82 'PMA_Non_unique',
83 $index->getNonUnique()
85 $this->assertContains(
86 'PMA_Comment',
87 $index->getComments()
89 $this->assertContains(
90 'PMA_Index_comment',
91 $index->getComments()
93 $this->assertEquals(
94 'INDEX',
95 $index->getChoice()
101 * Test for getIndexChoices
103 * @return void
105 public function testGetIndexChoices()
107 $index_choices = PMA_Index::getIndexChoices();
108 $this->assertEquals(
110 count($index_choices)
112 $this->assertEquals(
113 'PRIMARY,INDEX,UNIQUE,SPATIAL,FULLTEXT',
114 implode(",", $index_choices)
119 * Test for isUnique
121 * @return void
123 public function testIsUniquer()
125 $this->_params['Non_unique'] = "0";
126 $index = new PMA_Index($this->_params);
127 $this->assertTrue(
128 $index->isUnique()
130 $this->assertEquals(
131 'Yes',
132 $index->isUnique(true)
137 * Test for add Columns
139 * @return void
141 public function testAddColumns()
143 $index = new PMA_Index();
144 $index->addColumns($this->_params['columns']);
145 $this->assertTrue($index->hasColumn("column1"));
146 $this->assertTrue($index->hasColumn("column2"));
147 $this->assertTrue($index->hasColumn("column3"));
148 $this->assertEquals(
150 $index->getColumnCount()
155 * Test for get Name & set Name
157 * @return void
159 public function testName()
161 $index = new PMA_Index();
162 $index->setName('PMA_name');
163 $this->assertEquals(
164 'PMA_name',
165 $index->getName()
170 * Test for PMA_Index_Column
172 * @return void
174 public function testColumns()
176 $index = new PMA_Index();
177 $index->addColumns($this->_params['columns']);
179 $index_columns = $index->getColumns();
180 $index_column = $index_columns['column1'];
181 $this->assertEquals(
182 'column1',
183 $index_column->getName()
185 $this->assertEquals(
186 'index1',
187 $index_column->getSeqInIndex()
189 $this->assertEquals(
190 'Collation1',
191 $index_column->getCollation()
193 $this->assertEquals(
194 'Cardinality1',
195 $index_column->getCardinality()