import core.Communicator;
import exceptions.PersonsAboveZeroException;
import exceptions.PersonsOnlyException;
import exceptions.PersonsZeroException;
import models.Good;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
import utils.Consts;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Stream;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
public class PersonstTest {
@ParameterizedTest
@ValueSource(ints = { 0 })
@DisplayName("ÐÑовеÑка ввода Ð Ñеловек")
public void enterZeroPersonsTest(int personsCount) {
Exception exception = assertThrows(PersonsZeroException.class, () ->
Calculator.createInstance(personsCount, null));
assertEquals(Consts.ZEROPERSONS_MESSAGE, exception.getMessage());
}
@ParameterizedTest
@ValueSource(ints = { 1 })
@DisplayName("ÐÑовеÑка ввода 1 Ñеловека")
public void enterOnlyPersonsTest(int personsCount) {
Exception exception = assertThrows(PersonsOnlyException.class, () ->
Calculator.createInstance(personsCount, null));
assertEquals(Consts.ONLYPERSON_MESSAGE, exception.getMessage());
}
@ParameterizedTest
@ValueSource(ints = { -1 })
@DisplayName("ÐÑовеÑка ввода -1 Ñеловек")
public void EnterPersonsTest(int personsCount) {
Exception exception = assertThrows(PersonsAboveZeroException.class, () ->
Calculator.createInstance(personsCount, null));
assertEquals(Consts.LOWPERSONS_MESSAGE, exception.getMessage());
}
@ParameterizedTest
@MethodSource("provideArguments")
@DisplayName("ТеÑÑ Ð²Ð²Ð¾Ð´Ð° ÑоваÑа")
public void calculateSum(List