PublisherVersionViewTest.java 5.58 KB
package org.legrog.web.publisher;

import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.runner.RunWith;
import org.legrog.entities.Country;
import org.legrog.entities.Publisher;
import org.legrog.entities.PublisherVersion;
import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

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

/**
 * Classe testant PublisherVersionView.
 */
@RunWith(MockitoJUnitRunner.class)
@DisplayName("Création et visualisation de version d'éditeur")
public class PublisherVersionViewTest {
    Logger logger = LoggerFactory.getLogger(getClass());

    private PublisherVersionView publisherVersionView;

    @Mock
    private PublisherService publisherService;

    private PublisherVersion publisherVersion;

    @Before
    public void setUp() {
        publisherVersionView = new PublisherVersionView();
        publisherVersionView.setEditMode(false);
        publisherVersionView.setNewPublisher(false);

        publisherVersion = new PublisherVersion();
        publisherVersion.setPublisherName("A");
        publisherVersion.setPublisherStreetAddress("B");
        publisherVersion.setPublisherPostalCode("C");
        publisherVersion.setPublisherPostOfficeBoxNumber("D");
        publisherVersion.setPublisherAddressRegion("E");
        publisherVersion.setPublisherAddressLocality("F");
        publisherVersion.setPublisherAddressCountry(new Country());
        publisherVersion.setPublisherTelephone("G");
        publisherVersion.setPublisherEmail("H");
        publisherVersion.setPublisherURL("I");
        publisherVersion.setPublisherActive(true);
        publisherVersion.setPublisherHistory("J");
        publisherVersion.setPublisher(new Publisher());
        logger.trace("publisherVersion = {}", publisherVersion);

// todo uncomment when need to use it (new mockito refuses unnecessary stubbing)
// when(publisherService.getPublisherVersion(0)).thenReturn(publisherVersion);

    }

    @DisplayName("Passage en mode édition")
    @Test
    public void testEdit() {
        assertThat(publisherVersionView.isEditMode()).isFalse();
        publisherVersionView.edit();
        assertThat(publisherVersionView.isEditMode()).isTrue();
    }

    @DisplayName("Annulation des données saisie pour un nouvel éditeur")
    @Test
    public void testCancelNewPublisher() {
        publisherVersionView.setNewPublisher(true);

        publisherVersionView.setPublisherName("A");
        publisherVersionView.setPublisherStreetAddress("B");
        publisherVersionView.setPublisherPostalCode("C");
        publisherVersionView.setPublisherPostOfficeBoxNumber("D");
        publisherVersionView.setPublisherAddressRegion("E");
        publisherVersionView.setPublisherAddressLocality("F");
        publisherVersionView.setPublisherAddressCountry(new Country());
        publisherVersionView.setPublisherTelephone("G");
        publisherVersionView.setPublisherEmail("H");
        publisherVersionView.setPublisherURL("I");
        publisherVersionView.setPublisherActive(true);
        publisherVersionView.setPublisherHistory("J");

        publisherVersionView.cancel();

        assertThat(publisherVersionView.getPublisherName()).isNull();
        assertThat(publisherVersionView.getPublisherStreetAddress()).isNull();
        assertThat(publisherVersionView.getPublisherPostalCode()).isNull();
        assertThat(publisherVersionView.getPublisherPostOfficeBoxNumber()).isNull();
        assertThat(publisherVersionView.getPublisherAddressRegion()).isNull();
        assertThat(publisherVersionView.getPublisherAddressLocality()).isNull();
        assertThat(publisherVersionView.getPublisherTelephone()).isNull();
        assertThat(publisherVersionView.getPublisherEmail()).isNull();
        assertThat(publisherVersionView.getPublisherURL()).isNull();
        assertThat(publisherVersionView.getPublisherHistory()).isNull();
        assertThat(publisherVersionView.isPublisherActive()).isFalse();
        assertThat(publisherVersionView.isEditMode()).isTrue();
    }

    // J'ai l'impression qu'on pourrait utiliser de l'imbrication ici
    /*
    @DisplayName("Annulation de saisie de nouvelle version de saisie d'un éditeur existant")
    @Test
    public void testCancelNewVersionOfPublisher() {

    }*/
/*
    @Test
    @DisplayName("Test de la fonction de chargement des valeurs initiales pour leur affichage")
    public void testLoadData() {
        publisherVersionView.setPublisherVersionId(0);
        publisherVersionView.loadData();
        assertThat(publisherVersionView.getPublisherName()).isEqualTo("A");
        assertThat(publisherVersionView.getPublisherStreetAddress()).isEqualTo("B");
        assertThat(publisherVersionView.getPublisherPostalCode()).isEqualTo("C");
        assertThat(publisherVersionView.getPublisherPostOfficeBoxNumber()).isEqualTo("D");
        assertThat(publisherVersionView.getPublisherAddressRegion()).isEqualTo("E");
        assertThat(publisherVersionView.getPublisherAddressLocality()).isEqualTo("F");
        assertThat(publisherVersionView.getPublisherTelephone()).isEqualTo("G");
        assertThat(publisherVersionView.getPublisherEmail()).isEqualTo("H");
        assertThat(publisherVersionView.getPublisherURL()).isEqualTo("I");
        assertThat(publisherVersionView.isPublisherActive()).isTrue();
        assertThat(publisherVersionView.getPublisherHistory()).isEqualTo("J");
        assertThat(publisherVersionView.isNewPublisher()).isFalse();
    }
*/
}