diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2019-11-28 13:16:12 +0100 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2019-11-28 13:16:12 +0100 |
commit | c996baf47cb18a12b87f7ad39b914a818e07108b (patch) | |
tree | d7172fbf847964ac3075cd72eb749fb3f6f99a35 /controller-server | |
parent | 40aa32608e141ae88b55e46a3023a0d0bc78b6f7 (diff) |
Add unit test for result merging
Diffstat (limited to 'controller-server')
-rw-r--r-- | controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/systemflags/SystemFlagsDeployResultTest.java | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/systemflags/SystemFlagsDeployResultTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/systemflags/SystemFlagsDeployResultTest.java index 0bbc0c97cf6..104bb91a8cb 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/systemflags/SystemFlagsDeployResultTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/systemflags/SystemFlagsDeployResultTest.java @@ -5,6 +5,8 @@ import com.yahoo.config.provision.SystemName; import com.yahoo.vespa.flags.FlagId; import com.yahoo.vespa.hosted.controller.api.systemflags.v1.FlagsTarget; import com.yahoo.vespa.hosted.controller.api.systemflags.v1.wire.WireSystemFlagsDeployResult; +import com.yahoo.vespa.hosted.controller.integration.ZoneApiMock; +import com.yahoo.vespa.hosted.controller.integration.ZoneRegistryMock; import org.junit.Test; import java.util.List; @@ -33,4 +35,37 @@ public class SystemFlagsDeployResultTest { assertThat(wire.errors).hasSize(1); assertThat(wire.errors.get(0).flagId).isEqualTo(flagTwo.toString()); } + + @Test + public void identical_errors_and_changes_from_multiple_targets_are_merged() { + ZoneApiMock prodUsWest1Zone = ZoneApiMock.fromId("prod.us-west-1"); + ZoneRegistryMock registry = new ZoneRegistryMock(SystemName.cd).setZones(prodUsWest1Zone); + FlagsTarget prodUsWest1Target = FlagsTarget.forConfigServer(registry, prodUsWest1Zone.getId()); + FlagsTarget controllerTarget = FlagsTarget.forController(SystemName.cd); + + FlagId flagOne = new FlagId("flagone"); + FlagId flagTwo = new FlagId("flagtwo"); + + SystemFlagsDeployResult resultController = + new SystemFlagsDeployResult( + List.of(FlagDataChange.deleted(flagOne, controllerTarget)), + List.of(OperationError.deleteFailed("message", controllerTarget, flagTwo))); + SystemFlagsDeployResult resultProdUsWest1 = + new SystemFlagsDeployResult( + List.of(FlagDataChange.deleted(flagOne, prodUsWest1Target)), + List.of(OperationError.deleteFailed("message", prodUsWest1Target, flagTwo))); + + var results = List.of(resultController, resultProdUsWest1); + SystemFlagsDeployResult mergedResult = merge(results); + + List<FlagDataChange> changes = mergedResult.flagChanges(); + assertThat(changes).hasSize(1); + FlagDataChange change = changes.get(0); + assertThat(change.targets()).containsOnly(controllerTarget, prodUsWest1Target); + + List<OperationError> errors = mergedResult.errors(); + assertThat(errors).hasSize(1); + OperationError error = errors.get(0); + assertThat(error.targets()).containsOnly(controllerTarget, prodUsWest1Target); + } }
\ No newline at end of file |