/* Any copyright is dedicated to the Public Domain. http://creativecommons.org/publicdomain/zero/1.0/ */ package org.mozilla.android.sync.test.helpers; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertTrue; import java.util.HashSet; import java.util.concurrent.atomic.AtomicLong; import junit.framework.AssertionFailedError; import org.mozilla.gecko.sync.repositories.domain.Record; public class ExpectManyStoredDelegate extends DefaultStoreDelegate { HashSet<String> expectedGUIDs; AtomicLong stored; public ExpectManyStoredDelegate(Record[] records) { HashSet<String> s = new HashSet<String>(); for (Record record : records) { s.add(record.guid); } expectedGUIDs = s; stored = new AtomicLong(0); } @Override public void onStoreCompleted(long storeEnd) { try { assertEquals(expectedGUIDs.size(), stored.get()); performNotify(); } catch (AssertionFailedError e) { performNotify(e); } } @Override public void onRecordStoreSucceeded(String guid) { try { assertTrue(expectedGUIDs.contains(guid)); } catch (AssertionFailedError e) { performNotify(e); } stored.incrementAndGet(); } }