package com.example;

import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;

import java.util.Arrays;
import java.util.Collection;

@RunWith(Parameterized.class)
public class OddNumberCheckerTest {
    private Integer inputNumber;
    private Boolean expectedResult;
    private OddNumberChecker oddNumberChecker;

    @Before
    public void initialize(){
        oddNumberChecker = new OddNumberChecker();
    }

    public OddNumberCheckerTest(Integer inputNumber, Boolean expectedResult) {
        this.inputNumber = inputNumber;
        this.expectedResult = expectedResult;
    }

    @Parameterized.Parameters
    public static Collection primeNumber(){
        return Arrays.asList(new Object[][]{
                {2, false},
                {6, false},
                {19, true},
                {22,false},
                {23,true},
                {1, true}
        });
    }

    @Test
    public void testPrimeNumberChecker(){
        System.out.println("Parameterized Number is: " + inputNumber);
        Assert.assertEquals(expectedResult,
                oddNumberChecker.validate(inputNumber));
    }

}