/*
* Copyright (c) JForum Team. All rights reserved.
*
* The software in this package is published under the terms of the LGPL
* license a copy of which has been included with this distribution in the
* license.txt file.
*
* The JForum Project
* http://www.jforum.net
*/
package net.jforum.core.events.post;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
import java.util.Arrays;
import net.jforum.entities.BadWord;
import net.jforum.entities.Post;
import net.jforum.entities.Topic;
import net.jforum.repository.BadWordRepository;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
/**
* @author Rafael Steil, Jonatan Cloutier
*/
@RunWith(MockitoJUnitRunner.class)
public class BadWordEventTestCase {
@Mock private BadWordRepository repository;
@InjectMocks private BadWordEvent event;
@Test
public void replaceAllShouldNotReplaceInsideAnotherWord() {
BadWord w1 = new BadWord(); w1.setWord("abc"); w1.setReplacement("REPLACEMENT");
when(repository.getAll()).thenReturn(Arrays.asList(w1));
Post p = new Post();
Topic topic = new Topic();
topic.setSubject("title");
p.setTopic(topic);
p.setText("some content wordABCeditor more content");
event.beforeAdd(p);
assertEquals("some content wordABCeditor more content", p.getText());
}
@Test
public void replaceAll() {
BadWord w1 = new BadWord(); w1.setWord("word1"); w1.setReplacement("replacement1");
BadWord w2 = new BadWord(); w2.setWord("word2"); w2.setReplacement("replacement2");
when(repository.getAll()).thenReturn(Arrays.asList(w1, w2));
Post p = new Post();
Topic topic = new Topic();
topic.setSubject("title");
p.setTopic(topic);
p.setText("some content of post 1. This is word1, and this is WORD2. End");
event.beforeAdd(p);
assertEquals("some content of post 1. This is replacement1, and this is replacement2. End", p.getText());
}
}