package co.smartreceipts.android.imports; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import co.smartreceipts.android.model.Trip; import co.smartreceipts.android.settings.UserPreferenceManager; import wb.android.storage.StorageManager; import static org.junit.Assert.assertTrue; @RunWith(RobolectricTestRunner.class) public class FileImportProcessorFactoryTest { // Class under test FileImportProcessorFactory factory; @Mock Trip trip; @Mock StorageManager storageManager; @Mock UserPreferenceManager preferenceManager; @Before public void setUp() { MockitoAnnotations.initMocks(this); this.factory = new FileImportProcessorFactory(RuntimeEnvironment.application, trip, storageManager, preferenceManager); } @Test public void get() { // Image Imports assertTrue(this.factory.get(RequestCodes.NATIVE_ADD_PHOTO_CAMERA_REQUEST) instanceof ImageImportProcessor); assertTrue(this.factory.get(RequestCodes.NATIVE_NEW_RECEIPT_CAMERA_REQUEST) instanceof ImageImportProcessor); assertTrue(this.factory.get(RequestCodes.NATIVE_RETAKE_PHOTO_CAMERA_REQUEST) instanceof ImageImportProcessor); assertTrue(this.factory.get(RequestCodes.IMPORT_GALLERY_IMAGE) instanceof ImageImportProcessor); // PDF Imports assertTrue(this.factory.get(RequestCodes.IMPORT_GALLERY_PDF) instanceof GenericFileImportProcessor); // Rest are auto fail assertTrue(this.factory.get(-1) instanceof AutoFailImportProcessor); assertTrue(this.factory.get(0) instanceof AutoFailImportProcessor); assertTrue(this.factory.get(Integer.MAX_VALUE) instanceof AutoFailImportProcessor); assertTrue(this.factory.get(Integer.MIN_VALUE) instanceof AutoFailImportProcessor); } }