package org.opendaylight.controller.cluster.datastore;
-import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import com.google.common.base.Optional;
import org.opendaylight.controller.md.cluster.datastore.model.SchemaContextHelper;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateTip;
+import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
+import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
+import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.TipProducingDataTree;
import org.opendaylight.yangtools.yang.data.api.schema.tree.TreeType;
import org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeFactory;
import org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaValidationFailedException;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ShardRecoveryCoordinatorTest extends AbstractTest {
+ private static final Logger FOO_LOGGER = LoggerFactory.getLogger("foo");
private ShardDataTree peopleDataTree;
private SchemaContext peopleSchemaContext;
private SchemaContext carsSchemaContext;
+ private ShardRecoveryCoordinator coordinator;
@Before
public void setUp() {
final Shard mockShard = Mockito.mock(Shard.class);
peopleDataTree = new ShardDataTree(mockShard, peopleSchemaContext, TreeType.OPERATIONAL);
- }
-
- @Deprecated
- @Test
- public void testAppendRecoveredLogEntryDataTreeCandidatePayload() {
- final ShardRecoveryCoordinator coordinator = new ShardRecoveryCoordinator(peopleDataTree,
- null, "foobar", LoggerFactory.getLogger("foo"));
+ coordinator = ShardRecoveryCoordinator.create(peopleDataTree, "foobar", FOO_LOGGER);
coordinator.startLogRecoveryBatch(10);
- try {
- coordinator.appendRecoveredLogEntry(DataTreeCandidatePayload.create(createCar()));
- } catch (final SchemaValidationFailedException e) {
- fail("SchemaValidationFailedException should not happen if pruning is done");
- }
-
- coordinator.applyCurrentLogRecoveryBatch();
}
@Test
public void testAppendRecoveredLogEntryCommitTransactionPayload() throws IOException {
- final ShardRecoveryCoordinator coordinator = new ShardRecoveryCoordinator(peopleDataTree,
- null, "foobar", LoggerFactory.getLogger("foo"));
- coordinator.startLogRecoveryBatch(10);
try {
coordinator.appendRecoveredLogEntry(CommitTransactionPayload.create(nextTransactionId(), createCar()));
} catch (final SchemaValidationFailedException e) {
@Test
public void testApplyRecoverySnapshot() {
- final ShardRecoveryCoordinator coordinator = new ShardRecoveryCoordinator(peopleDataTree,
- null, "foobar", LoggerFactory.getLogger("foo"));
- coordinator.startLogRecoveryBatch(10);
-
coordinator.applyRecoverySnapshot(createSnapshot());
- assertEquals(false, readCars(peopleDataTree).isPresent());
- assertEquals(true, readPeople(peopleDataTree).isPresent());
+ assertFalse(readCars(peopleDataTree).isPresent());
+ assertTrue(readPeople(peopleDataTree).isPresent());
}
@Test
public void testApplyCurrentLogRecoveryBatch() {
- final ShardRecoveryCoordinator coordinator = new ShardRecoveryCoordinator(peopleDataTree,
- null, "foobar", LoggerFactory.getLogger("foo"));
- coordinator.startLogRecoveryBatch(10);
-
try {
coordinator.applyCurrentLogRecoveryBatch();
} catch (final IllegalArgumentException e) {
}
}
- private DataTreeCandidateTip createCar() {
- final TipProducingDataTree dataTree = InMemoryDataTreeFactory.getInstance().create(TreeType.OPERATIONAL);
- dataTree.setSchemaContext(carsSchemaContext);
+ private DataTreeCandidate createCar() {
+ final DataTree dataTree = new InMemoryDataTreeFactory().create(
+ DataTreeConfiguration.DEFAULT_OPERATIONAL, carsSchemaContext);
final DataTreeSnapshot snapshot = dataTree.takeSnapshot();
}
private Optional<NormalizedNode<?,?>> readCars(final ShardDataTree shardDataTree) {
- final TipProducingDataTree dataTree = shardDataTree.getDataTree();
+ final DataTree dataTree = shardDataTree.getDataTree();
// FIXME: this should not be called here
dataTree.setSchemaContext(peopleSchemaContext);
}
private Optional<NormalizedNode<?,?>> readPeople(final ShardDataTree shardDataTree) {
- final TipProducingDataTree dataTree = shardDataTree.getDataTree();
+ final DataTree dataTree = shardDataTree.getDataTree();
// FIXME: this should not be called here
dataTree.setSchemaContext(peopleSchemaContext);
}
private static ShardSnapshotState createSnapshot() {
- final TipProducingDataTree dataTree = InMemoryDataTreeFactory.getInstance().create(TreeType.OPERATIONAL);
- dataTree.setSchemaContext(SchemaContextHelper.select(SchemaContextHelper.CARS_YANG,
+ final DataTree dataTree = new InMemoryDataTreeFactory().create(
+ DataTreeConfiguration.DEFAULT_OPERATIONAL, SchemaContextHelper.select(SchemaContextHelper.CARS_YANG,
SchemaContextHelper.PEOPLE_YANG));
DataTreeSnapshot snapshot = dataTree.takeSnapshot();