package ch.elexis.data;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.UUID;
import org.junit.Ignore;
import org.junit.Test;
import ch.rgw.tools.JdbcLink;
import ch.rgw.tools.JdbcLinkException;
import ch.rgw.tools.TimeTool;
import junit.framework.Assert;
public class Test_VkPreise extends AbstractPersistentObjectTest {
public Test_VkPreise(JdbcLink link){
super(link);
}
@Test
public void testVKMultiplikator() throws SQLException
{
Eigenleistung leistung = new Eigenleistung("TD999", "Leistung.xy999", "99", "10");
TimeTool now = new TimeTool(System.currentTimeMillis());
leistung.setVKMultiplikator(now, null, 98.12345, "typ");
Assert.assertEquals(98.12345, leistung.getVKMultiplikator(now, "typ"));
ResultSet res = link.getStatement().query("SELECT ID FROM VK_PREISE WHERE TYP='typ'");
if (res.next())
{
// checks if id is generated successfully after insert
Assert.assertNotNull(res.getString("ID"));
}
else
{
Assert.fail("no result for vk_preise");
}
}
@Test
public void testStoringVkPreiseWithSameId() {
try
{
String id = String.valueOf(UUID.randomUUID()).substring(0, 20);
Assert.assertEquals(1, link.exec("INSERT INTO VK_PREISE (ID) VALUES (" + JdbcLink.wrap(id) +")"));
link.exec("INSERT INTO VK_PREISE (ID) VALUES (" + JdbcLink.wrap(id) +")");
Assert.fail("should not happen");
}
catch(JdbcLinkException e)
{
Assert.assertTrue(true);
}
}
// workaround use a trim as in Test_StockService.testCreateEditAndDeleteStock and Test_StockService.testStoreUnstoreFindPreferredArticleInStock
@Test
@Ignore("not working for postgre - char 8 field returns exactly 8 bytes only for postgre")
public void testStoringVkPreiseDatumIdChar8() throws SQLException {
String id = String.valueOf(UUID.randomUUID()).substring(0, 20);
String datumVon = "2010121";
link.exec("INSERT INTO VK_PREISE (ID, DATUM_VON) VALUES (" + JdbcLink.wrap(id) +", " + JdbcLink.wrap(datumVon) + ")");
ResultSet res = link.getStatement().query("SELECT DATUM_VON FROM VK_PREISE WHERE ID=" + JdbcLink.wrap(id));
if (res.next())
{
Assert.assertEquals(datumVon.length(), res.getString("DATUM_VON").length());
}
else
{
Assert.fail("no result for vk_preise");
}
}
}