use of net.rdrei.android.scdl2.api.entity.UserEntity in project scdl by passy.
the class MediaStateTest method testTrackParcel.
@Test
public void testTrackParcel() {
final TrackEntity track = new TrackEntity();
track.setTitle("My track");
track.setUser(new UserEntity());
final MediaState entity = MediaState.fromEntity(track);
final byte[] bytes;
final Parcel parcel = Parcel.obtain();
try {
parcel.writeValue(entity);
bytes = parcel.marshall();
} finally {
parcel.recycle();
}
final MediaState newEntity;
final Parcel parcel2 = Parcel.obtain();
try {
parcel2.unmarshall(bytes, 0, bytes.length);
parcel2.setDataPosition(0);
newEntity = (MediaState) parcel2.readValue(MediaState.class.getClassLoader());
} finally {
parcel2.recycle();
}
assertThat(newEntity.getType()).isEqualTo(MediaDownloadType.TRACK);
assertThat(newEntity.getTrackOption().get().getTitle()).isEqualTo("My track");
}
use of net.rdrei.android.scdl2.api.entity.UserEntity in project scdl by passy.
the class DownloadActivityTest method invalidPurchaseRegression.
@Test
public void invalidPurchaseRegression() {
final TrackEntity track = new TrackEntity();
final UserEntity user = new UserEntity();
// Notice capital H here.
final String downloadUrl = "Http://not-a-link";
user.setUsername("awesomesauce");
track.setDownloadable(false);
track.setUser(user);
track.setPurchaseUrl(downloadUrl);
final Bundle bundle = new Bundle();
bundle.putParcelable(DownloadActivity.MEDIA_STATE_TAG, MediaState.fromEntity(track));
final DownloadActivity activity = Robolectric.buildActivity(DownloadActivity.class).attach().create(bundle).start().resume().get();
final View button = activity.findViewById(R.id.btn_download);
assertFalse(button.isEnabled());
}
use of net.rdrei.android.scdl2.api.entity.UserEntity in project scdl by passy.
the class DownloadActivityTest method purchaseFlow.
@Test
public void purchaseFlow() {
final TrackEntity track = new TrackEntity();
final UserEntity user = new UserEntity();
final String downloadUrl = "http://3lau.to/downloadstuff";
user.setUsername("awesomesauce");
track.setDownloadable(false);
track.setUser(user);
track.setPurchaseUrl(downloadUrl);
final Bundle bundle = new Bundle();
bundle.putParcelable(DownloadActivity.MEDIA_STATE_TAG, MediaState.fromEntity(track));
final DownloadActivity activity = Robolectric.buildActivity(DownloadActivity.class).attach().create(bundle).start().resume().get();
final View button = activity.findViewById(R.id.btn_download);
assertTrue(button.isEnabled());
button.performClick();
final ShadowActivity shadowActivity = Robolectric.shadowOf(activity);
final Intent nextIntent = shadowActivity.getNextStartedActivity();
assertThat(nextIntent.getAction(), equalTo("android.intent.action.VIEW"));
assertThat(nextIntent.toUri(0), startsWith(downloadUrl));
}
use of net.rdrei.android.scdl2.api.entity.UserEntity in project scdl by passy.
the class TrackEntityParcelTest method testNestedTrackMarshallUnmarshall.
@Test
public void testNestedTrackMarshallUnmarshall() {
final UserEntity user = new UserEntity();
user.setId(23l);
user.setUsername("passy");
final TrackEntity entity = new TrackEntity();
entity.setId(200l);
entity.setTitle("Hello, World.");
entity.setUser(user);
final byte[] bytes;
final Parcel parcel = Parcel.obtain();
try {
parcel.writeValue(entity);
bytes = parcel.marshall();
} finally {
parcel.recycle();
}
final TrackEntity newEntity;
final Parcel parcel2 = Parcel.obtain();
try {
parcel2.unmarshall(bytes, 0, bytes.length);
parcel2.setDataPosition(0);
newEntity = (TrackEntity) parcel2.readValue(TrackEntity.class.getClassLoader());
} finally {
parcel2.recycle();
}
assertThat(newEntity.getId(), equalTo(200l));
assertThat(newEntity.getTitle(), equalTo("Hello, World."));
assertThat(newEntity.getUser().getUsername(), equalTo("passy"));
assertThat(newEntity.getUser().getId(), equalTo(23l));
}
Aggregations