### Question:
Fotoapparat { public Fotoapparat autoFocus() { focus(); return this; } Fotoapparat(StartCameraRoutine startCameraRoutine,
                StopCameraRoutine stopCameraRoutine,
                UpdateOrientationRoutine updateOrientationRoutine,
                ConfigurePreviewStreamRoutine configurePreviewStreamRoutine,
                CapabilitiesProvider capabilitiesProvider,
                CurrentParametersProvider parametersProvider,
                TakePictureRoutine takePictureRoutine,
                AutoFocusRoutine autoFocusRoutine,
                CheckAvailabilityRoutine checkAvailabilityRoutine,
                UpdateParametersRoutine updateParametersRoutine,
                UpdateZoomLevelRoutine updateZoomLevelRoutine,
                Executor executor); static FotoapparatBuilder with(Context context); boolean isAvailable(); CapabilitiesResult getCapabilities(); ParametersResult getCurrentParameters(); PhotoResult takePicture(); Fotoapparat autoFocus(); PendingResult<FocusResult> focus(); void updateParameters(@NonNull final UpdateRequest updateRequest); void setZoom(@FloatRange(from = 0f, to = 1f) final float zoomLevel); void start(); void stop();  }### Answer:
@Test public void autoFocus() throws Exception { testee.start(); testee.autoFocus(); verify(autoFocusRoutine).autoFocus(); }
@Test(expected = IllegalStateException.class) public void autoFocus_NotStartedYet() throws Exception { testee.autoFocus(); }