- String policyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE);
- LegacyOperationalPolicy policyToCreate = standardCoder.decode(policyString, LegacyOperationalPolicy.class);
- LegacyOperationalPolicy createdPolicy = operationalPolicyProvider.createOperationalPolicy(policyToCreate);
- assertNotNull(createdPolicy);
- assertEquals("operational.restart", createdPolicy.getPolicyId());
- assertTrue(createdPolicy.getContent().startsWith("controlLoop%3A%0A%20%20version%3A%202.0.0%0A%20%20"));
- }).doesNotThrowAnyException();
+ String policyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE);
+ LegacyOperationalPolicy policyToCreate = standardCoder.decode(policyString, LegacyOperationalPolicy.class);
+ LegacyOperationalPolicy createdPolicy = operationalPolicyProvider.createOperationalPolicy(policyToCreate);
+ assertNotNull(createdPolicy);
+ assertEquals("operational.restart", createdPolicy.getPolicyId());
+ assertTrue(createdPolicy.getContent().startsWith("controlLoop%3A%0A%20%20version%3A%202.0.0%0A%20%20"));
+
+ assertThatThrownBy(() -> {
+ String badPolicyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE_WITH_NO_VERSION);
+ LegacyOperationalPolicy badPolicyToCreate =
+ standardCoder.decode(badPolicyString, LegacyOperationalPolicy.class);
+ operationalPolicyProvider.createOperationalPolicy(badPolicyToCreate);
+ }).hasMessage("mandatory field 'policy-version' is missing in the policy: operational.scaleout");
+
+ assertThatThrownBy(() -> {
+ String duplicatePolicyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE);
+ LegacyOperationalPolicy duplicatePolicyToCreate =
+ standardCoder.decode(duplicatePolicyString, LegacyOperationalPolicy.class);
+ operationalPolicyProvider.createOperationalPolicy(duplicatePolicyToCreate);
+ }).hasMessage("operational policy operational.restart:1 already exists; its latest version is 1");