// ============================================================================
//
// Copyright (C) 2006-2016 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.commons.MapDB.utils;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import junit.framework.Assert;
import org.junit.Test;
import org.talend.dataquality.indicators.mapdb.DBMapParameter;
import org.talend.dataquality.indicators.mapdb.DBSet;
/**
* created by talend on Aug 4, 2014 Detailled comment
*
*/
public class DBSetTest {
/**
* Test method for {@link org.talend.dataquality.indicators.mapdb.DBSet#hashCode()}.
*/
@Test
public void testHashCode() {
DBSet<String> dbSet1 = new DBSet<String>();
DBMapParameter dbMapParameter = new DBMapParameter();
DBSet<String> dbSet2 = new DBSet<String>(dbMapParameter);
Assert.assertEquals(dbSet1.hashCode(), dbSet2.hashCode());
dbSet1.add("key1"); //$NON-NLS-1$
dbSet2.add("key1"); //$NON-NLS-1$
Assert.assertEquals(dbSet1.hashCode(), dbSet2.hashCode());
dbSet1.add("key2"); //$NON-NLS-1$
Assert.assertNotSame(dbSet1.hashCode(), dbSet2.hashCode());
}
/**
* Test method for {@link org.talend.dataquality.indicators.mapdb.DBSet#iterator()}.
*/
@Test
public void testIterator() {
DBSet<String> dbSet1 = new DBSet<String>();
dbSet1.add("key1"); //$NON-NLS-1$
dbSet1.add("key2"); //$NON-NLS-1$
Iterator<String> iterator = dbSet1.iterator();
while (iterator.hasNext()) {
String key = iterator.next();
Assert.assertEquals(true, key.equals("key2") ? true : key.equals("key1"));
}
}
/**
* Test method for {@link org.talend.dataquality.indicators.mapdb.DBSet#size()}.
*/
@Test
public void testSize() {
DBSet<String> dbSet1 = new DBSet<String>();
DBMapParameter dbMapParameter = new DBMapParameter();
DBSet<String> dbSet2 = new DBSet<String>(dbMapParameter);
Assert.assertEquals(0, dbSet1.size());
Assert.assertEquals(0, dbSet2.size());
dbSet1.add("key1"); //$NON-NLS-1$
Assert.assertEquals(1, dbSet1.size());
dbSet2.add("key1"); //$NON-NLS-1$
Assert.assertEquals(1, dbSet2.size());
dbSet2.add("key2"); //$NON-NLS-1$
Assert.assertEquals(2, dbSet2.size());
dbSet1.add("key2"); //$NON-NLS-1$
Assert.assertEquals(2, dbSet1.size());
dbSet2.add("key2"); //$NON-NLS-1$
Assert.assertEquals(2, dbSet2.size());
dbSet1.add("key2"); //$NON-NLS-1$
Assert.assertEquals(2, dbSet1.size());
dbSet1.close();
dbSet2.close();
}
/**
* Test method for {@link org.talend.dataquality.indicators.mapdb.DBSet#contains(java.lang.Object)}.
*/
@Test
public void testContains() {
DBMapParameter dbMapParameter = null;
DBSet<String> dbSet2 = new DBSet<String>(dbMapParameter);
Assert.assertEquals(true, dbSet2.isEmpty());
dbSet2.add("key1"); //$NON-NLS-1$
boolean containsKey = dbSet2.contains("key1"); //$NON-NLS-1$
Assert.assertEquals(true, containsKey);
containsKey = dbSet2.contains("key2"); //$NON-NLS-1$
Assert.assertEquals(false, containsKey);
dbSet2.close();
}
/**
* Test method for {@link org.talend.dataquality.indicators.mapdb.DBSet#toArray()}.
*/
@Test
public void testToArray() {
DBMapParameter dbMapParameter = null;
DBSet<String> dbSet2 = new DBSet<String>(dbMapParameter);
Assert.assertEquals(true, dbSet2.isEmpty());
dbSet2.add("key1"); //$NON-NLS-1$
dbSet2.add("key2"); //$NON-NLS-1$
boolean containsKey = dbSet2.contains("key1"); //$NON-NLS-1$
Assert.assertEquals(true, containsKey);
Object[] array = dbSet2.toArray();
Assert.assertEquals(2, array.length);
Assert.assertEquals(true, array[0].equals("key1") ? true : array[1].equals("key1"));
Assert.assertEquals(true, array[0].equals("key2") ? true : array[1].equals("key2"));
dbSet2.close();
}
/**
* Test method for {@link org.talend.dataquality.indicators.mapdb.DBSet#add(java.lang.Object)}.
*/
@Test
public void testAdd() {
DBMapParameter dbMapParameter = null;
DBSet<String> dbSet2 = new DBSet<String>(dbMapParameter);
Assert.assertEquals(true, dbSet2.isEmpty());
dbSet2.add("key1"); //$NON-NLS-1$
try {
dbSet2.add(null);
} catch (Exception e) {
Assert.assertTrue(e instanceof NullPointerException);
}
dbSet2.close();
}
/**
* Test method for {@link org.talend.dataquality.indicators.mapdb.DBSet#remove(java.lang.Object)}.
*/
@Test
public void testRemove() {
DBMapParameter dbMapParameter = null;
DBSet<String> dbSet2 = new DBSet<String>(dbMapParameter);
Assert.assertEquals(true, dbSet2.isEmpty());
dbSet2.add("key1"); //$NON-NLS-1$
dbSet2.remove("key1"); //$NON-NLS-1$
Assert.assertEquals(true, dbSet2.isEmpty());
}
/**
* Test method for {@link org.talend.dataquality.indicators.mapdb.DBSet#addAll(java.util.Collection)}.
*/
@Test
public void testAddAll() {
Set<String> tempSet = new HashSet<String>();
DBMapParameter dbMapParameter = null;
DBSet<String> dbSet2 = new DBSet<String>(dbMapParameter);
tempSet.add("name1");
tempSet.add("name2");
dbSet2.addAll(tempSet);
Assert.assertEquals(true, dbSet2.contains("name1"));
Assert.assertEquals(true, dbSet2.contains("name2"));
}
/**
* Test method for {@link org.talend.dataquality.indicators.mapdb.DBSet#removeAll(java.util.Collection)}.
*/
@Test
public void testRemoveAll() {
Set<String> tempSet = new HashSet<String>();
DBMapParameter dbMapParameter = null;
DBSet<String> dbSet2 = new DBSet<String>(dbMapParameter);
tempSet.add("name1");
tempSet.add("name2");
dbSet2.addAll(tempSet);
Assert.assertEquals(true, dbSet2.contains("name1"));
Assert.assertEquals(true, dbSet2.contains("name2"));
dbSet2.removeAll(tempSet);
Assert.assertEquals(true, dbSet2.isEmpty());
}
/**
* Test method for {@link org.talend.dataquality.indicators.mapdb.DBSet#clear()}.
*/
@Test
public void testClear() {
DBSet<String> dbSet1 = new DBSet<String>();
DBMapParameter dbMapParameter = new DBMapParameter();
DBSet<String> dbSet2 = new DBSet<String>(dbMapParameter);
Assert.assertEquals(true, dbSet1.isEmpty());
Assert.assertEquals(true, dbSet2.isEmpty());
dbSet1.add("key1"); //$NON-NLS-1$
dbSet2.add("key1"); //$NON-NLS-1$
Assert.assertEquals(false, dbSet1.isEmpty());
Assert.assertEquals(false, dbSet2.isEmpty());
dbSet1.clear();
dbSet2.clear();
Assert.assertEquals(true, dbSet1.isEmpty());
Assert.assertEquals(true, dbSet2.isEmpty());
dbSet1.close();
dbSet2.close();
}
}