Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
7.58% covered (danger)
7.58%
5 / 66
50.00% covered (danger)
50.00%
2 / 4
CRAP
0.00% covered (danger)
0.00%
0 / 1
pphpbb_tests_tree_nestedset_forum_test
7.58% covered (danger)
7.58%
5 / 66
50.00% covered (danger)
50.00%
2 / 4
16.63
0.00% covered (danger)
0.00%
0 / 1
 forum_constructor_data
0.00% covered (danger)
0.00%
0 / 15
0.00% covered (danger)
0.00%
0 / 1
2
 test_forum_constructor
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
1 / 1
1
 get_sql_where_data
0.00% covered (danger)
0.00%
0 / 46
0.00% covered (danger)
0.00%
0 / 1
2
 test_get_sql_where
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2/**
3*
4* This file is part of the phpBB Forum Software package.
5*
6* @copyright (c) phpBB Limited <https://www.phpbb.com>
7* @license GNU General Public License, version 2 (GPL-2.0)
8*
9* For full copyright and license information, please see
10* the docs/CREDITS.txt file.
11*
12*/
13
14require_once __DIR__ . '/nestedset_forum_base.php';
15
16class pphpbb_tests_tree_nestedset_forum_test extends phpbb_tests_tree_nestedset_forum_base
17{
18    public static function forum_constructor_data()
19    {
20        return array(
21            array(array(
22                array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 6),
23                array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 2, 'right_id' => 3),
24                array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 4, 'right_id' => 5),
25
26                array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 7, 'right_id' => 12),
27                array('forum_id' => 5, 'parent_id' => 4, 'left_id' => 8, 'right_id' => 11),
28                array('forum_id' => 6, 'parent_id' => 5, 'left_id' => 9, 'right_id' => 10),
29
30                array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 13, 'right_id' => 22),
31                array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 14, 'right_id' => 15),
32                array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 16, 'right_id' => 19),
33                array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 17, 'right_id' => 18),
34                array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 20, 'right_id' => 21),
35            )),
36        );
37    }
38
39    /**
40    * @dataProvider forum_constructor_data
41    */
42    public function test_forum_constructor($expected)
43    {
44        $result = $this->db->sql_query('SELECT forum_id, parent_id, left_id, right_id
45            FROM phpbb_forums
46            ORDER BY left_id, forum_id ASC');
47        $this->assertEquals($expected, $this->db->sql_fetchrowset($result));
48    }
49
50    public static function get_sql_where_data()
51    {
52        return array(
53            array('SELECT forum_id
54                FROM phpbb_forums
55                %s
56                ORDER BY forum_id ASC',
57                'WHERE', '', array(
58                array('forum_id' => 1),
59                array('forum_id' => 2),
60                array('forum_id' => 3),
61
62                array('forum_id' => 4),
63                array('forum_id' => 5),
64                array('forum_id' => 6),
65
66                array('forum_id' => 7),
67                array('forum_id' => 8),
68                array('forum_id' => 9),
69                array('forum_id' => 10),
70                array('forum_id' => 11),
71            )),
72            array('SELECT f.forum_id
73                FROM phpbb_forums f
74                %s
75                ORDER BY f.forum_id ASC',
76                'WHERE', 'f.', array(
77                array('forum_id' => 1),
78                array('forum_id' => 2),
79                array('forum_id' => 3),
80
81                array('forum_id' => 4),
82                array('forum_id' => 5),
83                array('forum_id' => 6),
84
85                array('forum_id' => 7),
86                array('forum_id' => 8),
87                array('forum_id' => 9),
88                array('forum_id' => 10),
89                array('forum_id' => 11),
90            )),
91            array('SELECT forum_id
92                FROM phpbb_forums
93                WHERE forum_id < 4 %s
94                ORDER BY forum_id ASC',
95                'AND', '', array(
96                array('forum_id' => 1),
97                array('forum_id' => 2),
98                array('forum_id' => 3),
99            )),
100            array('SELECT f.forum_id
101                FROM phpbb_forums f
102                WHERE f.forum_id < 4 %s
103                ORDER BY f.forum_id ASC',
104                'AND', 'f.', array(
105                array('forum_id' => 1),
106                array('forum_id' => 2),
107                array('forum_id' => 3),
108            )),
109        );
110    }
111
112    /**
113    * @dataProvider get_sql_where_data
114    */
115    public function test_get_sql_where($sql_query, $operator, $column_prefix, $expected)
116    {
117        $result = $this->db->sql_query(sprintf($sql_query, $this->set->get_sql_where($operator, $column_prefix)));
118        $this->assertEquals($expected, $this->db->sql_fetchrowset($result));
119    }
120}