package de.juwimm.cms.test.hibernate;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Map;
import org.easymock.EasyMock;
import org.junit.Assert;
import org.springframework.beans.factory.annotation.Autowired;
import de.juwimm.cms.model.ContentHbm;
import de.juwimm.cms.model.ContentHbmDao;
import de.juwimm.cms.model.ContentHbmDaoImpl;
import de.juwimm.cms.model.ContentHbmImpl;
import de.juwimm.cms.model.ContentVersionHbm;
import de.juwimm.cms.model.ContentVersionHbmDao;
import de.juwimm.cms.model.ContentVersionHbmImpl;
import de.juwimm.cms.vo.ContentValue;
public class ContentDaoTest extends HbmTestImpl {
@Autowired
ContentHbmDao contentHbmDao;
ContentVersionHbmDao contentVersionDaoMock;
@Override
protected void onSetUp() throws Exception {
super.onSetUp();
super.mockAuthetication();
contentVersionDaoMock = EasyMock.createMock(ContentVersionHbmDao.class);
((ContentHbmDaoImpl) contentHbmDao).setContentVersionHbmDao(contentVersionDaoMock);
}
public void initializeServiceBeans() {
// TODO Auto-generated method stub
}
public void init() {
ContentHbm content = new ContentHbmImpl();
content.setContentId(1);
content.setStatus(1);
content.setTemplate("testTemplate");
content.setUpdateSearchIndex(true);
insertContent(content);
}
/**
* Test Load
*/
public void testLoad() {
init();
ContentHbm content = contentHbmDao.load(1);
try {
Assert.assertNotNull(content);
Assert.assertEquals("testTemplate", content.getTemplate());
Assert.assertEquals(1, content.getStatus());
Assert.assertEquals(true, content.isUpdateSearchIndex());
} catch (Exception e) {
Assert.assertTrue(false);
}
}
/**
* Test cloneContent
* expect: creation of a new Content who has different only the id
*/
public void testCloneContent() {
init();
ContentHbm content = contentHbmDao.load(1);
ContentVersionHbm contentVersion = new ContentVersionHbmImpl();
contentVersion.setContentVersionId(1);
contentVersion.setVersion("1");
ContentVersionHbm clonedContentVersion = new ContentVersionHbmImpl();
clonedContentVersion.setContentVersionId(2);
clonedContentVersion.setVersion("1");
Collection<ContentVersionHbm> collection = new ArrayList<ContentVersionHbm>();
collection.add(contentVersion);
content.setContentVersions(collection);
contentVersionDaoMock = EasyMock.createMock(ContentVersionHbmDao.class);
((ContentHbmDaoImpl) contentHbmDao).setContentVersionHbmDao(contentVersionDaoMock);
Map picturesIds = null;
Map documentsIds = null;
Map personsIds = null;
Integer unitId = 1;
try {
EasyMock.expect(contentVersionDaoMock.cloneContentVersion(content.getLastContentVersion(), picturesIds, documentsIds, personsIds, unitId)).andReturn(clonedContentVersion);
} catch (Exception e) {
Assert.assertTrue(false);
}
EasyMock.replay(contentVersionDaoMock);
try {
ContentHbm clonedContent = contentHbmDao.cloneContent(content, picturesIds, documentsIds, personsIds, 1);
Assert.assertEquals("testTemplate", clonedContent.getTemplate());
Assert.assertEquals(1, clonedContent.getStatus());
Assert.assertEquals(true, clonedContent.isUpdateSearchIndex());
} catch (Exception e) {
Assert.assertTrue(false);
}
}
/**
* Test SetLatestContentVersionAsPublishVersion
* expect: the version for the contentVersion is not 'PUBLS'
* don't update document use count
* no exception thrown
*/
public void testSetLatestContentVersionAsPublishVersion() {
init();
/**Use this method to mock AuthenticationHelper.getUserName()*/
ContentVersionHbm contentVersion = new ContentVersionHbmImpl();
contentVersion.setContentVersionId(1);
contentVersion.setCreateDate(0);
contentVersion.setCreator("testUser");
contentVersion.setHeading("testHeading");
contentVersion.setText("testText");
contentVersion.setVersion("1");
insertContentVersion(contentVersion, 1);
try {
EasyMock.expect(contentVersionDaoMock.create((ContentVersionHbm) EasyMock.anyObject())).andReturn(contentVersion);
} catch (Exception e) {
Assert.assertTrue(false);
}
EasyMock.replay(contentVersionDaoMock);
try {
contentHbmDao.setLatestContentVersionAsPublishVersion(1);
} catch (Exception e) {
Assert.assertTrue(false);
}
EasyMock.verify(contentVersionDaoMock);
}
/**
* Test SetLatestContentVersionAsPublishVersion
* expect: the version for the contentVersion is 'PUBLS'
* update document use count
* no exception thrown
*/
public void testSetLatestContentVersionAsPublishVersion1() {
init();
/**Use this method to mock AuthenticationHelper.getUserName()*/
ContentVersionHbm contentVersion = new ContentVersionHbmImpl();
contentVersion.setContentVersionId(1);
contentVersion.setCreateDate(0);
contentVersion.setCreator("testUser");
contentVersion.setHeading("testHeading");
contentVersion.setText("testText");
contentVersion.setVersion("PUBLS");
insertContentVersion(contentVersion, 1);
ContentVersionHbm latestVersion = new ContentVersionHbmImpl();
latestVersion.setContentVersionId(2);
latestVersion.setCreateDate(0);
latestVersion.setCreator("testUser");
latestVersion.setHeading("testHeading");
latestVersion.setText("testText");
latestVersion.setVersion("1");
insertContentVersion(latestVersion, 1);
try {
contentHbmDao.setLatestContentVersionAsPublishVersion(1);
} catch (Exception e) {
Assert.assertTrue(false);
}
}
/**
* Test toXml
* expect: the xml in the correct format
*/
public void testToXml() {
ContentHbm content = new ContentHbmImpl();
content.setContentId(1);
content.setStatus(1);
content.setTemplate("testTemplate");
content.setUpdateSearchIndex(true);
try {
String result = contentHbmDao.toXml(content);
String expectedResult = "<content id=\"1\">\n\t<template>testTemplate</template>\n\t<status>1</status>\n</content>\n";
Assert.assertNotNull(result);
Assert.assertEquals(expectedResult, result);
} catch (Exception e) {
Assert.assertTrue(false);
}
}
/**
* Test CreateWithContentVersion
* expect: on creating a content create automatically a contentVersion too
*/
public void testCreateWithContentVersion() {
ContentValue contentValue = new ContentValue();
contentValue.setContentId(1);
contentValue.setContentText("testText");
contentValue.setTemplate("testTemplate");
ContentVersionHbm contentVersion = new ContentVersionHbmImpl();
contentVersion.setContentVersionId(1);
try {
EasyMock.expect(contentVersionDaoMock.create((ContentVersionHbm) EasyMock.anyObject())).andReturn(contentVersion);
} catch (Exception e) {
Assert.assertTrue(false);
}
try {
ContentHbm content = contentHbmDao.createWithContentVersion(contentValue, "testUser");
Assert.assertEquals(1, content.getContentVersions().size());
} catch (Exception e) {
Assert.assertTrue(false);
}
}
}