Jean-Francois Leveque

ReindexView et Test

package org.legrog.web.xyz;
import org.legrog.web.account.AccountService;
import org.legrog.web.publisher.PublisherService;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.inject.Named;
import java.io.Serializable;
......@@ -12,12 +16,23 @@ import java.io.Serializable;
public class ReindexView implements Serializable {
private int indexedAccountsNumber;
private int indexedPublishersNumber;
private PublisherService publisherService;
private AccountService accountService;
@Inject
ReindexView(PublisherService publisherService, AccountService accountService) {
this.publisherService = publisherService;
this.accountService = accountService;
}
ReindexView() {
//no args constructor to make it proxyable
}
public void reindexAll() {
indexedPublishersNumber = publisherService.reindexAllPublishers();
indexedAccountsNumber = accountService.reindexAllAccounts();
}
public int getIndexedAccountsNumber() {
return indexedAccountsNumber;
......
package org.legrog.web.xyz;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.platform.runner.JUnitPlatform;
import org.junit.runner.RunWith;
import org.legrog.test.MockitoExtension;
import org.legrog.web.account.AccountService;
import org.legrog.web.publisher.PublisherService;
import org.mockito.Mock;
import org.mockito.Mockito;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.when;
/**
* Classe testing ReindexView
*/
@RunWith(JUnitPlatform.class)
@ExtendWith(MockitoExtension.class)
@DisplayName("Reindexes data")
public class ReindexViewTest {
private ReindexView reindexView;
private PublisherService publisherService;
private AccountService accountService;
@BeforeEach
public void setUp(@Mock PublisherService publisherService, @Mock AccountService accountService) {
this.publisherService = publisherService;
this.accountService = accountService;
this.reindexView = new ReindexView(publisherService, accountService);
}
@Nested
@DisplayName("reindexAll method")
class ReindexAllTests {
@DisplayName("when called, should call for reindexing of publishers and accounts")
@Test
public void reindexAllTest(@Mock PublisherService publisherService, @Mock AccountService accountService) {
reindexView.reindexAll();
Mockito.verify(publisherService).reindexAllPublishers();
Mockito.verify(accountService).reindexAllAccounts();
}
@DisplayName("when called, should set its indexed numbers to values returned by reindexers")
@Test
public void setReturnIntegers(@Mock PublisherService publisherService, @Mock AccountService accountService) {
when(publisherService.reindexAllPublishers()).thenReturn(1);
when(accountService.reindexAllAccounts()).thenReturn(2);
reindexView.reindexAll();
assertThat(reindexView.getIndexedPublishersNumber()).isEqualTo(1);
assertThat(reindexView.getIndexedAccountsNumber()).isEqualTo(2);
}
}
}
......