From 08889dcebcff24eb2cab9282913b83fdc77cc316 Mon Sep 17 00:00:00 2001 From: DerTyp7 Date: Fri, 1 Sep 2023 10:37:12 +0200 Subject: [PATCH] Add parameterized tests --- .../RomanCharConverterTest.java | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/src/test/java/de/tf/romanCharConverter/RomanCharConverterTest.java b/src/test/java/de/tf/romanCharConverter/RomanCharConverterTest.java index bef8e4a..8a21a38 100644 --- a/src/test/java/de/tf/romanCharConverter/RomanCharConverterTest.java +++ b/src/test/java/de/tf/romanCharConverter/RomanCharConverterTest.java @@ -2,6 +2,8 @@ package de.tf.romanCharConverter; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.CsvSource; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -13,6 +15,55 @@ public class RomanCharConverterTest { converter = new RomanCharConverter(); } + @ParameterizedTest(name = "romanString = {0}, result = {1}") + @CsvSource({ + "I, 1", + "V, 5", + "X, 10", + "L, 50", + "C, 100", + "D, 500", + "M, 1000", + "A, 5000"}) + public void testConvertOneSingleRomanNumber(String romanString, int result) { + assertEquals(result, converter.convert(romanString)); + } + + @ParameterizedTest(name = "romanString = {0}, result = {1}") + @CsvSource({ + "II, 2", + "XX, 20", + "CC, 200", + "MM, 2000", + "AA, 10000"}) + public void testConvertMultipleRomanNumber(String romanString, int result) { + assertEquals(result, converter.convert(romanString)); + } + + @ParameterizedTest(name = "romanString = {0}, result = {1}") + @CsvSource({ + "III, 3", + "XXX, 30", + "CCC, 300", + "MMM, 3000", + "MD, 1500"}) + public void testConvertMultipleRomanNumberSameChar(String romanString, int result) { + assertEquals(result, converter.convert(romanString)); + } + + @ParameterizedTest(name = "romanString = {0}, result = {1}") + @CsvSource({ + "IV, 4", + "IX, 9", + "XL, 40", + "XC, 90", + "CD, 400", + "CM, 900", + "XIV, 14"}) + public void testConvertMultipleRomanNumberSubtractChar(String romanString, int result) { + assertEquals(result, converter.convert(romanString)); + } + @Test public void givenSingleRomanChar_whenConvert_thenArabic(){ assertEquals(10, converter.convert("X"));