package org.ovirt.engine.core.utils;
import java.util.ArrayList;
import java.util.Arrays;
import junit.framework.TestCase;
public class ObjectIdentityCheckerTest extends TestCase {
public void testIsUpdateable() {
ObjectIdentityChecker oic = new ObjectIdentityChecker(Jedi.class);
assertFalse("Should be false by default", oic.IsFieldUpdatable("name"));
oic.AddPermittedField("name");
assertTrue("Should be true now", oic.IsFieldUpdatable("name"));
}
public void testNoChanges() {
Jedi jedi1 = new Jedi();
Jedi jedi2 = new Jedi();
ArrayList<String> changes = ObjectIdentityChecker.GetChangedFields(jedi1, jedi2);
assertTrue("Should be no changes", changes.size() == 0);
}
public void testChanges() {
Jedi jedi1 = new Jedi();
Jedi jedi2 = new Jedi();
jedi2.saberColor = "red"; // Gone to the dark side
ArrayList<String> changes = ObjectIdentityChecker.GetChangedFields(jedi1, jedi2);
assertTrue("Should be 1 changes", changes.size() == 1);
}
public void testIsFieldsUpdated() {
Jedi jedi1 = new Jedi();
Jedi jedi2 = new Jedi();
jedi2.saberColor = "red"; // Gone to the dark side
ObjectIdentityChecker oic = new ObjectIdentityChecker(Jedi.class);
boolean changed = oic.IsFieldsUpdated(jedi1, jedi2, Arrays.asList("name"));
assertFalse("No Change", changed);
changed = oic.IsFieldsUpdated(jedi1, jedi2, Arrays.asList("saberColor"));
assertTrue("1 Change", changed);
}
}