/*
* Copyright (c) 2008-2013 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.db.client;
import java.util.List;
import java.util.ArrayList;
import java.net.URI;
import java.net.URISyntaxException;
import org.junit.Assert;
import org.junit.Test;
import com.emc.storageos.db.client.impl.BulkDataObjPersistIterator;
import com.emc.storageos.db.client.impl.BulkDataObjQueryResultIterator;
import com.emc.storageos.db.exceptions.DatabaseException;
public class BulkDataIteratorTest {
@Test
public void testBulkDataObjPersistIterator() {
List<String> data = new ArrayList();
for (int i = 0; i < 200; i++) {
data.add("string" + i);
}
BulkDataObjPersistIterator<String> bulkPersistIterator =
new BulkDataObjPersistIterator(data.iterator()) {
@Override
protected void run() throws DatabaseException {
}
};
int count = 0;
while (bulkPersistIterator.hasNext()) {
count++;
List<String> bulk = bulkPersistIterator.next();
Assert.assertEquals(100, bulk.size());
}
Assert.assertEquals(2, count);
}
@Test
public void testBulkDataObjQueryResultIterator() {
List<URI> ids = new ArrayList();
try {
for (int i = 0; i < 200; i++) {
ids.add(new URI("file://tmp/a" + i));
}
} catch (URISyntaxException e) {
throw new RuntimeException(e);
}
BulkDataObjQueryResultIterator<String> bulkQueryIterator =
new BulkDataObjQueryResultIterator(ids.iterator()) {
@Override
protected void run() throws DatabaseException {
currentIt = null;
getNextBatch();
while (!nextBatch.isEmpty()) {
List<String> data = prepareQueryData();
currentIt = data.iterator();
break;
}
}
};
int count = 0;
while (bulkQueryIterator.hasNext()) {
count++;
bulkQueryIterator.next();
}
Assert.assertEquals(200, count);
}
private List<String> prepareQueryData() {
// prepare bulk data
List<String> data = new ArrayList();
for (int i = 0; i < 100; i++) {
data.add("string" + i);
}
return data;
}
}