/* vim: set ts=2 et sw=2 cindent fo=qroca: */
package com.globant.katari.shindig.domain;
import static org.junit.Assert.assertThat;
import static org.hamcrest.CoreMatchers.*;
import java.io.File;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.context.ApplicationContext;
import com.globant.katari.shindig.testsupport.SpringTestUtils;
import com.globant.katari.shindig.domain.Application;
public class ApplicationRepositoryTest {
private static final String REPOSITORY = "shindig.applicationRepository";
private ApplicationRepository repository;
private Session session;
private long appId;
private String gadgetXmlUrl = "file:///" + new File(
"src/test/resources/FullSampleGadget.xml").getAbsolutePath();
@Before
public void setUp() throws Exception {
ApplicationContext appContext = SpringTestUtils.getBeanFactory();
repository = (ApplicationRepository) appContext.getBean(REPOSITORY);
session = ((SessionFactory) appContext.getBean("katari.sessionFactory"))
.openSession();
session.createQuery("delete from Application").executeUpdate();
Application app = new Application(gadgetXmlUrl);
session.saveOrUpdate(app);
appId = app.getId();
}
@After
public void tearDown() {
session.close();
}
@Test
public void testFindApplication() {
Application application = repository.findApplication(appId);
assertThat(application, notNullValue());
assertThat(application.getUrl(), is(gadgetXmlUrl));
// The title is obtained from the gadgetXml file.
assertThat(application.getTitle(), is("Test title"));
}
@Test
public void testFindApplicationByUrl() {
Application application = repository.findApplicationByUrl(gadgetXmlUrl);
assertThat(application, notNullValue());
assertThat(application.getUrl(), is(gadgetXmlUrl));
}
}