package eu.play_project.dcep.distributedetalis.join.tests;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import eu.play_project.dcep.distributedetalis.join.SelectVariable;
/**
* @author Ningyuan Pan
*
*/
public class SelectVariableTest {
private SelectVariable<String> sv;
@Before
public void init(){
sv = new SelectVariable<String>();
}
@Test
public void testAddRelResult1() {
List<String> values;
List<String> add = null;
sv.addValues(add);
values = sv.getValues();
assertNull("Union size error when empty value set union null value set", values);
}
@Test
public void testAddResult2(){
List<String> values;
List<String> add = new ArrayList<String>();
add.add("tom");
add.add("jack");
sv.addValues(add);
values = sv.getValues();
boolean pass = false;
for(int i = 0; i < add.size(); i++){
String s = add.get(i);
pass = false;
for(int j = 0; j < values.size(); j++){
if(s.equals(values.get(j))){
pass = true;
break;
}
}
}
assertTrue("Union size error when empty value set union none empty value set", values.size()==2);
assertTrue("Union element lost when empty value set union none empty value set", pass);
}
@Test
public void testAddResult3(){
String [] v = {"tom", "jack"};
List<String> values;
List<String> add = new ArrayList<String>();
add.add("tom");
add.add("jack");
sv.addValues(add);
add.add("john");
sv.addValues(add);
values = sv.getValues();
boolean pass = false;
for(int i = 0; i < v.length; i++){
String s = v[i];
pass = false;
for(int j = 0; j < values.size(); j++){
if(s.equals(values.get(j))){
pass = true;
break;
}
}
}
assertTrue("Union size error when one none empty value set union another none empty value set", values.size()==2);
assertTrue("Union element lost when one none empty value set union another none empty value set", pass);
v = new String []{"tom"};
add.clear();
add.add("tom");
sv.addValues(add);
values = sv.getValues();
pass = false;
for(int i = 0; i < v.length; i++){
String s = v[i];
pass = false;
for(int j = 0; j < values.size(); j++){
if(s.equals(values.get(j))){
pass = true;
break;
}
}
}
assertTrue("Union size error when one none empty value set union another none empty value set", values.size()==1);
assertTrue("Union element lost when one none empty value set union another none empty value set", pass);
}
@Test
public void testAddResult4(){
List<String> values;
List<String> add = new ArrayList<String>();
add.add("tom");
add.add("jack");
sv.addValues(add);
add.clear();
add.add("Tom");
add.add("Jack");
sv.addValues(add);
values = sv.getValues();
assertTrue("Union size error when two disjoint value sets are unioned", values.size()==0);
}
@Test
public void testAddResult5(){
String [] v = {"tom", "jack"};
List<String> values;
List<String> add = new ArrayList<String>();
add.add("tom");
add.add("jack");
sv.addValues(add);
sv.addValues(null);
values = sv.getValues();
boolean pass = false;
for(int i = 0; i < v.length; i++){
String s = v[i];
pass = false;
for(int j = 0; j < values.size(); j++){
if(s.equals(values.get(j))){
pass = true;
break;
}
}
}
assertTrue("Union size error when one none empty value set union null value set", values.size()==2);
assertTrue("Union element lost when one none empty value set union null value set", pass);
}
}