*/
package org.opendaylight.controller.sal.restconf.impl.test;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertSame;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.inOrder;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.when;
-import static org.junit.Assert.*;
-import static org.mockito.Mockito.*;
-
-import java.util.Collections;
+import com.google.common.collect.ImmutableMap;
+import com.google.common.util.concurrent.Futures;
import java.util.Map;
import java.util.concurrent.Future;
-
import org.junit.Before;
import org.junit.Test;
import org.mockito.InOrder;
import org.opendaylight.controller.sal.core.api.mount.MountInstance;
import org.opendaylight.controller.sal.rest.impl.XmlToCompositeNodeProvider;
import org.opendaylight.controller.sal.restconf.impl.BrokerFacade;
-import org.opendaylight.controller.sal.restconf.impl.ResponseException;
+import org.opendaylight.controller.sal.restconf.impl.RestconfDocumentedException;
+import org.opendaylight.controller.sal.restconf.impl.RestconfError;
import org.opendaylight.controller.sal.streams.listeners.ListenerAdapter;
import org.opendaylight.controller.sal.streams.listeners.Notificator;
import org.opendaylight.yangtools.concepts.ListenerRegistration;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.opendaylight.yangtools.yang.data.api.CompositeNode;
import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier;
-
-import com.google.common.collect.ImmutableMap;
-import com.google.common.util.concurrent.Futures;
+import org.opendaylight.yangtools.yang.data.impl.ImmutableCompositeNode;
/**
* Unit tests for BrokerFacade.
assertSame( "readOperationalDataBehindMountPoint", dataNode, actualNode );
}
- @Test(expected=ResponseException.class)
+ @Test(expected=RestconfDocumentedException.class)
public void testReadOperationalDataWithNoDataBroker() {
brokerFacade.setDataService( null );
@SuppressWarnings("unchecked")
@Test
- public void testInvokeRpc() {
+ public void testInvokeRpc() throws Exception {
RpcResult<CompositeNode> expResult = mock( RpcResult.class );
Future<RpcResult<CompositeNode>> future = Futures.immediateFuture( expResult );
when( mockConsumerSession.rpc( qname, dataNode ) ).thenReturn( future );
- RpcResult<CompositeNode> actualResult = brokerFacade.invokeRpc( qname, dataNode );
+ Future<RpcResult<CompositeNode>> actualFuture = brokerFacade.invokeRpc( qname, dataNode );
+ assertNotNull( "Future is null", actualFuture );
+ RpcResult<CompositeNode> actualResult = actualFuture.get();
assertSame( "invokeRpc", expResult, actualResult );
}
- @Test(expected=ResponseException.class)
- public void testInvokeRpcWithException() {
- Exception mockEx = new Exception( "mock" );
- Future<RpcResult<CompositeNode>> future = Futures.immediateFailedFuture( mockEx );
- when( mockConsumerSession.rpc( qname, dataNode ) ).thenReturn( future );
-
- brokerFacade.invokeRpc( qname, dataNode );
- }
-
- @Test(expected=ResponseException.class)
+ @Test(expected=RestconfDocumentedException.class)
public void testInvokeRpcWithNoConsumerSession() {
brokerFacade.setContext( null );
inOrder.verify( mockTransaction ).commit();
}
- @Test
+ @Test(expected=RestconfDocumentedException.class)
public void testCommitConfigurationDataPostAlreadyExists() {
when( dataBroker.beginTransaction() ).thenReturn( mockTransaction );
mockTransaction.putConfigurationData( instanceID, dataNode );
- when( mockTransaction.getCreatedConfigurationData() )
- .thenReturn( Collections.<InstanceIdentifier,CompositeNode>emptyMap() );
-
- Future<RpcResult<TransactionStatus>> actualFuture =
- brokerFacade.commitConfigurationDataPost( instanceID, dataNode );
-
- assertNull( "Retruned non-null Future", actualFuture );
- verify( mockTransaction, never() ).commit();
+ when ( mockTransaction.readConfigurationData( instanceID ) )
+ .thenReturn( dataNode );
+ try {
+ brokerFacade.commitConfigurationDataPost( instanceID, dataNode );
+ }
+ catch (RestconfDocumentedException e) {
+ assertEquals("getErrorTag",
+ RestconfError.ErrorTag.DATA_EXISTS, e.getErrors().get( 0 ).getErrorTag());
+ throw e;
+ }
}
@Test
inOrder.verify( mockTransaction ).commit();
}
- @Test
+ @Test(expected=RestconfDocumentedException.class)
public void testCommitConfigurationDataPostBehindMountPointAlreadyExists() {
when( mockMountInstance.beginTransaction() ).thenReturn( mockTransaction );
mockTransaction.putConfigurationData( instanceID, dataNode );
- when( mockTransaction.getCreatedConfigurationData() )
- .thenReturn( Collections.<InstanceIdentifier,CompositeNode>emptyMap() );
-
- Future<RpcResult<TransactionStatus>> actualFuture =
- brokerFacade.commitConfigurationDataPostBehindMountPoint( mockMountInstance,
- instanceID, dataNode );
-
- assertNull( "Retruned non-null Future", actualFuture );
- verify( mockTransaction, never() ).commit();
+ when ( mockTransaction.readConfigurationData( instanceID ) )
+ .thenReturn( dataNode );
+ try {
+ brokerFacade.commitConfigurationDataPostBehindMountPoint( mockMountInstance,
+ instanceID, dataNode );
+ }
+ catch (RestconfDocumentedException e) {
+ assertEquals("getErrorTag",
+ RestconfError.ErrorTag.DATA_EXISTS, e.getErrors().get( 0 ).getErrorTag());
+ throw e;
+ }
}
@Test
Future<RpcResult<TransactionStatus>> expFuture = Futures.immediateFuture( null );
when( dataBroker.beginTransaction() ).thenReturn( mockTransaction );
+ when(mockTransaction.readConfigurationData(any(InstanceIdentifier.class))).thenReturn(
+ ImmutableCompositeNode.builder().toInstance());
mockTransaction.removeConfigurationData( instanceID );
when( mockTransaction.commit() ).thenReturn( expFuture );
Future<RpcResult<TransactionStatus>> expFuture = Futures.immediateFuture( null );
when( mockMountInstance.beginTransaction() ).thenReturn( mockTransaction );
+ when(mockTransaction.readConfigurationData(any(InstanceIdentifier.class))).thenReturn(
+ ImmutableCompositeNode.builder().toInstance());
mockTransaction.removeConfigurationData( instanceID );
when( mockTransaction.commit() ).thenReturn( expFuture );