package org.ovirt.engine.core.dao;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import java.util.Date;
import org.junit.Test;
import org.ovirt.engine.core.common.ExternalVariable;
/**
* {@link ExternalVariableDao} tests
*/
public class ExternalVariableDaoTest extends BaseDaoTestCase {
/**
* Test getting existing variable
*/
@Test
public void getExistingVariable() {
ExternalVariable expected = new ExternalVariable();
expected.setName("fence-kdump-listener");
ExternalVariable found = dbFacade.getExternalVariableDao().get(expected.getName());
assertNotNull(found);
assertEquals(expected, found);
assertNotNull(found.getUpdateDate());
}
/**
* Test getting non existent variable
*/
@Test
public void getNonExistentVariable() {
ExternalVariable found = dbFacade.getExternalVariableDao().get("non-existent");
assertNull(found);
}
/**
* Test create new variable with save
*/
@Test
public void insertNewVariable() {
ExternalVariable newVar = new ExternalVariable();
newVar.setName("new-var");
newVar.setValue("123456");
newVar.setUpdateDate(new Date());
dbFacade.getExternalVariableDao().save(newVar);
ExternalVariable found = dbFacade.getExternalVariableDao().get(newVar.getName());
assertNotNull(found);
assertEquals(newVar, found);
}
/**
* Test creating new variable with saveOrUpdate
*/
@Test
public void saveOrUpdateNewVariable() {
ExternalVariable newVar = new ExternalVariable();
newVar.setName("new-var");
newVar.setValue("123456");
newVar.setUpdateDate(new Date());
dbFacade.getExternalVariableDao().saveOrUpdate(newVar);
ExternalVariable found = dbFacade.getExternalVariableDao().get(newVar.getName());
assertNotNull(found);
assertEquals(newVar, found);
}
/**
* Test creating new variable with updated set to {@code null} (db will set updated to now)
*/
@Test
public void createNewVariableWithEmptyUpdated() {
ExternalVariable newVar = new ExternalVariable();
newVar.setName("new-var");
newVar.setValue("123456");
dbFacade.getExternalVariableDao().save(newVar);
ExternalVariable found = dbFacade.getExternalVariableDao().get(newVar.getName());
assertNotNull(found);
assertEquals(newVar.getName(), found.getName());
assertEquals(newVar.getValue(), found.getValue());
assertNotNull(found.getUpdateDate());
}
/**
* Test updating existing variable with update
*/
@Test
public void updateExistingVariable() {
String name = "fence-kdump-listener";
ExternalVariable existing = dbFacade.getExternalVariableDao().get(name);
existing.setValue("123456");
existing.setUpdateDate(new Date());
dbFacade.getExternalVariableDao().update(existing);
ExternalVariable found = dbFacade.getExternalVariableDao().get(name);
assertNotNull(found);
assertEquals(existing, found);
}
/**
* Test updating existing variable with saveOrUpdate
*/
@Test
public void saveOrUpdatepdateExistingVariable() {
String name = "fence-kdump-listener";
ExternalVariable existing = dbFacade.getExternalVariableDao().get(name);
existing.setValue("123456");
existing.setUpdateDate(new Date());
dbFacade.getExternalVariableDao().saveOrUpdate(existing);
ExternalVariable found = dbFacade.getExternalVariableDao().get(name);
assertNotNull(found);
assertEquals(existing, found);
}
/**
* Test removing existing variable
*/
@Test
public void removeExistingVariable() {
ExternalVariable var = new ExternalVariable();
var.setName("new-var");
var.setValue("123456");
var.setUpdateDate(new Date());
dbFacade.getExternalVariableDao().save(var);
ExternalVariable found = dbFacade.getExternalVariableDao().get(var.getName());
assertNotNull(found);
assertEquals(var, found);
dbFacade.getExternalVariableDao().remove(var.getName());
dbFacade.getExternalVariableDao().get(var.getName());
ExternalVariable removed = dbFacade.getExternalVariableDao().get(var.getName());
assertNull(removed);
}
/**
* Test removing existing variable
*/
@Test
public void removeNonExistentVariable() {
dbFacade.getExternalVariableDao().remove("non-existent-var");
}
}