diff --git a/java/google/registry/flows/CheckApiAction.java b/java/google/registry/flows/CheckApiAction.java index 5e5e540bd..842d27ffa 100644 --- a/java/google/registry/flows/CheckApiAction.java +++ b/java/google/registry/flows/CheckApiAction.java @@ -28,7 +28,7 @@ import static google.registry.monitoring.whitebox.CheckApiMetric.Status.INVALID_ import static google.registry.monitoring.whitebox.CheckApiMetric.Status.INVALID_REGISTRY_PHASE; import static google.registry.monitoring.whitebox.CheckApiMetric.Status.SUCCESS; import static google.registry.monitoring.whitebox.CheckApiMetric.Status.UNKNOWN_ERROR; -import static google.registry.monitoring.whitebox.CheckApiMetric.Tier.PREMINUM; +import static google.registry.monitoring.whitebox.CheckApiMetric.Tier.PREMIUM; import static google.registry.monitoring.whitebox.CheckApiMetric.Tier.STANDARD; import static google.registry.pricing.PricingEngineProxy.isDomainPremium; import static google.registry.util.DomainNameUtils.canonicalizeDomainName; @@ -139,10 +139,9 @@ public class CheckApiAction implements Runnable { responseBuilder.put("status", "success").put("available", availability.equals(AVAILABLE)); boolean isPremium = isDomainPremium(domainString, now); - metricBuilder.tier(isPremium ? PREMINUM : STANDARD); - if (availability.equals(AVAILABLE)) { - responseBuilder.put("tier", isPremium ? "premium" : "standard"); - } else { + metricBuilder.tier(isPremium ? PREMIUM : STANDARD); + responseBuilder.put("tier", isPremium ? "premium" : "standard"); + if (!AVAILABLE.equals(availability)) { responseBuilder.put("reason", errorMsg); } return responseBuilder.build(); diff --git a/java/google/registry/monitoring/whitebox/CheckApiMetric.java b/java/google/registry/monitoring/whitebox/CheckApiMetric.java index 33b869f9d..d69e6eccf 100644 --- a/java/google/registry/monitoring/whitebox/CheckApiMetric.java +++ b/java/google/registry/monitoring/whitebox/CheckApiMetric.java @@ -28,7 +28,7 @@ public abstract class CheckApiMetric { /** Price tier of a domain name. */ public enum Tier { STANDARD("standard"), - PREMINUM("premium"); + PREMIUM("premium"); private final String displayLabel; diff --git a/javatests/google/registry/flows/CheckApiActionTest.java b/javatests/google/registry/flows/CheckApiActionTest.java index 0c19e8dec..e9e98cf40 100644 --- a/javatests/google/registry/flows/CheckApiActionTest.java +++ b/javatests/google/registry/flows/CheckApiActionTest.java @@ -20,7 +20,7 @@ import static google.registry.model.registry.Registry.TldState.PREDELEGATION; import static google.registry.monitoring.whitebox.CheckApiMetric.Availability.AVAILABLE; import static google.registry.monitoring.whitebox.CheckApiMetric.Availability.REGISTERED; import static google.registry.monitoring.whitebox.CheckApiMetric.Availability.RESERVED; -import static google.registry.monitoring.whitebox.CheckApiMetric.Tier.PREMINUM; +import static google.registry.monitoring.whitebox.CheckApiMetric.Tier.PREMIUM; import static google.registry.monitoring.whitebox.CheckApiMetric.Tier.STANDARD; import static google.registry.testing.DatastoreHelper.createTld; import static google.registry.testing.DatastoreHelper.persistActiveDomain; @@ -70,7 +70,9 @@ public class CheckApiActionTest { persistResource( Registry.get("example") .asBuilder() - .setReservedLists(persistReservedList("example-reserved", "foo,FULLY_BLOCKED")) + .setReservedLists( + persistReservedList( + "example-reserved", "foo,FULLY_BLOCKED", "gold,RESERVED_FOR_SPECIFIC_USE")) .build()); } @@ -213,14 +215,15 @@ public class CheckApiActionTest { "available", true, "tier", "premium"); - verifySuccessMetric(PREMINUM, AVAILABLE); + verifySuccessMetric(PREMIUM, AVAILABLE); } @Test - public void testSuccess_alreadyRegistered() { + public void testSuccess_registered_standard() { persistActiveDomain("somedomain.example"); assertThat(getCheckResponse("somedomain.example")) .containsExactly( + "tier", "standard", "status", "success", "available", false, "reason", "In use"); @@ -229,9 +232,10 @@ public class CheckApiActionTest { } @Test - public void testSuccess_reserved() { + public void testSuccess_reserved_standard() { assertThat(getCheckResponse("foo.example")) .containsExactly( + "tier", "standard", "status", "success", "available", false, "reason", "Reserved"); @@ -239,6 +243,31 @@ public class CheckApiActionTest { verifySuccessMetric(STANDARD, RESERVED); } + @Test + public void testSuccess_registered_premium() { + persistActiveDomain("rich.example"); + assertThat(getCheckResponse("rich.example")) + .containsExactly( + "tier", "premium", + "status", "success", + "available", false, + "reason", "In use"); + + verifySuccessMetric(PREMIUM, REGISTERED); + } + + @Test + public void testSuccess_reserved_premium() { + assertThat(getCheckResponse("gold.example")) + .containsExactly( + "tier", "premium", + "status", "success", + "available", false, + "reason", "Reserved"); + + verifySuccessMetric(PREMIUM, RESERVED); + } + private void verifySuccessMetric(Tier tier, Availability availability) { verify(checkApiMetrics).incrementCheckApiRequest(metricCaptor.capture()); CheckApiMetric metric = metricCaptor.getValue();