@Test
  public void testFindSnapshots() throws DataProviderException {
    List<SearchCriterion> criteria = dataProvider.getSupportedSearchCriteria();
    Snapshot[] snapshots =
        dataProvider.findSnapshots(
            "temp",
            branch,
            Arrays.asList(criteria.get(0), criteria.get(3)),
            Optional.empty(),
            Optional.empty());
    assertEquals(2, snapshots.length);
    assertEquals(branchSnapshot, snapshots[0]);
    assertEquals(branchSnapshot3, snapshots[1]);

    snapshots =
        dataProvider.findSnapshots(
            "temp", branch, Arrays.asList(criteria.get(3)), Optional.empty(), Optional.empty());
    assertEquals(1, snapshots.length);
    assertEquals(branchSnapshot2, snapshots[0]);

    snapshots =
        dataProvider.findSnapshots(
            "temp", branch, Arrays.asList(criteria.get(0)), Optional.empty(), Optional.empty());
    assertEquals(1, snapshots.length);
    assertEquals(branchSnapshot3, snapshots[0]);

    snapshots =
        dataProvider.findSnapshots(
            "temp",
            branch,
            Arrays.asList(criteria.get(0), criteria.get(1), criteria.get(2)),
            Optional.empty(),
            Optional.empty());
    assertEquals(2, snapshots.length);
    assertEquals(branchSnapshot3, snapshots[0]);
    assertEquals(branchSnapshot, snapshots[1]);

    snapshots =
        dataProvider.findSnapshots(
            "temp",
            branch,
            Arrays.asList(criteria.get(3), criteria.get(1)),
            Optional.empty(),
            Optional.empty());
    assertEquals(2, snapshots.length);
    assertEquals(branchSnapshot3, snapshots[0]);
    assertEquals(branchSnapshot2, snapshots[1]);

    snapshots =
        dataProvider.findSnapshots(
            "temp", branch, Arrays.asList(criteria.get(2)), Optional.empty(), Optional.empty());
    assertEquals(1, snapshots.length);
    assertEquals(branchSnapshot2, snapshots[0]);
  }