Example #1
0
  public void testDeleteFeedNoFeedMedia()
      throws IOException, ExecutionException, InterruptedException, TimeoutException {
    File destFolder = getInstrumentation().getTargetContext().getExternalFilesDir(TEST_FOLDER);
    assertNotNull(destFolder);

    Feed feed = new Feed("url", null, "title");
    feed.setItems(new ArrayList<>());

    // create Feed image
    File imgFile = new File(destFolder, "image");
    assertTrue(imgFile.createNewFile());
    FeedImage image = new FeedImage(0, "image", imgFile.getAbsolutePath(), "url", true);
    image.setOwner(feed);
    feed.setImage(image);

    // create items
    for (int i = 0; i < 10; i++) {
      FeedItem item =
          new FeedItem(0, "Item " + i, "Item" + i, "url", new Date(), FeedItem.PLAYED, feed);
      feed.getItems().add(item);
    }

    PodDBAdapter adapter = PodDBAdapter.getInstance();
    adapter.open();
    adapter.setCompleteFeed(feed);
    adapter.close();

    assertTrue(feed.getId() != 0);
    assertTrue(feed.getImage().getId() != 0);
    for (FeedItem item : feed.getItems()) {
      assertTrue(item.getId() != 0);
    }

    DBWriter.deleteFeed(getInstrumentation().getTargetContext(), feed.getId())
        .get(TIMEOUT, TimeUnit.SECONDS);

    // check if files still exist
    assertFalse(imgFile.exists());

    adapter = PodDBAdapter.getInstance();
    adapter.open();
    Cursor c = adapter.getFeedCursor(feed.getId());
    assertTrue(c.getCount() == 0);
    c.close();
    c = adapter.getImageCursor(String.valueOf(image.getId()));
    assertTrue(c.getCount() == 0);
    c.close();
    for (FeedItem item : feed.getItems()) {
      c = adapter.getFeedItemCursor(String.valueOf(item.getId()));
      assertTrue(c.getCount() == 0);
      c.close();
    }
    adapter.close();
  }
Example #2
0
  public void testDeleteFeedNoDownloadedFiles()
      throws ExecutionException, InterruptedException, TimeoutException {
    File destFolder = getInstrumentation().getTargetContext().getExternalFilesDir(TEST_FOLDER);
    assertNotNull(destFolder);

    Feed feed = new Feed("url", null, "title");
    feed.setItems(new ArrayList<>());

    // create Feed image
    File imgFile = new File(destFolder, "image");
    FeedImage image = new FeedImage(0, "image", imgFile.getAbsolutePath(), "url", true);
    image.setOwner(feed);
    feed.setImage(image);

    List<File> itemFiles = new ArrayList<>();
    // create items with downloaded media files
    for (int i = 0; i < 10; i++) {
      FeedItem item =
          new FeedItem(0, "Item " + i, "Item" + i, "url", new Date(), FeedItem.PLAYED, feed);
      feed.getItems().add(item);

      File enc = new File(destFolder, "file " + i);
      itemFiles.add(enc);

      FeedMedia media =
          new FeedMedia(
              0,
              item,
              1,
              1,
              1,
              "mime_type",
              enc.getAbsolutePath(),
              "download_url",
              false,
              null,
              0,
              0);
      item.setMedia(media);
    }

    PodDBAdapter adapter = PodDBAdapter.getInstance();
    adapter.open();
    adapter.setCompleteFeed(feed);
    adapter.close();

    assertTrue(feed.getId() != 0);
    assertTrue(feed.getImage().getId() != 0);
    for (FeedItem item : feed.getItems()) {
      assertTrue(item.getId() != 0);
      assertTrue(item.getMedia().getId() != 0);
    }

    DBWriter.deleteFeed(getInstrumentation().getTargetContext(), feed.getId())
        .get(TIMEOUT, TimeUnit.SECONDS);

    adapter = PodDBAdapter.getInstance();
    adapter.open();
    Cursor c = adapter.getFeedCursor(feed.getId());
    assertTrue(c.getCount() == 0);
    c.close();
    c = adapter.getImageCursor(String.valueOf(image.getId()));
    assertTrue(c.getCount() == 0);
    c.close();
    for (FeedItem item : feed.getItems()) {
      c = adapter.getFeedItemCursor(String.valueOf(item.getId()));
      assertTrue(c.getCount() == 0);
      c.close();
      c = adapter.getSingleFeedMediaCursor(item.getMedia().getId());
      assertTrue(c.getCount() == 0);
      c.close();
    }
    adapter.close();
  }