/******************************************************************************* * Copyright (c) 2016 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.openshift.test.ui.validator; import java.util.Arrays; import org.jboss.tools.openshift.internal.ui.wizard.deployimage.PodPortValidator; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mockito; import org.mockito.runners.MockitoJUnitRunner; import com.openshift.restclient.model.IServicePort; /** * * @author Viacheslav Kabanovich * */ @RunWith(MockitoJUnitRunner.class) public class PodPortValidatorTest extends AbstractValidatorTest { static final String CURRENT_VALUE = "999"; static PodPortValidator createPodPortValidator() { IServicePort port1 = Mockito.mock(IServicePort.class); Mockito.when(port1.getPort()).thenReturn(1000); Mockito.when(port1.getTargetPort()).thenReturn("3000"); IServicePort port2 = Mockito.mock(IServicePort.class); Mockito.when(port2.getPort()).thenReturn(2000); Mockito.when(port2.getTargetPort()).thenReturn("home"); return new PodPortValidator(CURRENT_VALUE, Arrays.asList(port1, port2)); } public PodPortValidatorTest() { super(createPodPortValidator()); } @Test public void testShouldReturnPassIfSameValue() { assertPass(CURRENT_VALUE); } @Test public void testShouldReturnPassIfConforms() { assertPass("30000"); assertPass("name"); assertPass("name5"); assertPass("name-09-09"); } @Test public void testShouldReturnFalseIfEmptyValue() { assertCancel(""); } @Test public void testShouldReturnFalseIfLargeNumber() { assertFailure("100000"); } @Test public void testShouldReturnFalseIfNegative() { assertFailure("-1"); } @Test public void testShouldReturnFalseIfLong() { StringBuilder sb = new StringBuilder(); for (int i = 0; i < 63; i++) { sb.append("x"); } assertPass(sb.toString()); sb.append("x"); assertFailure(sb.toString()); } @Test public void testShouldReturnFalseIfUsedTargetPort() { assertFailure("3000"); assertFailure("home"); } @Test public void testShouldReturnFalseIfNotValidName() { assertFailure("-g"); assertFailure("@x"); assertFailure("x$x"); } }