package io.monokkel.actors;
import akka.actor.Props;
import io.monokkel.core.Indexer;
import io.monokkel.domain.PageData;
import io.monokkel.messages.IndexResponse;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
import static java.lang.Thread.sleep;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.internal.util.collections.Sets.newSet;
public class IndexActorTest extends ActorTest{
private Indexer mockedIndexer;
@Before
public void before(){
mockedIndexer = Mockito.mock(Indexer.class);
super.before();
}
@Override
protected String getActorName() {
return "indexActor";
}
@Test
public void onReceive_withIndexResponse_expectIndexerToBeCalled() throws Exception {
PageData parseOutput = new PageData(newSet("http://url"),"title",1L, "sda","asd","extractedContent",null);
subject.tell(new IndexResponse(parseOutput),javaTestKit.getRef());
sleep(1000L);
verify(mockedIndexer, times(1)).indexParserOutput(parseOutput);
}
@Override
protected Props getActor() {
return IndexActor.props(mockedIndexer);
}
}