@@ -63,7 +63,7 @@ public function test_delete_rules_permissions() {
63
63
}
64
64
65
65
/**
66
- * Test can get total .
66
+ * Test exception thrown on deleting invalid rule .
67
67
*/
68
68
public function test_exception_delete_rules_when_one_is_invalid () {
69
69
$ this ->resetAfterTest ();
@@ -79,7 +79,7 @@ public function test_exception_delete_rules_when_one_is_invalid() {
79
79
}
80
80
81
81
/**
82
- * Test can get total .
82
+ * Test rules are not deleted if one is invalid .
83
83
*/
84
84
public function test_delete_rules_keep_rules_when_one_is_invalid () {
85
85
$ this ->resetAfterTest ();
@@ -93,9 +93,6 @@ public function test_delete_rules_keep_rules_when_one_is_invalid() {
93
93
94
94
$ this ->assertCount (2 , rule::get_records ());
95
95
96
- $ this ->expectException (\required_capability_exception::class);
97
- $ this ->expectExceptionMessage ('Rule does not exist. ID: 777 ' );
98
-
99
96
try {
100
97
rules::delete_rules ([$ rule1 ->get ('id ' ), $ rule2 ->get ('id ' ), 777 ]);
101
98
} catch (\invalid_parameter_exception $ exception ) {
@@ -106,4 +103,69 @@ public function test_delete_rules_keep_rules_when_one_is_invalid() {
106
103
$ this ->assertCount (2 , rule::get_records ());
107
104
}
108
105
}
106
+
107
+ /**
108
+ * Test exception if rule is not exist.
109
+ */
110
+ public function test_toggle_status_exception_on_invalid_rule () {
111
+ $ this ->resetAfterTest ();
112
+
113
+ $ this ->setAdminUser ();
114
+ $ this ->expectException (\invalid_parameter_exception::class);
115
+ $ this ->expectExceptionMessage ('Rule does not exist. ID: 777 ' );
116
+
117
+ rules::toggle_status (777 );
118
+ }
119
+
120
+ /**
121
+ * Test required permissions.
122
+ */
123
+ public function test_toggle_status_permissions () {
124
+ $ this ->resetAfterTest ();
125
+ $ user = $ this ->getDataGenerator ()->create_user ();
126
+ $ this ->setUser ($ user );
127
+
128
+ $ this ->expectException (\required_capability_exception::class);
129
+ $ this ->expectExceptionMessage ('Sorry, but you do not currently have permissions to do that (Manage rules). ' );
130
+
131
+ rules::toggle_status (777 );
132
+ }
133
+
134
+ /**
135
+ * Test exception is thrown trying to toggle a broken rule
136
+ */
137
+ public function test_exception_toggle_status_on_broken_rule () {
138
+ $ this ->resetAfterTest ();
139
+ $ this ->setAdminUser ();
140
+
141
+ $ rule = new rule (0 , (object )['name ' => 'Test rule 1 ' ]);
142
+ $ rule ->set ('broken ' , 1 );
143
+ $ rule ->save ();
144
+
145
+ $ this ->expectException (\invalid_parameter_exception::class);
146
+ $ this ->expectExceptionMessage ('A broken rule can \'t be enabled ID: ' . $ rule ->get ('id ' ));
147
+
148
+ rules::toggle_status ($ rule ->get ('id ' ));
149
+ }
150
+
151
+ /**
152
+ * Test toggling status on rule.
153
+ */
154
+ public function test_toggle_status_on_rule () {
155
+ $ this ->resetAfterTest ();
156
+ $ this ->setAdminUser ();
157
+
158
+ $ rule = new rule (0 , (object )['name ' => 'Test rule 1 ' ]);
159
+ $ rule ->save ();
160
+
161
+ $ this ->assertFalse ($ rule ->is_enabled ());
162
+
163
+ rules::toggle_status ($ rule ->get ('id ' ));
164
+ $ rule = rule::get_record (['id ' => $ rule ->get ('id ' )]);
165
+ $ this ->assertTrue ($ rule ->is_enabled ());
166
+
167
+ rules::toggle_status ($ rule ->get ('id ' ));
168
+ $ rule = rule::get_record (['id ' => $ rule ->get ('id ' )]);
169
+ $ this ->assertFalse ($ rule ->is_enabled ());
170
+ }
109
171
}
0 commit comments