package test.codec.http2.model;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertThat;
import java.util.Arrays;
import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameter;
import org.junit.runners.Parameterized.Parameters;
import com.firefly.codec.http2.model.HostPort;
@RunWith(Parameterized.class)
public class HostPortTest {
@Parameters(name="{0}")
public static List<String[]> testCases()
{
String data[][] = new String[][] {
{"host","host",null},
{"host:80","host","80"},
{"10.10.10.1","10.10.10.1",null},
{"10.10.10.1:80","10.10.10.1","80"},
{"[0::0::0::1]","[0::0::0::1]",null},
{"[0::0::0::1]:80","[0::0::0::1]","80"},
{null,null,null},
{"host:",null,null},
{"",null,null},
{":80",null,"80"},
{"127.0.0.1:",null,null},
{"[0::0::0::0::1]:",null,null},
{"host:xxx",null,null},
{"127.0.0.1:xxx",null,null},
{"[0::0::0::0::1]:xxx",null,null},
{"host:-80",null,null},
{"127.0.0.1:-80",null,null},
{"[0::0::0::0::1]:-80",null,null},
};
return Arrays.asList(data);
}
@Parameter(0)
public String _authority;
@Parameter(1)
public String _expectedHost;
@Parameter(2)
public String _expectedPort;
@Test
public void test() {
try {
HostPort hostPort = new HostPort(_authority);
assertThat(hostPort.getHost(), is(_expectedHost));
if (_expectedPort == null)
assertThat(hostPort.getPort(), is(0));
else
assertThat(hostPort.getPort(), is(Integer.valueOf(_expectedPort)));
} catch (Exception e) {
assertNull(_expectedHost);
}
}
}