| 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)),
|