diff options
Diffstat (limited to 'config-provisioning/src/test/java')
-rw-r--r-- | config-provisioning/src/test/java/com/yahoo/config/provision/NodeFlavorsTest.java | 52 |
1 files changed, 49 insertions, 3 deletions
diff --git a/config-provisioning/src/test/java/com/yahoo/config/provision/NodeFlavorsTest.java b/config-provisioning/src/test/java/com/yahoo/config/provision/NodeFlavorsTest.java index ec3f73a8194..55ffa821e26 100644 --- a/config-provisioning/src/test/java/com/yahoo/config/provision/NodeFlavorsTest.java +++ b/config-provisioning/src/test/java/com/yahoo/config/provision/NodeFlavorsTest.java @@ -2,22 +2,47 @@ package com.yahoo.config.provision; import com.yahoo.config.provisioning.FlavorsConfig; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.ExpectedException; import java.util.ArrayList; import java.util.List; -import static org.junit.Assert.assertEquals; +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; + public class NodeFlavorsTest { + @Rule + public final ExpectedException exception = ExpectedException.none(); + + @Test + public void testReplacesWithBadValue() { + FlavorsConfig.Builder builder = new FlavorsConfig.Builder(); + List<FlavorsConfig.Flavor.Builder> flavorBuilderList = new ArrayList<>(); + FlavorsConfig.Flavor.Builder flavorBuilder = new FlavorsConfig.Flavor.Builder(); + FlavorsConfig.Flavor.Replaces.Builder flavorReplacesBuilder = new FlavorsConfig.Flavor.Replaces.Builder(); + flavorReplacesBuilder.name("non-existing-config"); + flavorBuilder.name("strawberry").cost(2).replaces.add(flavorReplacesBuilder); + flavorBuilderList.add(flavorBuilder); + builder.flavor(flavorBuilderList); + FlavorsConfig config = new FlavorsConfig(builder); + exception.expect(IllegalStateException.class); + exception.expectMessage("Replaces for strawberry pointing to a non existing flavor: non-existing-config"); + new NodeFlavors(config); + } + @Test public void testConfigParsing() { FlavorsConfig.Builder builder = new FlavorsConfig.Builder(); List<FlavorsConfig.Flavor.Builder> flavorBuilderList = new ArrayList<>(); { FlavorsConfig.Flavor.Builder flavorBuilder = new FlavorsConfig.Flavor.Builder(); - flavorBuilder.name("strawberry").cost(2); + FlavorsConfig.Flavor.Replaces.Builder flavorReplacesBuilder = new FlavorsConfig.Flavor.Replaces.Builder(); + flavorReplacesBuilder.name("banana"); + flavorBuilder.name("strawberry").cost(2).replaces.add(flavorReplacesBuilder); flavorBuilderList.add(flavorBuilder); } { @@ -28,7 +53,28 @@ public class NodeFlavorsTest { builder.flavor(flavorBuilderList); FlavorsConfig config = new FlavorsConfig(builder); NodeFlavors nodeFlavors = new NodeFlavors(config); - assertEquals(3, nodeFlavors.getFlavor("banana").get().cost()); + assertThat(nodeFlavors.getFlavor("banana").get().cost(), is(3)); + } + + @Test + public void testRetiredFlavorWithoutReplacement() { + FlavorsConfig.Builder builder = new FlavorsConfig.Builder(); + List<FlavorsConfig.Flavor.Builder> flavorBuilderList = new ArrayList<>(); + { + FlavorsConfig.Flavor.Builder flavorBuilder = new FlavorsConfig.Flavor.Builder(); + flavorBuilder.name("retired").retired(true); + flavorBuilderList.add(flavorBuilder); + } + { + FlavorsConfig.Flavor.Builder flavorBuilder = new FlavorsConfig.Flavor.Builder(); + flavorBuilder.name("chocolate"); + flavorBuilderList.add(flavorBuilder); + } + builder.flavor(flavorBuilderList); + FlavorsConfig config = new FlavorsConfig(builder); + exception.expect(IllegalStateException.class); + exception.expectMessage("Flavor 'retired' is retired, but has no replacement"); + new NodeFlavors(config); } } |