@@ -31,6 +31,10 @@ CameraErrorEvent get mockErrorEvent =>
3131DeviceOrientationChangedEvent get mockOrientationEvent =>
3232 const DeviceOrientationChangedEvent (DeviceOrientation .portraitUp);
3333
34+ /// Mock implementation of [CameraPlatform] for testing.
35+ ///
36+ /// This mock platform emits events immediately, simulating real platform behavior
37+ /// when camera initialization and disposal occur.
3438class TestMockCameraPlatform extends Mock
3539 with MockPlatformInterfaceMixin
3640 implements CameraPlatform {
@@ -191,8 +195,12 @@ void main() {
191195 });
192196
193197 test (
194- 'disposed controller should not throw on orientation listener events ' ,
198+ 'should handle orientation events when controller is disposed during initialization ' ,
195199 () async {
200+ /// Tests that async orientation listener events do not cause exceptions
201+ /// when the controller is disposed before initialization completes.
202+ /// This verifies that listeners are properly guarded against updates
203+ /// to disposed controller instances.
196204 const cameraDescription = CameraDescription (
197205 name: 'cam' ,
198206 lensDirection: CameraLensDirection .back,
@@ -216,8 +224,12 @@ void main() {
216224 );
217225
218226 test (
219- 'disposed controller should not throw on error listener events ' ,
227+ 'should handle error events when controller is disposed during initialization ' ,
220228 () async {
229+ /// Tests that async error listener events do not cause exceptions
230+ /// when the controller is disposed before initialization completes.
231+ /// This ensures error callbacks are properly guarded and do not attempt
232+ /// to update disposed controller state.
221233 const cameraDescription = CameraDescription (
222234 name: 'cam' ,
223235 lensDirection: CameraLensDirection .back,
@@ -241,8 +253,11 @@ void main() {
241253 );
242254
243255 test (
244- 'disposed controller should not update value on async callbacks' ,
256+ 'should not update controller value when disposed during async callbacks' ,
245257 () async {
258+ /// Tests that async callbacks from platform do not update controller
259+ /// state after the controller has been disposed. This verifies that
260+ /// value assignments are properly guarded with disposal checks.
246261 const cameraDescription = CameraDescription (
247262 name: 'cam' ,
248263 lensDirection: CameraLensDirection .back,
@@ -265,7 +280,10 @@ void main() {
265280 },
266281 );
267282
268- test ('multiple dispose calls should not cause issues' , () async {
283+ test ('should handle multiple consecutive dispose calls safely' , () async {
284+ /// Tests that calling dispose() multiple times on the same controller
285+ /// does not cause exceptions or resource leaks. This verifies that
286+ /// dispose operations are idempotent and properly handle repeated calls.
269287 const cameraDescription = CameraDescription (
270288 name: 'cam' ,
271289 lensDirection: CameraLensDirection .back,
@@ -291,8 +309,12 @@ void main() {
291309 });
292310
293311 test (
294- 'initialization should complete successfully when not disposed' ,
312+ 'should complete initialization successfully when not disposed' ,
295313 () async {
314+ /// Tests the normal initialization flow when the controller is not
315+ /// disposed. This serves as a baseline to ensure that the disposal
316+ /// guards do not interfere with normal camera initialization and
317+ /// controller state management.
296318 const cameraDescription = CameraDescription (
297319 name: 'cam' ,
298320 lensDirection: CameraLensDirection .back,
0 commit comments