diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b6a0589 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.idea/ +techno-atom-sample-1.iml \ No newline at end of file diff --git a/src/test/java/homework/TestGeneratorIntSequence.java b/src/test/java/homework/TestGeneratorIntSequence.java new file mode 100644 index 0000000..20b88a7 --- /dev/null +++ b/src/test/java/homework/TestGeneratorIntSequence.java @@ -0,0 +1,145 @@ +package homework; + +import org.junit.Assert; +import org.junit.Test; +import ru.odnoklassniki.ClassToBeTested; + +import java.util.List; +import java.util.logging.Logger; + +/** + * Created by Maxim Vyshegorodtsev + * + * Проверка метода ClassToBeTested.generateIntSequence(int startingNumber, int itemsCount) + * + * Метод возвращает нам возрастающую последовательность целых чисел длины itemsCount, начиная + * с startingNumber и далее увеличивая каждое число на 1 + * + * Метод принимает на вход два параметра: + * startingNumber - число, с которого начинается последователность + * itemsCount - количсетво элементов последовательности + * + * Метод возвращает упорядоченный список целых чисел + * + * Чек-лист + * + * 1. Проверка метода на выброс исключения, если во второй аргумент передать + * число меньшее 0 + * + * 2. Проверка метода на выброс исключения, если во второй аргумент передать 0 + * + * 3. Проверка метода на выброс исключения, если сумма двух аргументов будет + * больше допустимого максимального значения для типа Integer + * + * 4. Проверка на корректную работу метода, если сумма двух аргументов + * равна максимальному допустимому значению типа Integer + * + * 5. Проверка на корректную работу метода, если сумма двух аргументов + * меньше либо равно максимальному допустимому значению для типа Integer + * + */ +public class TestGeneratorIntSequence { + private static final int STARTING_NUMBER = 0; + private static final Logger LOGGER = Logger.getLogger(TestGeneratorIntSequence.class.getSimpleName()); + private static final String ITEMS_COUNT_ERROR_MESSAGE = "itemsCount must be greater than 0"; + private static final String GENERATOR_ERROR_MESSAGE = "can't generate an int greater than integer's max value"; + + /** + * Проверка метода на выброс исключения, если во второй аргумент передать + * число меньшее 0 + */ + @Test + public void testThrowingExceptionIfItemsCountIsLessZero() { + LOGGER.info("Вызовем метод, передав во второй аргумент отрицательное число"); + try { + ClassToBeTested.generateIntSequence(STARTING_NUMBER, -2); + Assert.fail("Метод не кидает ошибку при вызове метода с отрицательным вторым аргументом"); + } + + catch (IllegalArgumentException ex) { + LOGGER.info("Получили ошибку, проверим ее текст"); + Assert.assertEquals("Метод бросает другую ошибку", ITEMS_COUNT_ERROR_MESSAGE, ex.getMessage()); + } + LOGGER.info("Метод выбрасывает ошибку"); + } + + /** + * Проверка метода на выброс исключения, если во второй аргумент передать 0 + */ + @Test + public void testThrowingExceptionIfItemsCountIsZero() { + LOGGER.info("Вызовем метод, передав во второй аргумент 0"); + try { + ClassToBeTested.generateIntSequence(STARTING_NUMBER, 0); + Assert.fail("Метод не кидает ошибку при вызове метода с нулевым вторым параметром"); + } + + catch (IllegalArgumentException ex) { + LOGGER.info("Получили ошибку, проверим ее текст"); + Assert.assertEquals("Метод бросает другую ошибку", ITEMS_COUNT_ERROR_MESSAGE, ex.getMessage()); + } + LOGGER.info("Метод выбрасывает ошибку"); + } + + /** + * Проверка метода на выброс исключения, если сумма двух аргументов будет + * больше допустимого максимального значения для типа Integer + */ + @Test + public void testThrowingExceptionIfSumIsGreaterMaxInteger() { + LOGGER.info("Вызовем метод так, чтобы сумма двух переданных параметров была больше Integer.MAX_VALUE"); + try { + ClassToBeTested.generateIntSequence(STARTING_NUMBER + 1, Integer.MAX_VALUE); + Assert.fail("Метод не кидает ошибку, если сумма двух аргументов больше Integer.MAX_VALUE"); + } + + catch (IllegalArgumentException ex) { + LOGGER.info("Получили ошибку, проверим ее текст"); + Assert.assertEquals("Метод бросает другую ошибку", GENERATOR_ERROR_MESSAGE, ex.getMessage()); + } + LOGGER.info("Метод бросает ошибку"); + } + + /** + * Проверка на корректную работу метода, если сумма двух аргументов + * равна максимальному допустимому значению типа Integer + */ + @Test + public void testCorrectIntSequenceIfSumIsMaxInteger() { + LOGGER.info("Вызовем метод так, чтобы сумма двух параметров равнялась Integer.MAX_VALUE"); + List intSequence = ClassToBeTested.generateIntSequence(STARTING_NUMBER, Integer.MAX_VALUE); + + LOGGER.info("Проверим, что метод на сгенерировал валидную последовательность"); + Assert.assertNotNull("Метод вернул null", intSequence); + Assert.assertFalse("Метод вернул пустую последовательность", intSequence.isEmpty()); + Assert.assertEquals("Размер последовательности не совпадает с переданным параметром", intSequence.size(), Integer.MAX_VALUE); + + LOGGER.info("Метод возвращает валидную последовательность"); + } + + /** + * Проверка на корректную работу метода, если сумма двух аргументов + * меньше максимального допустимого значения для типа Integer + */ + + @Test + public void testCorrectIntSequence() { + LOGGER.info("Вызовем метод так, чтобы сумма двух параметров была меньше Integer.MAX_VALUE"); + int startingNumber = STARTING_NUMBER; + List intSequence = ClassToBeTested.generateIntSequence(STARTING_NUMBER, 4); + + LOGGER.info("Проверим, что метод на сгенерировал валидную последовательность"); + Assert.assertNotNull("Метод вернул null", intSequence); + Assert.assertFalse("Метод вернул пустую последовательность", intSequence.isEmpty()); + Assert.assertEquals("Размер последовательности не совпадает с переданным параметром", intSequence.size(), 4); + + LOGGER.info("Проверим, что все элементы последовательности правильные"); + for (int element : intSequence) { + Assert.assertEquals("Элементы не совпадают", startingNumber++, element); + } + + LOGGER.info("Метод возвращает правильную последовательность"); + } + + +} diff --git a/target/classes/ru/odnoklassniki/ClassToBeTested.class b/target/classes/ru/odnoklassniki/ClassToBeTested.class new file mode 100644 index 0000000..2f7f0da Binary files /dev/null and b/target/classes/ru/odnoklassniki/ClassToBeTested.class differ diff --git a/target/test-classes/homework/TestGeneratorIntSequence.class b/target/test-classes/homework/TestGeneratorIntSequence.class new file mode 100644 index 0000000..a85ad4c Binary files /dev/null and b/target/test-classes/homework/TestGeneratorIntSequence.class differ diff --git a/target/test-classes/ru/odnoklassniki/exampleTests/TestBeforeAndAfter.class b/target/test-classes/ru/odnoklassniki/exampleTests/TestBeforeAndAfter.class new file mode 100644 index 0000000..ccb1042 Binary files /dev/null and b/target/test-classes/ru/odnoklassniki/exampleTests/TestBeforeAndAfter.class differ diff --git a/target/test-classes/ru/odnoklassniki/exampleTests/TestBeforeClassAndAfterClass.class b/target/test-classes/ru/odnoklassniki/exampleTests/TestBeforeClassAndAfterClass.class new file mode 100644 index 0000000..1ac784c Binary files /dev/null and b/target/test-classes/ru/odnoklassniki/exampleTests/TestBeforeClassAndAfterClass.class differ diff --git a/target/test-classes/ru/odnoklassniki/exampleTests/TestHamcrestMatchers.class b/target/test-classes/ru/odnoklassniki/exampleTests/TestHamcrestMatchers.class new file mode 100644 index 0000000..9ff4c6a Binary files /dev/null and b/target/test-classes/ru/odnoklassniki/exampleTests/TestHamcrestMatchers.class differ diff --git a/target/test-classes/ru/odnoklassniki/exampleTests/TestSampleNegativeTest1.class b/target/test-classes/ru/odnoklassniki/exampleTests/TestSampleNegativeTest1.class new file mode 100644 index 0000000..7990555 Binary files /dev/null and b/target/test-classes/ru/odnoklassniki/exampleTests/TestSampleNegativeTest1.class differ diff --git a/target/test-classes/ru/odnoklassniki/exampleTests/TestSampleTest1.class b/target/test-classes/ru/odnoklassniki/exampleTests/TestSampleTest1.class new file mode 100644 index 0000000..eefd3da Binary files /dev/null and b/target/test-classes/ru/odnoklassniki/exampleTests/TestSampleTest1.class differ diff --git a/target/test-classes/ru/odnoklassniki/stringSorter/TestStringSorter.class b/target/test-classes/ru/odnoklassniki/stringSorter/TestStringSorter.class new file mode 100644 index 0000000..e1d243d Binary files /dev/null and b/target/test-classes/ru/odnoklassniki/stringSorter/TestStringSorter.class differ