use of it.vige.rubia.model.Poster in project rubia-forums by flashboss.
the class OperationPostTest method verifyPostFromForumPageLastPost.
@Test
public void verifyPostFromForumPageLastPost() {
Forum forum = new Forum("Second Test Forum", "Second Test Description", new Category("First Test Category"));
goTo(driver, forum);
Topic topic = new Topic(forum, "Third Test Topic");
Poster poster = getPosterLastPost(driver, topic);
goTo(driver, forum);
Post post = getLastPostOfCurrentForum(driver, topic);
assertTrue(post != null);
assertEquals(RE + "Third Test Topic", post.getMessage().getSubject());
assertTrue(poster != null);
assertEquals("root", poster.getUserId());
assertTrue(poster.getPostCount() >= 14);
}
use of it.vige.rubia.model.Poster in project rubia-forums by flashboss.
the class OperationPostTest method verifyPostProfileFromCategoryPage.
@Test
public void verifyPostProfileFromCategoryPage() {
Category category = new Category("First Test Category");
goTo(driver, category);
Forum forum = new Forum("Second Test Forum", "Second Test Description", category);
Poster poster = getPoster(driver, forum);
assertTrue(poster != null);
assertEquals("root", poster.getUserId());
assertTrue(poster.getPostCount() >= 14);
}
use of it.vige.rubia.model.Poster in project rubia-forums by flashboss.
the class ViewAtomLink method getPage.
public static Topic getPage(WebDriver driver, Topic topic) {
VerifyTopic.goTo(driver, topic);
goTo(driver);
Topic result = new Topic();
result.setSubject(driver.findElement(id(FEED_TITLE_TEXT)).getText().split(": ")[1]);
String[] splittedText = driver.findElement(id(FEED_SUBTITLE_TEXT)).getText().split(" in topic | in forum | in category ");
result.setForum(new Forum(splittedText[2]));
result.getForum().setCategory(new Category(splittedText[3]));
List<Post> posts = new ArrayList<Post>();
int entriesSize = driver.findElements(className(ENTRY_LINK)).size();
DateFormat dateFormat = new SimpleDateFormat("d MMM yyyy, HH:mm");
for (int i = 0; i < entriesSize; i++) {
WebElement entry = driver.findElements(className(ENTRY_LINK)).get(i);
String[] entryText = entry.getText().split(BY);
String lastUpdated = entry.findElement(className(LAST_UPDATED)).getText();
Post post = new Post(entryText[0]);
post.setPoster(new Poster(entryText[1].split("\n")[0]));
try {
post.setCreateDate(dateFormat.parse(lastUpdated));
} catch (ParseException e) {
}
post.setMessage(new Message(entry.findElement(className(FEED_ENTRY_CONTENT)).getText()));
post.getMessage().setSubject(entryText[0]);
posts.add(post);
WebElement entryLink = driver.findElement(linkText(entry.getText().split("\n")[0]));
entryLink.click();
List<Attachment> attachments = getAttachmentsOfCurrentPostInPage(driver, post);
post.setAttachments(attachments);
if (topic.getPoll() == null) {
Poll poll = getPollOfCurrentTopic(driver);
result.setPoll(poll);
}
VerifyTopic.goTo(driver, result);
goTo(driver);
}
result.setPosts(posts);
returnToHome(driver);
return result;
}
use of it.vige.rubia.model.Poster in project rubia-forums by flashboss.
the class ForumsModuleImpl method createPoster.
@Override
public Poster createPoster(String userId) throws ModuleException {
if (userId != null) {
try {
Poster user = new Poster();
user.setUserId(userId);
em.persist(user);
em.flush();
return user;
} catch (Exception e) {
String message = "Cannot create Poster";
throw new ModuleException(message, e);
}
} else {
throw new IllegalArgumentException("user name cannot be null");
}
}
use of it.vige.rubia.model.Poster in project rubia-forums by flashboss.
the class ForumsModuleImpl method createPost.
@Override
public Post createPost(Topic topic, Forum forum, Message message, Date creationDate, Poster poster, Collection<Attachment> attachments) throws ModuleException {
try {
Poster posterOld = findPosterByUserId(poster.getUserId());
if (posterOld == null) {
em.persist(poster);
}
em.merge(poster);
Post post = new Post();
post.setMessage(message);
post.setCreateDate(creationDate);
post.setPoster(poster);
if (attachments != null)
for (Attachment attachment : attachments) {
em.persist(attachment);
post.addAttachment(attachment);
}
em.persist(post);
em.flush();
post.setTopic(topic);
topic.setLastPostDate(post.getCreateDate());
topic.setReplies(topic.getReplies() + 1);
em.merge(topic);
forum.addPostSize();
em.merge(forum);
notificationEngine.scheduleForNotification(post.getId(), MODE_REPLY);
em.flush();
return post;
} catch (Exception e) {
String errorMessage = "Cannot create topic";
throw new ModuleException(errorMessage, e);
}
}
Aggregations