package org.ovirt.engine.core.dao.provider; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import org.junit.Test; import org.ovirt.engine.core.common.businessentities.OpenstackNetworkPluginType; import org.ovirt.engine.core.common.businessentities.OpenstackNetworkProviderProperties; import org.ovirt.engine.core.common.businessentities.Provider; import org.ovirt.engine.core.common.businessentities.Provider.AdditionalProperties; import org.ovirt.engine.core.common.businessentities.ProviderType; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dao.BaseGenericDaoTestCase; import org.ovirt.engine.core.dao.FixturesTool; public class ProviderDaoTest extends BaseGenericDaoTestCase<Guid, Provider<?>, ProviderDao> { @Override protected Provider<?> generateNewEntity() { Provider<AdditionalProperties> provider = new Provider<>(); provider.setId(generateNonExistingId()); provider.setName("brovider"); provider.setUrl("http://brovider.com/"); provider.setType(ProviderType.OPENSTACK_NETWORK); OpenstackNetworkProviderProperties additionalProperties = new OpenstackNetworkProviderProperties(); additionalProperties.setReadOnly(Boolean.FALSE); additionalProperties.setTenantName("10ant"); additionalProperties.setPluginType(OpenstackNetworkPluginType.LINUX_BRIDGE.name()); provider.setAdditionalProperties(additionalProperties); provider.setAuthUrl("http://keystone-server:35357/v2.0/"); return provider; } @Override protected void updateExistingEntity() { existingEntity.setUrl("abc"); } @Override protected Guid getExistingEntityId() { return new Guid("1115c1c6-cb15-4832-b2a4-023770607111"); } @Override protected ProviderDao prepareDao() { return dbFacade.getProviderDao(); } @Override protected Guid generateNonExistingId() { return Guid.newGuid(); } @Override protected int getEntitiesTotalCount() { return 2; } @Test public void getByName() throws Exception { assertEquals(FixturesTool.PROVIDER_NAME, dao.getByName(FixturesTool.PROVIDER_NAME).getName()); } @Test public void getByNameCaseSensitive() throws Exception { assertNull(dao.getByName(FixturesTool.PROVIDER_NAME.toUpperCase())); } @Test public void getByNameNonExistant() throws Exception { assertNull(dao.getByName(FixturesTool.PROVIDER_NAME + FixturesTool.PROVIDER_NAME)); } @Test public void searchQueryByExistentName() throws Exception { assertEquals(FixturesTool.PROVIDER_NAME, dao.getAllWithQuery(String.format("SELECT * FROM providers WHERE name = '%s'", FixturesTool.PROVIDER_NAME)).get(0).getName()); } @Test public void searchQueryByNonExistentName() throws Exception { assertTrue(dao.getAllWithQuery("SELECT * FROM providers WHERE name = 'foo'").isEmpty()); } @Test public void searchQueryByExistentType() throws Exception { assertEquals(FixturesTool.PROVIDER_NAME, dao.getAllWithQuery(String.format("SELECT * FROM providers WHERE provider_type = '%s'", FixturesTool.PROVIDER_TYPE.name())).get(0).getName()); } @Test public void searchQueryByNonExistentType() throws Exception { assertTrue(dao.getAllWithQuery("SELECT * FROM providers WHERE provider_type = 'foo'").isEmpty()); } }