package com.sequenceiq.cloudbreak.converter;
import java.util.Collections;
import org.junit.Before;
import org.junit.Test;
import com.sequenceiq.cloudbreak.api.model.SecurityRuleRequest;
import com.sequenceiq.cloudbreak.controller.BadRequestException;
import com.sequenceiq.cloudbreak.domain.SecurityRule;
public class JsonToSecurityRuleConverterTest extends AbstractJsonConverterTest<SecurityRuleRequest> {
private JsonToSecurityRuleConverter underTest;
@Before
public void setUp() {
underTest = new JsonToSecurityRuleConverter();
}
@Test
public void testConvert() {
SecurityRule result = underTest.convert(createRequest("80,22,9443,1-65535"));
assertAllFieldsNotNull(result, Collections.singletonList("securityGroup"));
}
@Test
public void testConvert2() {
SecurityRule result = underTest.convert(createRequest("22,9443"));
assertAllFieldsNotNull(result, Collections.singletonList("securityGroup"));
}
@Test
public void testConvert3() {
SecurityRule result = underTest.convert(createRequest("1-65535"));
assertAllFieldsNotNull(result, Collections.singletonList("securityGroup"));
}
@Test
public void testConvert4() {
SecurityRule result = underTest.convert(createRequest("20-23,9400-9500"));
assertAllFieldsNotNull(result, Collections.singletonList("securityGroup"));
}
@Test
public void testConvert5() {
SecurityRule result = underTest.convert(createRequest("22,9400-9500"));
assertAllFieldsNotNull(result, Collections.singletonList("securityGroup"));
}
@Test(expected = BadRequestException.class)
public void testInvalidPorts() {
underTest.convert(createRequest("0,22,443,70000"));
}
@Test(expected = BadRequestException.class)
public void testInvalidPorts2() {
underTest.convert(createRequest("0-65535"));
}
@Test(expected = BadRequestException.class)
public void testInvalidPorts3() {
underTest.convert(createRequest("0"));
}
@Override
public Class<SecurityRuleRequest> getRequestClass() {
return SecurityRuleRequest.class;
}
private SecurityRuleRequest createRequest(String ports) {
SecurityRuleRequest request = new SecurityRuleRequest();
request.setPorts(ports);
request.setModifiable(true);
request.setProtocol("tcp");
request.setSubnet("0.0.0.0/0");
return request;
}
}