package de.knurt.fam.test.unit.couchdb;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import java.util.Date;
import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import de.knurt.fam.core.model.persist.User;
import de.knurt.fam.core.model.persist.document.SoaActivationDocument;
import de.knurt.fam.core.model.persist.document.SoaActivationPageDocument;
import de.knurt.fam.core.model.persist.document.SoaDocument;
import de.knurt.fam.core.persistence.dao.couchdb.CouchDBDao4Soa;
import de.knurt.fam.core.util.UserFactory;
import de.knurt.fam.core.util.termsofuse.TermsOfUsePage;
import de.knurt.fam.template.util.TermsOfUseResolver;
import de.knurt.fam.test.utils.TeztBeanSimpleFactory;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:/test-dependencies.xml" })
public class GetActiveTermsOfUsePagesTest {
@Test
public void storeASoaActivation() {
SoaActivationDocument sad = new SoaActivationDocument();
sad.setActivatedOn(new Date().getTime() - 100);
sad.setRoleId("extern");
int i = 0;
do {
SoaActivationPageDocument sapd = new SoaActivationPageDocument();
SoaDocument soc = new SoaDocument();
soc.setCreated(new Date().getTime());
soc.setTitle("title" + i);
soc.setContent("content" + i);
sapd.setSoaDoc(soc);
sad.addPage(sapd);
i++;
} while (i < 10);
assertTrue(sad.insertOrUpdate());
new TermsOfUseResolver(TeztBeanSimpleFactory.getAdmin()).deactivateAgreementsFor(sad);
User user = UserFactory.me().blank();
user.setRoleId("extern");
List<TermsOfUsePage> touPages = CouchDBDao4Soa.getInstance().getActiveTermsOfUsePages(user);
assertNotNull(touPages);
assertEquals(10, touPages.size());
// check getting the right order
i = 0;
for (TermsOfUsePage touPage : touPages) {
assertEquals("title" + i, touPage.getTitle());
assertEquals("content" + i, touPage.getHtmlContent());
assertEquals(i, touPage.getPageno());
i++;
}
}
}