Android Open Source - RoboBinding-album-sample Create Edit Album Activity Test






From Project

Back to project page RoboBinding-album-sample.

License

The source code is released under:

Apache License

If you think the Android project RoboBinding-album-sample listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package org.robobinding.albumsampletest;
/*from  w  w  w  . ja  v  a2  s .  c  om*/
import java.util.Random;

import org.robobinding.albumsample.R;
import org.robobinding.albumsample.model.Album;


/**
 *
 * @since 1.0
 * @version $Revision: 1.0 $
 * @author Robert Taylor
 * @author Cheng Wei
 */
public class CreateEditAlbumActivityTest extends AbstractAlbumsTest {
    public void testWhenCreateAnAlbum_thenTheAlbumIsCreated() {
  navigateToAlbumListScreen();
  Album album = AlbumTestData.createAlbum();
  createAlbum(album);

  assertAlbumExists(album);
    }

    private void createAlbum(Album album) {
  clickOnButtonWithLabel(R.string.create);

  inputAlbumDetails(album);

  clickOnButtonWithLabel(R.string.save);
    }

    private void assertAlbumExists(Album album) {
  assertTrue(solo.searchText(album.getTitle()));
  assertTrue(solo.searchText(album.getArtist()));
    }

    public void testWhenCreateAlbums_thenCorrectNumberOfAlbumsAreCreated() {
  navigateToAlbumListScreen();
  int numAlbums = randomNumberOfAlbums();
  createAlbums(numAlbums);

  assertNumberOfAlbums(numAlbums);
    }

    private int randomNumberOfAlbums() {
  return new Random().nextInt(5) + 1;
    }

    private void createAlbums(int numAlbums) {
  for (int i = 0; i < numAlbums; i++) {
      createAlbum(AlbumTestData.createAlbum());
  }
    }

    private void inputAlbumDetails(Album album) {
  solo.enterText(0, album.getTitle());
  solo.enterText(1, album.getArtist());
  if (solo.isCheckBoxChecked(0) != album.isClassical()) {
      solo.clickOnCheckBox(0);
  }
  if (album.isClassical()) {
      solo.enterText(2, album.getComposer());
  }
    }

    public void testWhenEditAnAlbum_thenWindowTitleReflectAlbumClassicalState() {
  Album album = AlbumTestData.createClassicalAlbum();
  setupAlbum(album);
  navigateToAlbumListScreen();

  editAlbum(album);
  assertTitleReads("Edit Classical Album");
  clickOnClassicalCheckBox();
  assertTitleReads("Edit Album");
    }

    private void editAlbum(Album album) {
  solo.clickOnText(album.getTitle());
  clickOnButtonWithLabel(R.string.edit);
    }

    private void assertTitleReads(String title) {
  while (solo.scrollUp()) {
  }
  assertTrue(solo.searchText(title));
    }

    private void clickOnClassicalCheckBox() {
  solo.clickOnCheckBox(0);
    }

    public void testWhenEditAnAlbum_thenTheAlbumIsUpdated() {
  Album album = AlbumTestData.createClassicalAlbum();
  setupAlbum(album);
  navigateToAlbumListScreen();

  editAlbum(album);
  Album newAlbum = AlbumTestData.createNonClassicalAlbum();
  inputAlbumDetails(newAlbum);
  clickOnButtonWithLabel(R.string.save);

  assertAlbumContentMatches(album);
    }
}




Java Source Code List

org.robobinding.albumsample.activity.AbstractActivity.java
org.robobinding.albumsample.activity.AlbumApp.java
org.robobinding.albumsample.activity.CreateEditAlbumActivity.java
org.robobinding.albumsample.activity.DeleteAlbumDialog.java
org.robobinding.albumsample.activity.HomeActivity.java
org.robobinding.albumsample.activity.TestData.java
org.robobinding.albumsample.activity.ViewAlbumActivity.java
org.robobinding.albumsample.activity.ViewAlbumsActivity.java
org.robobinding.albumsample.model.Album.java
org.robobinding.albumsample.presentationmodel.AlbumItemPresentationModel.java
org.robobinding.albumsample.presentationmodel.CreateEditAlbumPresentationModel.java
org.robobinding.albumsample.presentationmodel.CreateEditAlbumView.java
org.robobinding.albumsample.presentationmodel.DeleteAlbumPresentationModel.java
org.robobinding.albumsample.presentationmodel.DeleteAlbumView.java
org.robobinding.albumsample.presentationmodel.HomePresentationModel.java
org.robobinding.albumsample.presentationmodel.HomeView.java
org.robobinding.albumsample.presentationmodel.ViewAlbumPresentationModel.java
org.robobinding.albumsample.presentationmodel.ViewAlbumView.java
org.robobinding.albumsample.presentationmodel.ViewAlbumsPresentationModel.java
org.robobinding.albumsample.presentationmodel.ViewAlbumsView.java
org.robobinding.albumsample.store.AlbumStore.java
org.robobinding.albumsample.store.MemoryAlbumStore.java
org.robobinding.albumsampletest.AbstractAlbumsTest.java
org.robobinding.albumsampletest.AbstractSampleAppTest.java
org.robobinding.albumsampletest.AlbumTestData.java
org.robobinding.albumsampletest.CreateEditAlbumActivityTest.java
org.robobinding.albumsampletest.DeleteAlbumActivityTest.java
org.robobinding.albumsampletest.ViewAlbumActivityTest.java
org.robobinding.albumsampletest.ViewAlbumsActivityTest.java