package org.ovirt.engine.ui.uicommonweb.validation; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; import java.util.Collections; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.Spy; import org.mockito.junit.MockitoJUnitRunner; import org.ovirt.engine.core.common.validation.CidrValidator; @RunWith(MockitoJUnitRunner.class) public class CidrValidationTest { private static final String BAD_CIDR_FORMAT = "BAD_CIDR_FORMAT"; //$NON-NLS-1$ private static final String CIDR_IS_NOT_A_NETWORK_ADDRESS = "CIDR_IS_NOT_A_NETWORK_ADDRESS"; //$NON-NLS-1$ private static final String CIDR = "CIDR"; //$NON-NLS-1$ @Spy private CidrValidation underTest; @Mock private CidrValidator mockedCidrValidator; @Rule public ExpectedException expectedException = ExpectedException.none(); @Before public void setup() { underTest = spy(new CidrValidation()); doReturn(mockedCidrValidator).when(underTest).getCidrValidator(); doReturn(BAD_CIDR_FORMAT).when(underTest).getThisFieldMustContainCidrInFormatMsg(); doReturn(CIDR_IS_NOT_A_NETWORK_ADDRESS).when(underTest).getCidrNotNetworkAddress(); } @Test public void checkCidrBadFormat() { doReturn(false).when(mockedCidrValidator).isCidrFormatValid(CIDR); ValidationResult actualResult = underTest.validate(CIDR); ValidationResult expectedResult = new ValidationResult(false, Collections.singletonList(BAD_CIDR_FORMAT)); assertEquals(expectedResult, actualResult); } @Test public void checkCidrCidrIsNotANetworkAddress() { doReturn(true).when(mockedCidrValidator).isCidrFormatValid(CIDR); doReturn(false).when(mockedCidrValidator).isCidrNetworkAddressValid(CIDR); ValidationResult actualResult = underTest.validate(CIDR); ValidationResult expectedResult = new ValidationResult(false, Collections.singletonList(CIDR_IS_NOT_A_NETWORK_ADDRESS)); assertEquals(expectedResult, actualResult); } @Test public void checkValidCidr() { doReturn(true).when(mockedCidrValidator).isCidrFormatValid(CIDR); doReturn(true).when(mockedCidrValidator).isCidrNetworkAddressValid(CIDR); ValidationResult actualResult = underTest.validate(CIDR); ValidationResult expectedResult = new ValidationResult(); assertEquals(expectedResult, actualResult); } @Test public void checkStringInputAssertion() { expectedException.expectMessage(CidrValidation.ILLEGAL_ARGUMENT_EXCEPTION_MESSAGE); expectedException.expect(IllegalArgumentException.class); ValidationResult actualResult = underTest.validate(new Object()); } }