@Override public ParseFile createFromParcel(Parcel source) { return new ParseFile(source); }
@Test public void testSaveAsyncNotDirty() throws Exception { ParseFileController controller = mock(ParseFileController.class); when(controller.isDataAvailable(any(ParseFile.State.class))).thenReturn(true); ParseCorePlugins.getInstance().registerFileController(controller); ParseFile.State state = new ParseFile.State.Builder().url("http://example.com").build(); ParseFile file = new ParseFile(state); Task<Void> task = file.saveAsync(null, null, null); ParseTaskUtils.wait(task); verify(controller, never()).saveAsync( any(ParseFile.State.class), any(byte[].class), any(String.class), any(ProgressCallback.class), Matchers.<Task<Void>>any()); }
@Test public void testSaveAsyncCancelled() throws Exception { ParseFileController controller = mock(ParseFileController.class); when(controller.isDataAvailable(any(ParseFile.State.class))).thenReturn(true); ParseCorePlugins.getInstance().registerFileController(controller); ParseFile.State state = new ParseFile.State.Builder().build(); ParseFile file = new ParseFile(state); Task<Void> task = file.saveAsync(null, null, Task.<Void>cancelled()); task.waitForCompletion(); assertTrue(task.isCancelled()); verify(controller, never()).saveAsync( any(ParseFile.State.class), any(byte[].class), any(String.class), any(ProgressCallback.class), Matchers.<Task<Void>>any()); }
@Test public void testIsDataAvailableCachedInController() { ParseFileController controller = mock(ParseFileController.class); when(controller.isDataAvailable(any(ParseFile.State.class))).thenReturn(true); ParseCorePlugins.getInstance().registerFileController(controller); ParseFile.State state = new ParseFile.State.Builder().build(); ParseFile file = new ParseFile(state); assertTrue(file.isDataAvailable()); verify(controller).isDataAvailable(state); }
@Test public void testIsDataAvailableCachedInMemory() { ParseFile file = new ParseFile(new ParseFile.State.Builder().build()); file.data = "hello".getBytes(); assertTrue(file.isDataAvailable()); }
@Test public void testParseFile() throws JSONException { ParseFile.State.Builder parseFileStateBuilder = new ParseFile.State.Builder(); parseFileStateBuilder.name("image-file.png"); parseFileStateBuilder.url("http://folder/image-file.png"); ParseFile parseFile = new ParseFile(parseFileStateBuilder.build()); JSONObject fileJSON = (JSONObject) testClassObject.encode(parseFile); assertNotNull(fileJSON); assertEquals("File", fileJSON.getString("__type")); assertEquals("image-file.png", fileJSON.getString("name")); assertEquals("http://folder/image-file.png", fileJSON.getString("url")); }
ParseCorePlugins.getInstance().registerFileController(controller); ParseFile parseFile = new ParseFile(file, contentType); ParseTaskUtils.wait(parseFile.saveAsync(null, null, null));
.url(url) .build(); ParseFile parseFile = new ParseFile(state);
ParseCorePlugins.getInstance().registerFileController(controller); ParseFile parseFile = new ParseFile(name, data, contentType); ParseTaskUtils.wait(parseFile.saveAsync(null, null, null));
.url(url) .build(); ParseFile parseFile = new ParseFile(state);
.url(url) .build(); ParseFile parseFile = new ParseFile(state);
@Test public void testGetParseFileKeyNotExist() { final ParseFile file = new ParseFile( new ParseFile.State.Builder().name("image.png").url("http://yarr.com/image.png").build()); ParseFile fileAgain = new ParseFile( new ParseFile.State.Builder().name("file.txt").url("http://yarr.com/file.txt").build()); final Map<String, Object> params = new HashMap<>(); params.put("key", file); ParseConfig config = new ParseConfig(params); assertNull(config.getParseFile("wrongKey")); assertSame(fileAgain, config.getParseFile("wrongKey", fileAgain)); }
@Test(expected = RuntimeException.class) public void testDontParcelIfDirty() { ParseFile file = new ParseFile(new ParseFile.State.Builder().build()); Parcel parcel = Parcel.obtain(); file.writeToParcel(parcel, 0); }
@Test public void testGetParseFileKeyExistValueNotParseFile() { ParseFile file = new ParseFile( new ParseFile.State.Builder().name("file.txt").url("http://yarr.com/file.txt").build()); final Map<String, Object> params = new HashMap<>(); params.put("key", 1); ParseConfig config = new ParseConfig(params); assertNull(config.getParseFile("key")); assertSame(file, config.getParseFile("key", file)); }
@Test public void testCancel() { ParseFile file = new ParseFile(new ParseFile.State.Builder().build()); TaskQueueTestHelper queueHelper = new TaskQueueTestHelper(file.taskQueue); queueHelper.enqueue(); List<Task<Void>> saveTasks = Arrays.asList( file.saveInBackground(), file.saveInBackground(), file.saveInBackground()); List<Task<byte[]>> getDataTasks = Arrays.asList( file.getDataInBackground(), file.getDataInBackground(), file.getDataInBackground()); file.cancel(); queueHelper.dequeue(); for (int i = 0; i < saveTasks.size(); i++) { assertTrue("Task #" + i + " was not cancelled", saveTasks.get(i).isCancelled()); } for (int i = 0; i < getDataTasks.size(); i++) { assertTrue("Task #" + i + " was not cancelled", getDataTasks.get(i).isCancelled()); } }
@Test public void testGetParseFileKeyExistValueNull() { ParseFile file = new ParseFile( new ParseFile.State.Builder().name("file.txt").url("http://yarr.com/file.txt").build()); final Map<String, Object> params = new HashMap<>(); params.put("key", JSONObject.NULL); params.put("keyAgain", JSONObject.NULL); ParseConfig config = new ParseConfig(params); assertNull(config.getParseFile("key")); assertNull(config.getParseFile("key", file)); assertNull(config.getParseFile("keyAgain")); assertNull(config.getParseFile("keyAgain", file)); }
@Test public void testGetParseFileKeyExist() { final ParseFile file = new ParseFile( new ParseFile.State.Builder().name("image.png").url("http://yarr.com/image.png").build()); ParseFile fileAgain = new ParseFile( new ParseFile.State.Builder().name("file.txt").url("http://yarr.com/file.txt").build()); final Map<String, Object> params = new HashMap<>(); params.put("key", file); ParseConfig config = new ParseConfig(params); ParseFile fileConfig = config.getParseFile("key"); assertEquals(file.getName(), fileConfig.getName()); assertEquals(file.getUrl(), fileConfig.getUrl()); assertSame(fileConfig, config.getParseFile("key", fileAgain)); }
@Test public void testGetters() { ParseFile file = new ParseFile(new ParseFile.State.Builder().url("http://example.com").build()); assertEquals("http://example.com", file.getUrl()); assertFalse(file.isDirty()); // Note: rest of the getters are tested in `testConstructor` }
ParseFile parseFile = new ParseFile(name, data, contentType); assertEquals("name", parseFile.getName()); assertEquals("content_type", parseFile.getState().mimeType()); assertTrue(parseFile.isDirty()); parseFile = new ParseFile(data); assertEquals("file", parseFile.getName()); // Default assertEquals(null, parseFile.getState().mimeType()); assertTrue(parseFile.isDirty()); parseFile = new ParseFile(name, data); assertEquals("name", parseFile.getName()); assertEquals(null, parseFile.getState().mimeType()); assertTrue(parseFile.isDirty()); parseFile = new ParseFile(data, contentType); assertEquals("file", parseFile.getName()); // Default assertEquals("content_type", parseFile.getState().mimeType()); assertTrue(parseFile.isDirty()); parseFile = new ParseFile(file); parseFile = new ParseFile(file, contentType);
@Test public void testParcelable() { String mime = "mime"; String name = "name"; String url = "url"; ParseFile file = new ParseFile(new ParseFile.State.Builder() .name(name) .mimeType(mime) .url(url) .build()); Parcel parcel = Parcel.obtain(); file.writeToParcel(parcel, 0); parcel.setDataPosition(0); file = ParseFile.CREATOR.createFromParcel(parcel); assertEquals(file.getName(), name); assertEquals(file.getUrl(), url); assertEquals(file.getState().mimeType(), mime); assertFalse(file.isDirty()); }