PublisherServiceSpringTest.java 2.68 KB
package org.legrog.web.publisher;

import org.junit.Test;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.platform.runner.JUnitPlatform;
import org.junit.runner.RunWith;
import org.legrog.entities.*;
import org.legrog.test.MockitoExtension;
import org.legrog.web.xyz.SharedService;
import org.mockito.Mock;

import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.*;

/**
 * Classe testant PublisherServiceSpring.
 */
@RunWith(JUnitPlatform.class)
@ExtendWith(MockitoExtension.class)
@DisplayName("Couche service de gestion d'éditeur")
public class PublisherServiceSpringTest {

    PublisherServiceSpring publisherServiceSpring;
    PublisherVersion publisherVersion;
    PublisherVersion publisherVersion1;
    Publisher publisher;
    PublisherRepository publisherRepository;
    PublisherVersionRepository publisherVersionRepository;

    @BeforeEach
    public void setUp(@Mock PublisherRepository publisherRepository,
                      @Mock PublisherVersionRepository publisherVersionRepository,
                      @Mock PublisherActionRepository publisherActionRepository,
                      @Mock SharedService sharedService) throws Exception {
        publisherServiceSpring = new PublisherServiceSpring(publisherRepository,
                publisherVersionRepository, publisherActionRepository, sharedService);
        publisherVersion = new PublisherVersion();
        publisherVersion1 = new PublisherVersion();
        this.publisherRepository = publisherRepository;
    }

    @DisplayName("Test ajout nouvel éditeur")
    @Test
    public void testAddNewPublisher() {
        publisherServiceSpring.addNewPublisher(publisherVersion);
        publisher = publisherVersion.getPublisher();
        assertThat(publisher.getVersions()).containsExactly(publisherVersion);
        assertThat(publisherVersion.getPublisher()).isEqualTo(publisher);
        verify(publisherRepository).save(publisher);
        verify(publisherVersionRepository).save(publisherVersion);
    }

    @DisplayName("Test ajout nouvelle version éditeur")
    @Test
    public void testAddVersionToPublisher() {
        publisherServiceSpring.addNewPublisher(publisherVersion);
        publisher = publisherVersion.getPublisher();
        publisherServiceSpring.addVersionToPublisher(publisher, publisherVersion1);
        assertThat(publisherVersion1.getPublisher()).isEqualTo(publisher);
        assertThat(publisher.getVersions()).contains(publisherVersion, publisherVersion1);
        verify(publisherRepository).save(publisher);
        verify(publisherVersionRepository).save(publisherVersion1);
    }
}