import com.google.common.base.Optional;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.SettableFuture;
-import java.util.concurrent.Semaphore;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.opendaylight.controller.cluster.datastore.identifiers.TransactionIdentifier;
+import org.opendaylight.controller.sal.core.spi.data.DOMStoreReadTransaction;
import org.opendaylight.controller.sal.core.spi.data.DOMStoreReadWriteTransaction;
+import org.opendaylight.controller.sal.core.spi.data.DOMStoreWriteTransaction;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
public class LocalTransactionContextTest {
@Mock
- Semaphore limiter;
+ OperationLimiter limiter;
@Mock
TransactionIdentifier identifier;
@Before
public void setUp(){
MockitoAnnotations.initMocks(this);
- localTransactionContext = new LocalTransactionContext(identifier, readWriteTransaction, new OperationCompleter(limiter));
+ localTransactionContext = new LocalTransactionContext(identifier, readWriteTransaction, limiter) {
+ @Override
+ protected DOMStoreWriteTransaction getWriteDelegate() {
+ return readWriteTransaction;
+ }
+
+ @Override
+ protected DOMStoreReadTransaction getReadDelegate() {
+ return readWriteTransaction;
+ }
+ };
}
@Test
public void testWrite(){
YangInstanceIdentifier yangInstanceIdentifier = YangInstanceIdentifier.builder().build();
- NormalizedNode normalizedNode = mock(NormalizedNode.class);
+ NormalizedNode<?, ?> normalizedNode = mock(NormalizedNode.class);
localTransactionContext.writeData(yangInstanceIdentifier, normalizedNode);
verify(limiter).release();
verify(readWriteTransaction).write(yangInstanceIdentifier, normalizedNode);
@Test
public void testMerge(){
YangInstanceIdentifier yangInstanceIdentifier = YangInstanceIdentifier.builder().build();
- NormalizedNode normalizedNode = mock(NormalizedNode.class);
+ NormalizedNode<?, ?> normalizedNode = mock(NormalizedNode.class);
localTransactionContext.mergeData(yangInstanceIdentifier, normalizedNode);
verify(limiter).release();
verify(readWriteTransaction).merge(yangInstanceIdentifier, normalizedNode);
@Test
public void testRead(){
YangInstanceIdentifier yangInstanceIdentifier = YangInstanceIdentifier.builder().build();
- NormalizedNode normalizedNode = mock(NormalizedNode.class);
+ NormalizedNode<?, ?> normalizedNode = mock(NormalizedNode.class);
doReturn(Futures.immediateCheckedFuture(Optional.of(normalizedNode))).when(readWriteTransaction).read(yangInstanceIdentifier);
localTransactionContext.readData(yangInstanceIdentifier, SettableFuture.<Optional<NormalizedNode<?,?>>>create());
verify(limiter).release();
}
-}
\ No newline at end of file
+}