import static org.junit.Assert.assertThrows;
import static org.mockito.Mockito.when;
+import java.util.List;
import java.util.Map.Entry;
import java.util.Optional;
import org.junit.AfterClass;
import org.opendaylight.mdsal.dom.api.DOMYangTextSourceProvider;
import org.opendaylight.mdsal.dom.broker.DOMMountPointServiceImpl;
import org.opendaylight.mdsal.dom.spi.FixedDOMSchemaService;
+import org.opendaylight.restconf.common.ErrorTags;
import org.opendaylight.restconf.common.context.InstanceIdentifierContext;
import org.opendaylight.restconf.common.errors.RestconfDocumentedException;
import org.opendaylight.restconf.common.errors.RestconfError;
-import org.opendaylight.restconf.common.errors.RestconfError.ErrorTag;
-import org.opendaylight.restconf.common.errors.RestconfError.ErrorType;
import org.opendaylight.restconf.common.schema.SchemaExportContext;
import org.opendaylight.restconf.nb.rfc8040.TestRestconfUtils;
import org.opendaylight.restconf.nb.rfc8040.utils.RestconfConstants;
+import org.opendaylight.yangtools.yang.common.ErrorTag;
+import org.opendaylight.yangtools.yang.common.ErrorType;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.Revision;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
@RunWith(MockitoJUnitRunner.StrictStubs.class)
public class ParserIdentifierTest {
// mount point identifier
- private static final String MOUNT_POINT_IDENT =
- "mount-point:mount-container/point-number" + "/" + RestconfConstants.MOUNT;
+ private static final String MOUNT_POINT_IDENT = "mount-point:mount-container/point-number/yang-ext:mount";
// invalid mount point identifier
- private static final String INVALID_MOUNT_POINT_IDENT =
- "mount-point:point-number" + "/" + RestconfConstants.MOUNT;
+ private static final String INVALID_MOUNT_POINT_IDENT = "mount-point:point-number/yang-ext:mount";
// test identifier + expected result
private static final String TEST_IDENT =
@Before
public void setup() throws Exception {
- this.mountPointService = new DOMMountPointServiceImpl();
+ mountPointService = new DOMMountPointServiceImpl();
// create and register mount point
final YangInstanceIdentifier mountPointId = YangInstanceIdentifier.builder()
.getInstance();
// register mount point with null schema context
- when(this.mockMountPointService.getMountPoint(YangInstanceIdentifier.empty()))
- .thenReturn(Optional.of(this.mockMountPoint));
+ when(mockMountPointService.getMountPoint(YangInstanceIdentifier.empty()))
+ .thenReturn(Optional.of(mockMountPoint));
}
/**
*/
@Test
public void toInstanceIdentifierTest() {
- final InstanceIdentifierContext<?> context = ParserIdentifier.toInstanceIdentifier(
+ final InstanceIdentifierContext context = ParserIdentifier.toInstanceIdentifier(
TEST_IDENT, SCHEMA_CONTEXT, Optional.empty());
assertEquals("Returned not expected identifier",
*/
@Test
public void toInstanceIdentifierOtherModulesTest() {
- final InstanceIdentifierContext<?> context = ParserIdentifier.toInstanceIdentifier(
+ final InstanceIdentifierContext context = ParserIdentifier.toInstanceIdentifier(
TEST_IDENT_OTHERS, SCHEMA_CONTEXT, Optional.empty());
assertEquals("Returned not expected identifier",
*/
@Test
public void toInstanceIdentifierMountPointTest() {
- final InstanceIdentifierContext<?> context = ParserIdentifier.toInstanceIdentifier(
- MOUNT_POINT_IDENT + "/" + TEST_IDENT, SCHEMA_CONTEXT, Optional.of(this.mountPointService));
+ final InstanceIdentifierContext context = ParserIdentifier.toInstanceIdentifier(
+ MOUNT_POINT_IDENT + "/" + TEST_IDENT, SCHEMA_CONTEXT, Optional.of(mountPointService));
assertEquals("Returned not expected identifier",
TEST_IDENT_RESULT.toString(), context.getInstanceIdentifier().toString());
assertEquals("Mount point not found",
- this.mountPoint, context.getMountPoint());
+ mountPoint, context.getMountPoint());
assertEquals("Schema context from mount point expected",
SCHEMA_CONTEXT_ON_MOUNT_POINT, context.getSchemaContext());
*/
@Test
public void toInstanceIdentifierNullIdentifierTest() {
- final InstanceIdentifierContext<?> context = ParserIdentifier.toInstanceIdentifier(
+ final InstanceIdentifierContext context = ParserIdentifier.toInstanceIdentifier(
null, SCHEMA_CONTEXT, Optional.empty());
assertEquals("Returned not expected identifier",
YangInstanceIdentifier.empty(), context.getInstanceIdentifier());
*/
@Test
public void toInstanceIdentifierEmptyIdentifierTest() {
- final InstanceIdentifierContext<?> context = ParserIdentifier.toInstanceIdentifier(
+ final InstanceIdentifierContext context = ParserIdentifier.toInstanceIdentifier(
"", SCHEMA_CONTEXT, Optional.empty());
assertEquals("Returned not expected identifier",
YangInstanceIdentifier.empty(), context.getInstanceIdentifier());
public void toInstanceIdentifierMountPointInvalidIdentifierNegativeTest() {
RestconfDocumentedException ex = assertThrows(RestconfDocumentedException.class,
() -> ParserIdentifier.toInstanceIdentifier(INVALID_MOUNT_POINT_IDENT, SCHEMA_CONTEXT,
- Optional.of(this.mountPointService)));
+ Optional.of(mountPointService)));
}
/**
@Test
public void toInstanceIdentifierMissingMountPointNegativeTest() {
RestconfDocumentedException ex = assertThrows(RestconfDocumentedException.class,
- () -> ParserIdentifier.toInstanceIdentifier("" + "/" + RestconfConstants.MOUNT, SCHEMA_CONTEXT,
- Optional.of(this.mountPointService)));
- assertEquals("Not expected error type", RestconfError.ErrorType.PROTOCOL, ex.getErrors().get(0).getErrorType());
- assertEquals("Not expected error tag", ErrorTag.RESOURCE_DENIED_TRANSPORT, ex.getErrors().get(0).getErrorTag());
+ () -> ParserIdentifier.toInstanceIdentifier("/yang-ext:mount", SCHEMA_CONTEXT,
+ Optional.of(mountPointService)));
+ final List<RestconfError> errors = ex.getErrors();
+ assertEquals(1, errors.size());
+ assertEquals("Not expected error type", ErrorType.PROTOCOL, errors.get(0).getErrorType());
+ assertEquals("Not expected error tag", ErrorTags.RESOURCE_DENIED_TRANSPORT, errors.get(0).getErrorTag());
}
/**
@Test
public void toInstanceIdentifierMissingMountPointServiceNegativeTest() {
RestconfDocumentedException ex = assertThrows(RestconfDocumentedException.class,
- () -> ParserIdentifier.toInstanceIdentifier(RestconfConstants.MOUNT, SCHEMA_CONTEXT, Optional.empty()));
+ () -> ParserIdentifier.toInstanceIdentifier("yang-ext:mount", SCHEMA_CONTEXT, Optional.empty()));
assertEquals("Not expected error type", ErrorType.APPLICATION, ex.getErrors().get(0).getErrorType());
assertEquals("Not expected error tag", ErrorTag.OPERATION_FAILED, ex.getErrors().get(0).getErrorTag());
- assertEquals("Not expected error status code", 500, ex.getErrors().get(0).getErrorTag().getStatusCode());
}
/**
public void makeQNameFromIdentifierInvalidIdentifierNegativeTest() {
RestconfDocumentedException ex = assertThrows(RestconfDocumentedException.class,
() -> ParserIdentifier.makeQNameFromIdentifier(TEST_MODULE_REVISION + "/" + TEST_MODULE_NAME));
- assertEquals("Not expected error type", RestconfError.ErrorType.PROTOCOL, ex.getErrors().get(0).getErrorType());
- assertEquals("Not expected error tag", RestconfError.ErrorTag.INVALID_VALUE,
+ assertEquals("Not expected error type", ErrorType.PROTOCOL, ex.getErrors().get(0).getErrorType());
+ assertEquals("Not expected error tag", ErrorTag.INVALID_VALUE,
ex.getErrors().get(0).getErrorTag());
- assertEquals("Not expected error status code", 400, ex.getErrors().get(0).getErrorTag().getStatusCode());
}
/**
public void makeQNameFromIdentifierTooShortIdentifierNegativeTest() {
RestconfDocumentedException ex = assertThrows(RestconfDocumentedException.class,
() -> ParserIdentifier.makeQNameFromIdentifier(TEST_MODULE_NAME));
- assertEquals("Not expected error type", RestconfError.ErrorType.PROTOCOL, ex.getErrors().get(0).getErrorType());
- assertEquals("Not expected error tag", RestconfError.ErrorTag.INVALID_VALUE,
+ assertEquals("Not expected error type", ErrorType.PROTOCOL, ex.getErrors().get(0).getErrorType());
+ assertEquals("Not expected error tag", ErrorTag.INVALID_VALUE,
ex.getErrors().get(0).getErrorTag());
- assertEquals("Not expected error status code", 400, ex.getErrors().get(0).getErrorTag().getStatusCode());
}
/**
RestconfDocumentedException ex = assertThrows(RestconfDocumentedException.class,
() -> ParserIdentifier.makeQNameFromIdentifier(
MOUNT_POINT_IDENT + "/" + TEST_MODULE_REVISION + "/" + TEST_MODULE_NAME));
- assertEquals("Not expected error type", RestconfError.ErrorType.PROTOCOL, ex.getErrors().get(0).getErrorType());
- assertEquals("Not expected error tag", RestconfError.ErrorTag.INVALID_VALUE,
+ assertEquals("Not expected error type", ErrorType.PROTOCOL, ex.getErrors().get(0).getErrorType());
+ assertEquals("Not expected error tag", ErrorTag.INVALID_VALUE,
ex.getErrors().get(0).getErrorTag());
- assertEquals("Not expected error status code", 400, ex.getErrors().get(0).getErrorTag().getStatusCode());
}
/**
public void makeQNameFromIdentifierMountPointTooShortIdentifierNegativeTest() {
RestconfDocumentedException ex = assertThrows(RestconfDocumentedException.class,
() -> ParserIdentifier.makeQNameFromIdentifier(MOUNT_POINT_IDENT + "/" + TEST_MODULE_NAME));
- assertEquals("Not expected error type", RestconfError.ErrorType.PROTOCOL, ex.getErrors().get(0).getErrorType());
- assertEquals("Not expected error tag", RestconfError.ErrorTag.INVALID_VALUE,
+ assertEquals("Not expected error type", ErrorType.PROTOCOL, ex.getErrors().get(0).getErrorType());
+ assertEquals("Not expected error tag", ErrorTag.INVALID_VALUE,
ex.getErrors().get(0).getErrorTag());
- assertEquals("Not expected error status code", 400, ex.getErrors().get(0).getErrorTag().getStatusCode());
}
/**
public void makeQNameFromIdentifierEmptyIdentifierNegativeTest() {
RestconfDocumentedException ex = assertThrows(RestconfDocumentedException.class,
() -> ParserIdentifier.makeQNameFromIdentifier(""));
- assertEquals("Not expected error type", RestconfError.ErrorType.PROTOCOL, ex.getErrors().get(0).getErrorType());
- assertEquals("Not expected error tag", RestconfError.ErrorTag.INVALID_VALUE,
+ assertEquals("Not expected error type", ErrorType.PROTOCOL, ex.getErrors().get(0).getErrorType());
+ assertEquals("Not expected error tag", ErrorTag.INVALID_VALUE,
ex.getErrors().get(0).getErrorTag());
- assertEquals("Not expected error status code", 400, ex.getErrors().get(0).getErrorTag().getStatusCode());
}
/**
public void makeQNameFromIdentifierDoubleSlashNegativeTest() {
RestconfDocumentedException ex = assertThrows(RestconfDocumentedException.class,
() -> ParserIdentifier.makeQNameFromIdentifier(TEST_MODULE_NAME + "//" + TEST_MODULE_REVISION));
- assertEquals("Not expected error type", RestconfError.ErrorType.PROTOCOL, ex.getErrors().get(0).getErrorType());
- assertEquals("Not expected error tag", RestconfError.ErrorTag.INVALID_VALUE,
+ assertEquals("Not expected error type", ErrorType.PROTOCOL, ex.getErrors().get(0).getErrorType());
+ assertEquals("Not expected error tag", ErrorTag.INVALID_VALUE,
ex.getErrors().get(0).getErrorTag());
- assertEquals("Not expected error status code", 400, ex.getErrors().get(0).getErrorTag().getStatusCode());
}
/**
final Module module = exportContext.getModule();
assertNotNull("Export context should contains test module", module);
- assertEquals("Returned not expected module name",
- TEST_MODULE_NAME, module.getName());
+ assertEquals("Returned not expected module name", TEST_MODULE_NAME, module.getName());
assertEquals("Returned not expected module revision",
Revision.ofNullable(TEST_MODULE_REVISION), module.getRevision());
- assertEquals("Returned not expected module namespace",
- TEST_MODULE_NAMESPACE, module.getNamespace().toString());
+ assertEquals("Returned not expected module namespace", TEST_MODULE_NAMESPACE, module.getNamespace().toString());
}
/**
RestconfDocumentedException ex = assertThrows(RestconfDocumentedException.class,
() -> ParserIdentifier.toSchemaExportContextFromIdentifier(
SCHEMA_CONTEXT, TEST_MODULE_REVISION + "/" + TEST_MODULE_NAME, null, sourceProvider));
- assertEquals("Not expected error type", RestconfError.ErrorType.PROTOCOL, ex.getErrors().get(0).getErrorType());
- assertEquals("Not expected error tag", RestconfError.ErrorTag.INVALID_VALUE,
+ assertEquals("Not expected error type", ErrorType.PROTOCOL, ex.getErrors().get(0).getErrorType());
+ assertEquals("Not expected error tag", ErrorTag.INVALID_VALUE,
ex.getErrors().get(0).getErrorTag());
- assertEquals("Not expected error status code", 400, ex.getErrors().get(0).getErrorTag().getStatusCode());
}
/**
final SchemaExportContext exportContext = ParserIdentifier.toSchemaExportContextFromIdentifier(
SCHEMA_CONTEXT,
MOUNT_POINT_IDENT + "/" + TEST_MODULE_NAME + "/" + TEST_MODULE_REVISION,
- this.mountPointService, sourceProvider);
+ mountPointService, sourceProvider);
final Module module = exportContext.getModule();
assertNotNull("Export context should contains test module", module);
final SchemaExportContext exportContext = ParserIdentifier.toSchemaExportContextFromIdentifier(
SCHEMA_CONTEXT,
MOUNT_POINT_IDENT + "/" + "not-existing-module" + "/" + "2016-01-01",
- this.mountPointService, sourceProvider);
+ mountPointService, sourceProvider);
assertNotNull("Export context should be parsed", exportContext);
assertNull("Not-existing module should be null", exportContext.getModule());
public void toSchemaExportContextFromIdentifierMountPointInvalidIdentifierNegativeTest() {
RestconfDocumentedException ex = assertThrows(RestconfDocumentedException.class,
() -> ParserIdentifier.toSchemaExportContextFromIdentifier(SCHEMA_CONTEXT,
- MOUNT_POINT_IDENT + "/" + TEST_MODULE_REVISION + "/" + TEST_MODULE_NAME, this.mountPointService,
+ MOUNT_POINT_IDENT + "/" + TEST_MODULE_REVISION + "/" + TEST_MODULE_NAME, mountPointService,
sourceProvider));
- assertEquals("Not expected error type", RestconfError.ErrorType.PROTOCOL, ex.getErrors().get(0).getErrorType());
- assertEquals("Not expected error tag", RestconfError.ErrorTag.INVALID_VALUE,
+ assertEquals("Not expected error type", ErrorType.PROTOCOL, ex.getErrors().get(0).getErrorType());
+ assertEquals("Not expected error tag", ErrorTag.INVALID_VALUE,
ex.getErrors().get(0).getErrorTag());
- assertEquals("Not expected error status code", 400, ex.getErrors().get(0).getErrorTag().getStatusCode());
}
/**
@Test
public void toSchemaExportContextFromIdentifierMountPointNullSchemaContextNegativeTest() {
assertThrows(NullPointerException.class, () -> ParserIdentifier.toSchemaExportContextFromIdentifier(null,
- MOUNT_POINT_IDENT + "/" + TEST_MODULE_NAME + "/" + TEST_MODULE_REVISION, this.mountPointService,
+ MOUNT_POINT_IDENT + "/" + TEST_MODULE_NAME + "/" + TEST_MODULE_REVISION, mountPointService,
sourceProvider));
}
@Test
public void toSchemaExportContextFromIdentifierNullSchemaContextBehindMountPointNegativeTest() {
assertThrows(IllegalStateException.class, () -> ParserIdentifier.toSchemaExportContextFromIdentifier(
- SCHEMA_CONTEXT, "/" + RestconfConstants.MOUNT + "/" + TEST_MODULE_NAME + "/" + TEST_MODULE_REVISION,
- this.mockMountPointService, sourceProvider));
+ SCHEMA_CONTEXT, "/yang-ext:mount/" + TEST_MODULE_NAME + "/" + TEST_MODULE_REVISION,
+ mockMountPointService, sourceProvider));
}
/**
*/
@Test
public void invokeRpcTest() {
- final InstanceIdentifierContext<?> result = ParserIdentifier.toInstanceIdentifier(
+ final InstanceIdentifierContext result = ParserIdentifier.toInstanceIdentifier(
INVOKE_RPC, SCHEMA_CONTEXT, Optional.empty());
// RPC schema node
*/
@Test
public void invokeRpcOnMountPointTest() {
- final InstanceIdentifierContext<?> result = ParserIdentifier.toInstanceIdentifier(
- MOUNT_POINT_IDENT + "/" + INVOKE_RPC, SCHEMA_CONTEXT, Optional.of(this.mountPointService));
+ final InstanceIdentifierContext result = ParserIdentifier.toInstanceIdentifier(
+ MOUNT_POINT_IDENT + "/" + INVOKE_RPC, SCHEMA_CONTEXT, Optional.of(mountPointService));
// RPC schema node
final QName rpcQName = result.getSchemaNode().getQName();
// other fields
assertEquals(IdentifierCodec.deserialize(INVOKE_RPC, SCHEMA_CONTEXT), result.getInstanceIdentifier());
- assertEquals(this.mountPoint, result.getMountPoint());
+ assertEquals(mountPoint, result.getMountPoint());
assertEquals(SCHEMA_CONTEXT_ON_MOUNT_POINT, result.getSchemaContext());
}
*/
@Test
public void invokeActionTest() {
- final InstanceIdentifierContext<?> result = ParserIdentifier
+ final InstanceIdentifierContext result = ParserIdentifier
.toInstanceIdentifier(INVOKE_ACTION, SCHEMA_CONTEXT, Optional.empty());
// Action schema node
*/
@Test
public void invokeActionOnMountPointTest() {
- final InstanceIdentifierContext<?> result = ParserIdentifier
+ final InstanceIdentifierContext result = ParserIdentifier
.toInstanceIdentifier(MOUNT_POINT_IDENT + "/" + INVOKE_ACTION, SCHEMA_CONTEXT,
- Optional.of(this.mountPointService));
+ Optional.of(mountPointService));
// Action schema node
final QName actionQName = result.getSchemaNode().getQName();
// other fields
assertEquals(IdentifierCodec.deserialize(INVOKE_ACTION, SCHEMA_CONTEXT), result.getInstanceIdentifier());
- assertEquals(this.mountPoint, result.getMountPoint());
+ assertEquals(mountPoint, result.getMountPoint());
assertEquals(SCHEMA_CONTEXT_ON_MOUNT_POINT, result.getSchemaContext());
}
}