package org.wikibrain.core.dao;
import org.junit.Test;
import org.wikibrain.core.dao.sql.LocalPageSqlDao;
import org.wikibrain.core.dao.sql.RawPageSqlDao;
import org.wikibrain.core.dao.sql.TestDaoUtil;
import org.wikibrain.core.dao.sql.WpDataSource;
import org.wikibrain.core.lang.LanguageInfo;
import org.wikibrain.core.model.*;
import java.io.IOException;
import java.sql.SQLException;
import java.util.Date;
public class TestRawPageDao {
@Test
public void test() throws ClassNotFoundException, IOException, SQLException, DaoException {
WpDataSource wpDs = TestDaoUtil.getWpDataSource();
LanguageInfo lang = LanguageInfo.getByLangCode("en");
LocalPageSqlDao lpDao = new LocalPageSqlDao(wpDs);
RawPageDao rpDao = new RawPageSqlDao(wpDs);
lpDao.beginLoad();
rpDao.beginLoad();
LocalPage page = new LocalPage(
lang.getLanguage(),
7,
new Title("test", lang),
NameSpace.ARTICLE
);
lpDao.save(page);
String body = "foo bar \000baz\n\n\324";
RawPage rawPage = new RawPage(
7, 3242, "test", body, new Date(), lang.getLanguage(), NameSpace.ARTICLE, true, false, "POOP"
);
rpDao.save(rawPage);
lpDao.endLoad();
rpDao.endLoad();
LocalPage savedPage = lpDao.getById(lang.getLanguage(), 7);
assert (savedPage != null);
assert (page.getLocalId() == savedPage.getLocalId());
assert (page.getTitle().equals(savedPage.getTitle()));
assert (page.getNameSpace().equals(savedPage.getNameSpace()));
RawPage rawSaved = rpDao.getById(lang.getLanguage(), 7);
assert (rawSaved != null);
assert (page.getLocalId() == rawSaved.getLocalId());
assert (page.getTitle().equals(rawSaved.getTitle()));
assert (page.getNameSpace().equals(rawSaved.getNamespace()));
assert (body.equals(rawSaved.getBody()));
assert (rawSaved.isRedirect());
Iterable<RawPage> savedRaws = rpDao.get(new DaoFilter().setLanguages(lang.getLanguage()));
assert (savedRaws!=null);
RawPage savedRaw = savedRaws.iterator().next();
assert (savedRaw.getNamespace().getValue() == rawPage.getNamespace().getValue());
assert (savedRaw.getLastEdit().equals(rawPage.getLastEdit()));
assert (savedRaw.getRevisionId() == rawPage.getRevisionId());
assert (savedRaw.getBody().equals(body));
assert (savedRaw.getLanguage().equals(rawPage.getLanguage()));
assert (savedRaw.getTitle().equals(rawPage.getTitle()));
assert (savedRaw.isRedirect());
}
}