blob: bab467c448a205bc8c1f4280a597ca52267a5c69 [file] [log] [blame]
package org.robolectric.shadows;
import static com.google.common.truth.Truth.assertThat;
import static org.robolectric.Shadows.shadowOf;
import android.content.Context;
import android.os.DropBoxManager;
import android.os.DropBoxManager.Entry;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
/** Unit tests for {@see ShadowDropboxManager}. */
@RunWith(RobolectricTestRunner.class)
public class ShadowDropBoxManagerTest {
private static final String TAG = "TAG";
private static final String ANOTHER_TAG = "ANOTHER_TAG";
private static final byte[] DATA = "HELLO WORLD".getBytes();
private DropBoxManager manager;
private ShadowDropBoxManager shadowDropBoxManager;
@Before
public void setup() {
manager =
(DropBoxManager) RuntimeEnvironment.application.getSystemService(Context.DROPBOX_SERVICE);
shadowDropBoxManager = shadowOf(manager);
}
@Test
public void emptyDropbox() {
assertThat(manager.getNextEntry(null, 0)).isNull();
}
@Test
public void dataExpected() throws Exception {
shadowDropBoxManager.addData(TAG, 1, DATA);
Entry entry = manager.getNextEntry(null, 0);
assertThat(entry).isNotNull();
assertThat(entry.getTag()).isEqualTo(TAG);
assertThat(entry.getTimeMillis()).isEqualTo(1);
assertThat(new BufferedReader(new InputStreamReader(entry.getInputStream())).readLine())
.isEqualTo(new String(DATA));
assertThat(entry.getText(100)).isEqualTo(new String(DATA));
}
/** Checks that we retrieve the first entry <em>after</em> the specified time. */
@Test
public void dataNotExpected_timestampSameAsEntry() throws Exception {
shadowDropBoxManager.addData(TAG, 1, DATA);
assertThat(manager.getNextEntry(null, 1)).isNull();
}
@Test
public void dataNotExpected_timestampAfterEntry() throws Exception {
shadowDropBoxManager.addData(TAG, 1, DATA);
assertThat(manager.getNextEntry(null, 2)).isNull();
}
@Test
public void dataNotExpected_wrongTag() throws Exception {
shadowDropBoxManager.addData(TAG, 1, DATA);
assertThat(manager.getNextEntry(ANOTHER_TAG, 0)).isNull();
}
@Test
public void dataExpectedWithSort() throws Exception {
shadowDropBoxManager.addData(TAG, 3, DATA);
shadowDropBoxManager.addData(TAG, 1, new byte[] {(byte) 0x0});
Entry entry = manager.getNextEntry(null, 2);
assertThat(entry).isNotNull();
assertThat(entry.getText(100)).isEqualTo(new String(DATA));
assertThat(entry.getTimeMillis()).isEqualTo(3);
}
@Test()
public void resetClearsData() throws Exception {
shadowDropBoxManager.addData(TAG, 1, DATA);
shadowDropBoxManager.reset();
assertThat(manager.getNextEntry(null, 0)).isNull();
}
}