package com.linkedin.restli.client.config;
import static org.testng.Assert.assertEquals;
import java.util.Optional;
import org.testng.annotations.Test;
import com.linkedin.restli.common.ResourceMethod;
public class TestRequestConfigElement {
@Test
public void testParsingFallback() throws RequestConfigKeyParsingException {
RequestConfigElement el = RequestConfigElement.parse("timeoutMs", "*.*/*.*", 100L);
assertEquals(el.getInboundName(), Optional.empty());
assertEquals(el.getInboundOp(), Optional.empty());
assertEquals(el.getInboundOpName(), Optional.empty());
assertEquals(el.getOutboundName(), Optional.empty());
assertEquals(el.getOutboundOp(), Optional.empty());
assertEquals(el.getOutboundOpName(), Optional.empty());
assertEquals(el.getProperty(), "timeoutMs");
assertEquals(el.getValue(), 100L);
}
@Test
public void testParsingFullSimpleSpec() throws RequestConfigKeyParsingException {
RequestConfigElement el = RequestConfigElement.parse("batchingEnabled", "profileView.GET/profile.BATCH_GET", true);
assertEquals(el.getInboundName().get(), "profileView");
assertEquals(el.getInboundOp().get(), ResourceMethod.GET.toString().toUpperCase());
assertEquals(el.getInboundOpName(), Optional.empty());
assertEquals(el.getOutboundName().get(), "profile");
assertEquals(el.getOutboundOp().get(), ResourceMethod.BATCH_GET);
assertEquals(el.getOutboundOpName(), Optional.empty());
assertEquals(el.getProperty(), "batchingEnabled");
assertEquals(el.getValue(), true);
}
@Test
public void testParsingFullComplexSpec() throws RequestConfigKeyParsingException {
RequestConfigElement el = RequestConfigElement.parse("batchingEnabled", "profileView.ACTION-doIt/profile.FINDER-all", true);
assertEquals(el.getInboundName().get(), "profileView");
assertEquals(el.getInboundOp().get(), ResourceMethod.ACTION.toString().toUpperCase());
assertEquals(el.getInboundOpName().get(), "doIt");
assertEquals(el.getOutboundName().get(), "profile");
assertEquals(el.getOutboundOp().get(), ResourceMethod.FINDER);
assertEquals(el.getOutboundOpName().get(), "all");
assertEquals(el.getProperty(), "batchingEnabled");
assertEquals(el.getValue(), true);
}
@Test(expectedExceptions = {RequestConfigKeyParsingException.class})
public void testParsingMissingComplexOpName() throws RequestConfigKeyParsingException {
RequestConfigElement.parse("timeoutMs", "*.*/*.FINDER", 100L);
}
@Test(expectedExceptions = {RequestConfigKeyParsingException.class})
public void testParsingInvalidProperty() throws RequestConfigKeyParsingException {
RequestConfigElement.parse("blah", "*.*/*.*", 100L);
}
@Test(expectedExceptions = {RequestConfigKeyParsingException.class})
public void testParsingInvalidValue() throws RequestConfigKeyParsingException {
RequestConfigElement.parse("timeoutMs", "*.*/*.*", true);
}
@Test(expectedExceptions = {RequestConfigKeyParsingException.class})
public void testParsingInvalidKey() throws RequestConfigKeyParsingException {
RequestConfigElement.parse("timeoutMs", "greetings.POST/greetings.DELETE/timeoutMs", 100L);
}
}