From 5503731d866d318e9d5a2183608092a9d332dfe6 Mon Sep 17 00:00:00 2001 From: Jan Srnicek Date: Mon, 23 Oct 2017 10:57:13 +0200 Subject: HONEYCOMB-405 - Revert fix for indirect updates If indirect update(delete+create) fails in a way, that delete passed, but update part failed, delete part must be reverted Moves reverter creation to MDTG and test cases related too it to ModifiableDataTreeDelegatorRevertTest Fixes tracking of allready processed changes by tracking them from perspective of processModifications() method Introduces UpdateFailedException as replacement for BulkUpdateException(now thrown also for single updates) Separates ReverterImpl from FlatWriterRegistry and ads unit tests Change-Id: If0066d0716d9476be89b1d99985b6745becac15e Signed-off-by: Jan Srnicek --- .../write/registry/BulkUpdateExceptionTest.java | 63 ---------------------- .../write/registry/RevertFailedExceptionTest.java | 55 ------------------- 2 files changed, 118 deletions(-) delete mode 100644 infra/translate-api/src/test/java/io/fd/honeycomb/translate/write/registry/BulkUpdateExceptionTest.java delete mode 100644 infra/translate-api/src/test/java/io/fd/honeycomb/translate/write/registry/RevertFailedExceptionTest.java (limited to 'infra/translate-api/src/test') diff --git a/infra/translate-api/src/test/java/io/fd/honeycomb/translate/write/registry/BulkUpdateExceptionTest.java b/infra/translate-api/src/test/java/io/fd/honeycomb/translate/write/registry/BulkUpdateExceptionTest.java deleted file mode 100644 index 9623db5bc..000000000 --- a/infra/translate-api/src/test/java/io/fd/honeycomb/translate/write/registry/BulkUpdateExceptionTest.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2016 Cisco and/or its affiliates. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.fd.honeycomb.translate.write.registry; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.verify; - -import com.google.common.collect.Sets; -import io.fd.honeycomb.translate.write.DataObjectUpdate; -import io.fd.honeycomb.translate.write.WriteContext; -import java.util.HashSet; -import org.junit.Before; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; -import org.opendaylight.yangtools.yang.binding.DataObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; - -public class BulkUpdateExceptionTest { - - private InstanceIdentifier id = InstanceIdentifier.create(DataObject.class); - - @Mock - private WriteContext writeContext; - @Mock - private WriterRegistry.Reverter reverter; - @Mock - private DataObject before; - @Mock - private DataObject after; - - @Before - public void setUp() throws Exception { - MockitoAnnotations.initMocks(this); - } - - @Test - public void testRevert() throws Exception { - final HashSet> failedIds = Sets.newHashSet(id); - final WriterRegistry.BulkUpdateException bulkUpdateException = - new WriterRegistry.BulkUpdateException(id, DataObjectUpdate.create(id, before, after), - failedIds, reverter, new RuntimeException()); - - assertEquals(failedIds, bulkUpdateException.getUnrevertedSubtrees()); - - bulkUpdateException.revertChanges(writeContext); - verify(reverter).revert(writeContext); - } -} \ No newline at end of file diff --git a/infra/translate-api/src/test/java/io/fd/honeycomb/translate/write/registry/RevertFailedExceptionTest.java b/infra/translate-api/src/test/java/io/fd/honeycomb/translate/write/registry/RevertFailedExceptionTest.java deleted file mode 100644 index 6502235d0..000000000 --- a/infra/translate-api/src/test/java/io/fd/honeycomb/translate/write/registry/RevertFailedExceptionTest.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2016 Cisco and/or its affiliates. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.fd.honeycomb.translate.write.registry; - -import static org.junit.Assert.assertEquals; - -import com.google.common.collect.Sets; -import io.fd.honeycomb.translate.write.DataObjectUpdate; -import java.util.Set; -import org.junit.Before; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; -import org.opendaylight.yangtools.yang.binding.DataObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; - -public class RevertFailedExceptionTest { - - private InstanceIdentifier id = InstanceIdentifier.create(DataObject.class); - @Mock - private WriterRegistry.Reverter reverter; - @Mock - private DataObject before; - @Mock - private DataObject after; - - @Before - public void setUp() throws Exception { - MockitoAnnotations.initMocks(this); - } - - @Test - public void testNonRevert() throws Exception { - final Set> notReverted = Sets.newHashSet(id); - final WriterRegistry.Reverter.RevertFailedException revertFailedException = - new WriterRegistry.Reverter.RevertFailedException( - new WriterRegistry.BulkUpdateException(id, DataObjectUpdate.create(id, before, after), - notReverted, reverter, new RuntimeException())); - assertEquals(notReverted, revertFailedException.getNotRevertedChanges()); - } -} \ No newline at end of file -- cgit 1.2.3-korg