Línea 24... |
Línea 24... |
24 |
* @copyright 2014 The Open University
|
24 |
* @copyright 2014 The Open University
|
25 |
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
25 |
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
26 |
*/
|
26 |
*/
|
27 |
class datalib_update_with_unique_index_test extends \advanced_testcase {
|
27 |
class datalib_update_with_unique_index_test extends \advanced_testcase {
|
Línea 28... |
Línea 28... |
28 |
|
28 |
|
29 |
public function test_decompose_update_into_safe_changes_identity() {
|
29 |
public function test_decompose_update_into_safe_changes_identity(): void {
|
30 |
$this->assertEquals(array(), decompose_update_into_safe_changes(
|
30 |
$this->assertEquals(array(), decompose_update_into_safe_changes(
|
31 |
array(1 => 1, 2 => 2), -1));
|
31 |
array(1 => 1, 2 => 2), -1));
|
Línea 32... |
Línea 32... |
32 |
}
|
32 |
}
|
33 |
|
33 |
|
34 |
public function test_decompose_update_into_safe_changes_no_overlap() {
|
34 |
public function test_decompose_update_into_safe_changes_no_overlap(): void {
|
35 |
$this->assertEquals(array(array(1, 3), array(2, 4)), decompose_update_into_safe_changes(
|
35 |
$this->assertEquals(array(array(1, 3), array(2, 4)), decompose_update_into_safe_changes(
|
Línea 36... |
Línea 36... |
36 |
array(1 => 3, 2 => 4), -1));
|
36 |
array(1 => 3, 2 => 4), -1));
|
37 |
}
|
37 |
}
|
38 |
|
38 |
|
39 |
public function test_decompose_update_into_safe_changes_shift() {
|
39 |
public function test_decompose_update_into_safe_changes_shift(): void {
|
Línea 40... |
Línea 40... |
40 |
$this->assertSame(array(array(3, 4), array(2, 3), array(1, 2)), decompose_update_into_safe_changes(
|
40 |
$this->assertSame(array(array(3, 4), array(2, 3), array(1, 2)), decompose_update_into_safe_changes(
|
41 |
array(1 => 2, 2 => 3, 3 => 4), -1));
|
41 |
array(1 => 2, 2 => 3, 3 => 4), -1));
|
42 |
}
|
42 |
}
|
43 |
|
43 |
|
Línea 44... |
Línea 44... |
44 |
public function test_decompose_decompose_update_into_safe_changes_simple_swap() {
|
44 |
public function test_decompose_decompose_update_into_safe_changes_simple_swap(): void {
|
45 |
$this->assertEquals(array(array(1, -1), array(2, 1), array(-1, 2)), decompose_update_into_safe_changes(
|
45 |
$this->assertEquals(array(array(1, -1), array(2, 1), array(-1, 2)), decompose_update_into_safe_changes(
|
46 |
array(1 => 2, 2 => 1), -1));
|
46 |
array(1 => 2, 2 => 1), -1));
|
47 |
}
|
47 |
}
|
48 |
|
48 |
|
Línea 49... |
Línea 49... |
49 |
public function test_decompose_update_into_safe_changes_cycle() {
|
49 |
public function test_decompose_update_into_safe_changes_cycle(): void {
|
50 |
$this->assertEquals(array(array(1, -2), array(3, 1), array(2, 3), array(-2, 2)),
|
50 |
$this->assertEquals(array(array(1, -2), array(3, 1), array(2, 3), array(-2, 2)),
|
51 |
decompose_update_into_safe_changes(
|
51 |
decompose_update_into_safe_changes(
|
52 |
array(1 => 2, 2 => 3 , 3 => 1), -2));
|
52 |
array(1 => 2, 2 => 3 , 3 => 1), -2));
|
53 |
}
|
53 |
}
|
54 |
|
54 |
|
Línea 55... |
Línea 55... |
55 |
public function test_decompose_update_into_safe_changes_complex() {
|
55 |
public function test_decompose_update_into_safe_changes_complex(): void {
|
56 |
$this->assertEquals(array(array(9, 10), array(8, 9),
|
56 |
$this->assertEquals(array(array(9, 10), array(8, 9),
|
57 |
array(1, -1), array(5, 1), array(7, 5), array(-1, 7),
|
57 |
array(1, -1), array(5, 1), array(7, 5), array(-1, 7),
|
58 |
array(4, -1), array(6, 4), array(-1, 6)), decompose_update_into_safe_changes(
|
58 |
array(4, -1), array(6, 4), array(-1, 6)), decompose_update_into_safe_changes(
|
59 |
array(1 => 7, 2 => 2, 3 => 3, 4 => 6, 5 => 1, 6 => 4, 7 => 5, 8 => 9, 9 => 10), -1));
|
59 |
array(1 => 7, 2 => 2, 3 => 3, 4 => 6, 5 => 1, 6 => 4, 7 => 5, 8 => 9, 9 => 10), -1));
|
60 |
}
|
60 |
}
|
61 |
|
61 |
|
62 |
public function test_decompose_update_into_safe_changes_unused_value_id_used() {
|
62 |
public function test_decompose_update_into_safe_changes_unused_value_id_used(): void {
|
Línea 63... |
Línea 63... |
63 |
try {
|
63 |
try {
|
64 |
decompose_update_into_safe_changes(array(1 => 1), 1);
|
64 |
decompose_update_into_safe_changes(array(1 => 1), 1);
|
65 |
$this->fail('Expected exception was not thrown');
|
65 |
$this->fail('Expected exception was not thrown');
|
66 |
} catch (\coding_exception $e) {
|
66 |
} catch (\coding_exception $e) {
|
67 |
$this->assertEquals('Supposedly unused value 1 is actually used!', $e->a);
|
67 |
$this->assertEquals('Supposedly unused value 1 is actually used!', $e->a);
|
68 |
}
|
68 |
}
|
69 |
}
|
69 |
}
|
Línea 70... |
Línea 70... |
70 |
|
70 |
|
71 |
public function test_decompose_update_into_safe_changes_string_values() {
|
71 |
public function test_decompose_update_into_safe_changes_string_values(): void {
|
72 |
// Sometimes this happens when data has been loaded from the database.
|
72 |
// Sometimes this happens when data has been loaded from the database.
|
73 |
$this->assertEquals(array(array(1, -1), array(2, 1),
|
73 |
$this->assertEquals(array(array(1, -1), array(2, 1),
|
Línea 74... |
Línea 74... |
74 |
array(3, 2), array(4, 3), array(-1, 4)),
|
74 |
array(3, 2), array(4, 3), array(-1, 4)),
|