mirror of
https://github.com/google/nomulus.git
synced 2025-08-04 00:42:12 +02:00
Refactor most of OT&E verification code to exist in utils class
This does not change existing functionality but will allow us to use this common code in the yet-to-be-created web console action as well. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=227159346
This commit is contained in:
parent
2777018d6a
commit
2e7d71b238
22 changed files with 754 additions and 470 deletions
147
javatests/google/registry/model/OteStatsTest.java
Normal file
147
javatests/google/registry/model/OteStatsTest.java
Normal file
|
@ -0,0 +1,147 @@
|
|||
// Copyright 2018 The Nomulus Authors. All Rights Reserved.
|
||||
//
|
||||
// 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 google.registry.model;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import google.registry.model.OteStats.StatType;
|
||||
import google.registry.testing.AppEngineRule;
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.runners.JUnit4;
|
||||
|
||||
@RunWith(JUnit4.class)
|
||||
public final class OteStatsTest {
|
||||
|
||||
@Rule public final AppEngineRule appEngine = AppEngineRule.builder().withDatastore().build();
|
||||
|
||||
@Before
|
||||
public void init() throws Exception {
|
||||
OteStatsTestHelper.setupHistoryEntries();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSuccess_allPass() {
|
||||
OteStats stats = OteStats.getFromRegistrar("blobio");
|
||||
assertThat(stats.getFailures()).isEmpty();
|
||||
assertThat(stats.getSize()).isEqualTo(31);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSuccess_someFailures() {
|
||||
OteStatsTestHelper.deleteHostDeleteHistoryEntry();
|
||||
OteStatsTestHelper.deleteDomainCreateHistoryEntry();
|
||||
OteStatsTestHelper.deleteDomainRestoreHistoryEntry();
|
||||
OteStats stats = OteStats.getFromRegistrar("blobio");
|
||||
assertThat(stats.getFailures())
|
||||
.containsExactly(
|
||||
StatType.DOMAIN_CREATES_IDN, StatType.DOMAIN_RESTORES, StatType.HOST_DELETES)
|
||||
.inOrder();
|
||||
assertThat(stats.getSize()).isEqualTo(35);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSuccess_toString() {
|
||||
OteStats stats = OteStats.getFromRegistrar("blobio");
|
||||
String expected =
|
||||
"contact creates: 0\n"
|
||||
+ "contact deletes: 0\n"
|
||||
+ "contact transfer approves: 0\n"
|
||||
+ "contact transfer cancels: 0\n"
|
||||
+ "contact transfer rejects: 0\n"
|
||||
+ "contact transfer requests: 0\n"
|
||||
+ "contact updates: 0\n"
|
||||
+ "domain application creates: 0\n"
|
||||
+ "domain application creates landrush: 0\n"
|
||||
+ "domain application creates sunrise: 0\n"
|
||||
+ "domain application deletes: 0\n"
|
||||
+ "domain application updates: 0\n"
|
||||
+ "domain autorenews: 0\n"
|
||||
+ "domain creates: 5\n"
|
||||
+ "domain creates ascii: 4\n"
|
||||
+ "domain creates idn: 1\n"
|
||||
+ "domain creates start date sunrise: 1\n"
|
||||
+ "domain creates with claims notice: 1\n"
|
||||
+ "domain creates with fee: 1\n"
|
||||
+ "domain creates with sec dns: 1\n"
|
||||
+ "domain creates without sec dns: 4\n"
|
||||
+ "domain deletes: 2\n"
|
||||
+ "domain renews: 0\n"
|
||||
+ "domain restores: 1\n"
|
||||
+ "domain transfer approves: 1\n"
|
||||
+ "domain transfer cancels: 1\n"
|
||||
+ "domain transfer rejects: 1\n"
|
||||
+ "domain transfer requests: 1\n"
|
||||
+ "domain updates: 1\n"
|
||||
+ "domain updates with sec dns: 1\n"
|
||||
+ "domain updates without sec dns: 0\n"
|
||||
+ "host creates: 1\n"
|
||||
+ "host creates external: 0\n"
|
||||
+ "host creates subordinate: 1\n"
|
||||
+ "host deletes: 1\n"
|
||||
+ "host updates: 1\n"
|
||||
+ "unclassified flows: 0\n"
|
||||
+ "TOTAL: 31";
|
||||
assertThat(stats.toString()).isEqualTo(expected);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMissingHostDeletes_toString() {
|
||||
OteStatsTestHelper.deleteHostDeleteHistoryEntry();
|
||||
OteStats stats = OteStats.getFromRegistrar("blobio");
|
||||
String expected =
|
||||
"contact creates: 0\n"
|
||||
+ "contact deletes: 0\n"
|
||||
+ "contact transfer approves: 0\n"
|
||||
+ "contact transfer cancels: 0\n"
|
||||
+ "contact transfer rejects: 0\n"
|
||||
+ "contact transfer requests: 0\n"
|
||||
+ "contact updates: 0\n"
|
||||
+ "domain application creates: 0\n"
|
||||
+ "domain application creates landrush: 0\n"
|
||||
+ "domain application creates sunrise: 0\n"
|
||||
+ "domain application deletes: 0\n"
|
||||
+ "domain application updates: 0\n"
|
||||
+ "domain autorenews: 0\n"
|
||||
+ "domain creates: 5\n"
|
||||
+ "domain creates ascii: 4\n"
|
||||
+ "domain creates idn: 1\n"
|
||||
+ "domain creates start date sunrise: 1\n"
|
||||
+ "domain creates with claims notice: 1\n"
|
||||
+ "domain creates with fee: 1\n"
|
||||
+ "domain creates with sec dns: 1\n"
|
||||
+ "domain creates without sec dns: 4\n"
|
||||
+ "domain deletes: 2\n"
|
||||
+ "domain renews: 0\n"
|
||||
+ "domain restores: 1\n"
|
||||
+ "domain transfer approves: 1\n"
|
||||
+ "domain transfer cancels: 1\n"
|
||||
+ "domain transfer rejects: 1\n"
|
||||
+ "domain transfer requests: 1\n"
|
||||
+ "domain updates: 1\n"
|
||||
+ "domain updates with sec dns: 1\n"
|
||||
+ "domain updates without sec dns: 0\n"
|
||||
+ "host creates: 1\n"
|
||||
+ "host creates external: 0\n"
|
||||
+ "host creates subordinate: 1\n"
|
||||
+ "host deletes: 0\n"
|
||||
+ "host updates: 10\n"
|
||||
+ "unclassified flows: 0\n"
|
||||
+ "TOTAL: 39";
|
||||
assertThat(stats.toString()).isEqualTo(expected);
|
||||
}
|
||||
}
|
159
javatests/google/registry/model/OteStatsTestHelper.java
Normal file
159
javatests/google/registry/model/OteStatsTestHelper.java
Normal file
|
@ -0,0 +1,159 @@
|
|||
// Copyright 2017 The Nomulus Authors. All Rights Reserved.
|
||||
//
|
||||
// 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 google.registry.model;
|
||||
|
||||
import static google.registry.testing.DatastoreHelper.deleteResource;
|
||||
import static google.registry.testing.DatastoreHelper.persistPremiumList;
|
||||
import static google.registry.testing.DatastoreHelper.persistResource;
|
||||
import static google.registry.testing.TestDataHelper.loadBytes;
|
||||
import static google.registry.util.DateTimeUtils.END_OF_TIME;
|
||||
|
||||
import google.registry.model.eppcommon.Trid;
|
||||
import google.registry.model.reporting.HistoryEntry;
|
||||
import google.registry.model.reporting.HistoryEntry.Type;
|
||||
import java.io.IOException;
|
||||
|
||||
public final class OteStatsTestHelper {
|
||||
|
||||
private static HistoryEntry hostDeleteHistoryEntry;
|
||||
private static HistoryEntry domainCreateHistoryEntry;
|
||||
private static HistoryEntry domainRestoreHistoryEntry;
|
||||
|
||||
public static void setupHistoryEntries() throws IOException {
|
||||
persistPremiumList("default_sandbox_list", "sandbox,USD 1000");
|
||||
persistResource(
|
||||
new HistoryEntry.Builder()
|
||||
.setClientId("blobio-1")
|
||||
.setType(Type.DOMAIN_CREATE)
|
||||
.setXmlBytes(getBytes("domain_create_sunrise.xml"))
|
||||
.build());
|
||||
domainCreateHistoryEntry =
|
||||
persistResource(
|
||||
new HistoryEntry.Builder()
|
||||
.setClientId("blobio-1")
|
||||
.setType(Type.DOMAIN_CREATE)
|
||||
.setXmlBytes(getBytes("domain_create_idn.xml"))
|
||||
.build());
|
||||
persistResource(
|
||||
new HistoryEntry.Builder()
|
||||
.setClientId("blobio-1")
|
||||
.setType(Type.DOMAIN_CREATE)
|
||||
.setXmlBytes(getBytes("domain_create_claim_notice.xml"))
|
||||
.build());
|
||||
persistResource(
|
||||
new HistoryEntry.Builder()
|
||||
.setClientId("blobio-1")
|
||||
.setType(Type.DOMAIN_CREATE)
|
||||
.setXmlBytes(getBytes("domain_create_anchor_tenant_fee_standard.xml"))
|
||||
.build());
|
||||
persistResource(
|
||||
new HistoryEntry.Builder()
|
||||
.setClientId("blobio-1")
|
||||
.setType(Type.DOMAIN_CREATE)
|
||||
.setXmlBytes(getBytes("domain_create_dsdata.xml"))
|
||||
.build());
|
||||
persistResource(
|
||||
new HistoryEntry.Builder()
|
||||
.setClientId("blobio-1")
|
||||
.setType(Type.DOMAIN_DELETE)
|
||||
.setXmlBytes(getBytes("domain_delete.xml"))
|
||||
.build());
|
||||
persistResource(
|
||||
new HistoryEntry.Builder()
|
||||
.setClientId("blobio-2")
|
||||
.setType(Type.DOMAIN_DELETE)
|
||||
.setXmlBytes(getBytes("domain_delete.xml"))
|
||||
.build());
|
||||
domainRestoreHistoryEntry =
|
||||
persistResource(
|
||||
new HistoryEntry.Builder()
|
||||
.setClientId("blobio-1")
|
||||
.setType(Type.DOMAIN_RESTORE)
|
||||
.setXmlBytes(getBytes("domain_restore.xml"))
|
||||
.build());
|
||||
persistResource(
|
||||
new HistoryEntry.Builder()
|
||||
.setClientId("blobio-1")
|
||||
.setType(Type.DOMAIN_TRANSFER_APPROVE)
|
||||
.setXmlBytes(getBytes("domain_transfer_approve.xml"))
|
||||
.build());
|
||||
persistResource(
|
||||
new HistoryEntry.Builder()
|
||||
.setClientId("blobio-1")
|
||||
.setType(Type.DOMAIN_TRANSFER_CANCEL)
|
||||
.setXmlBytes(getBytes("domain_transfer_cancel.xml"))
|
||||
.build());
|
||||
persistResource(
|
||||
new HistoryEntry.Builder()
|
||||
.setClientId("blobio-1")
|
||||
.setType(Type.DOMAIN_TRANSFER_REJECT)
|
||||
.setXmlBytes(getBytes("domain_transfer_reject.xml"))
|
||||
.build());
|
||||
persistResource(
|
||||
new HistoryEntry.Builder()
|
||||
.setClientId("blobio-1")
|
||||
.setType(Type.DOMAIN_TRANSFER_REQUEST)
|
||||
.setXmlBytes(getBytes("domain_transfer_request.xml"))
|
||||
.build());
|
||||
persistResource(
|
||||
new HistoryEntry.Builder()
|
||||
.setClientId("blobio-1")
|
||||
.setType(Type.DOMAIN_UPDATE)
|
||||
.setXmlBytes(getBytes("domain_update_with_secdns.xml"))
|
||||
.build());
|
||||
persistResource(
|
||||
new HistoryEntry.Builder()
|
||||
.setClientId("blobio-1")
|
||||
.setType(Type.HOST_CREATE)
|
||||
.setXmlBytes(getBytes("host_create_complete.xml"))
|
||||
.build());
|
||||
hostDeleteHistoryEntry =
|
||||
persistResource(
|
||||
new HistoryEntry.Builder()
|
||||
.setClientId("blobio-1")
|
||||
.setType(Type.HOST_DELETE)
|
||||
.setXmlBytes(getBytes("host_delete.xml"))
|
||||
.build());
|
||||
// Persist 10 host updates for a total of 25 history entries. Since these also sort last by
|
||||
// modification time, when these cause all tests to pass, only the first will be recorded and
|
||||
// the rest will be skipped.
|
||||
for (int i = 0; i < 10; i++) {
|
||||
persistResource(
|
||||
new HistoryEntry.Builder()
|
||||
.setClientId("blobio-1")
|
||||
.setType(Type.HOST_UPDATE)
|
||||
.setXmlBytes(getBytes("host_update.xml"))
|
||||
.setTrid(Trid.create(null, String.format("blahtrid-%d", i)))
|
||||
.setModificationTime(END_OF_TIME)
|
||||
.build());
|
||||
}
|
||||
}
|
||||
|
||||
public static void deleteHostDeleteHistoryEntry() {
|
||||
deleteResource(hostDeleteHistoryEntry);
|
||||
}
|
||||
|
||||
public static void deleteDomainCreateHistoryEntry() {
|
||||
deleteResource(domainCreateHistoryEntry);
|
||||
}
|
||||
|
||||
public static void deleteDomainRestoreHistoryEntry() {
|
||||
deleteResource(domainRestoreHistoryEntry);
|
||||
}
|
||||
|
||||
private static byte[] getBytes(String filename) throws IOException {
|
||||
return loadBytes(OteStatsTestHelper.class, filename).read();
|
||||
}
|
||||
}
|
29
javatests/google/registry/model/testdata/domain_create_anchor_tenant_fee_standard.xml
vendored
Normal file
29
javatests/google/registry/model/testdata/domain_create_anchor_tenant_fee_standard.xml
vendored
Normal file
|
@ -0,0 +1,29 @@
|
|||
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
|
||||
<command>
|
||||
<create>
|
||||
<domain:create
|
||||
xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
|
||||
<domain:name>example.tld</domain:name>
|
||||
<domain:period unit="y">2</domain:period>
|
||||
<domain:registrant>jd1234</domain:registrant>
|
||||
<domain:contact type="admin">jd1234</domain:contact>
|
||||
<domain:contact type="tech">jd1234</domain:contact>
|
||||
<domain:authInfo>
|
||||
<domain:pw>abcdefghijklmnop</domain:pw>
|
||||
</domain:authInfo>
|
||||
</domain:create>
|
||||
</create>
|
||||
<extension>
|
||||
<metadata:metadata xmlns:metadata="urn:google:params:xml:ns:metadata-1.0">
|
||||
<metadata:reason>anchor-tenant-test</metadata:reason>
|
||||
<metadata:requestedByRegistrar>false</metadata:requestedByRegistrar>
|
||||
<metadata:anchorTenant>true</metadata:anchorTenant>
|
||||
</metadata:metadata>
|
||||
<fee:create xmlns:fee="urn:ietf:params:xml:ns:fee-0.6">
|
||||
<fee:currency>USD</fee:currency>
|
||||
<fee:fee>26.00</fee:fee>
|
||||
</fee:create>
|
||||
</extension>
|
||||
<clTRID>RegistryTool</clTRID>
|
||||
</command>
|
||||
</epp>
|
17
javatests/google/registry/model/testdata/domain_delete.xml
vendored
Normal file
17
javatests/google/registry/model/testdata/domain_delete.xml
vendored
Normal file
|
@ -0,0 +1,17 @@
|
|||
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
|
||||
<command>
|
||||
<delete>
|
||||
<domain:delete
|
||||
xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
|
||||
<domain:name>example.tld</domain:name>
|
||||
</domain:delete>
|
||||
</delete>
|
||||
<extension>
|
||||
<metadata:metadata xmlns:metadata="urn:google:params:xml:ns:metadata-1.0">
|
||||
<metadata:reason>Deleted by registry administrator: Test</metadata:reason>
|
||||
<metadata:requestedByRegistrar>false</metadata:requestedByRegistrar>
|
||||
</metadata:metadata>
|
||||
</extension>
|
||||
<clTRID>RegistryTool</clTRID>
|
||||
</command>
|
||||
</epp>
|
13
javatests/google/registry/model/testdata/host_create_complete.xml
vendored
Normal file
13
javatests/google/registry/model/testdata/host_create_complete.xml
vendored
Normal file
|
@ -0,0 +1,13 @@
|
|||
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
|
||||
<command>
|
||||
<create>
|
||||
<host:create xmlns:host="urn:ietf:params:xml:ns:host-1.0">
|
||||
<host:name>example.tld</host:name>
|
||||
<host:addr ip="v4">162.100.102.99</host:addr>
|
||||
<host:addr ip="v4">4.5.6.7</host:addr>
|
||||
<host:addr ip="v6">2001:0db8:85a3:0000:0000:8a2e:0370:7334</host:addr>
|
||||
</host:create>
|
||||
</create>
|
||||
<clTRID>RegistryTool</clTRID>
|
||||
</command>
|
||||
</epp>
|
17
javatests/google/registry/model/testdata/host_delete.xml
vendored
Normal file
17
javatests/google/registry/model/testdata/host_delete.xml
vendored
Normal file
|
@ -0,0 +1,17 @@
|
|||
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
|
||||
<command>
|
||||
<delete>
|
||||
<host:delete
|
||||
xmlns:host="urn:ietf:params:xml:ns:host-1.0">
|
||||
<host:name>ns1.example.tld</host:name>
|
||||
</host:delete>
|
||||
</delete>
|
||||
<extension>
|
||||
<metadata:metadata xmlns:metadata="urn:google:params:xml:ns:metadata-1.0">
|
||||
<metadata:reason>Deleted by registry administrator: Test</metadata:reason>
|
||||
<metadata:requestedByRegistrar>false</metadata:requestedByRegistrar>
|
||||
</metadata:metadata>
|
||||
</extension>
|
||||
<clTRID>RegistryTool</clTRID>
|
||||
</command>
|
||||
</epp>
|
|
@ -18,6 +18,7 @@ java_library(
|
|||
"//java/google/registry/request",
|
||||
"//java/google/registry/tools/server",
|
||||
"//java/google/registry/util",
|
||||
"//javatests/google/registry/model",
|
||||
"//javatests/google/registry/testing",
|
||||
"//javatests/google/registry/testing/mapreduce",
|
||||
"//third_party/objectify:objectify-v4_1",
|
||||
|
|
|
@ -15,18 +15,12 @@
|
|||
package google.registry.tools.server;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static google.registry.testing.DatastoreHelper.deleteResource;
|
||||
import static google.registry.testing.DatastoreHelper.persistResource;
|
||||
import static google.registry.util.DateTimeUtils.END_OF_TIME;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import google.registry.model.eppcommon.Trid;
|
||||
import google.registry.model.reporting.HistoryEntry;
|
||||
import google.registry.model.reporting.HistoryEntry.Type;
|
||||
import google.registry.model.OteStatsTestHelper;
|
||||
import google.registry.testing.AppEngineRule;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.regex.Pattern;
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
|
@ -42,214 +36,94 @@ public class VerifyOteActionTest {
|
|||
|
||||
private final VerifyOteAction action = new VerifyOteAction();
|
||||
|
||||
private HistoryEntry hostDeleteHistoryEntry;
|
||||
private HistoryEntry domainCreateHistoryEntry;
|
||||
private HistoryEntry domainRestoreHistoryEntry;
|
||||
|
||||
@Before
|
||||
public void init() throws Exception {
|
||||
persistResource(
|
||||
new HistoryEntry.Builder()
|
||||
.setClientId("blobio-1")
|
||||
.setType(Type.DOMAIN_CREATE)
|
||||
.setXmlBytes(ToolsTestData.loadBytes("domain_create_sunrise.xml").read())
|
||||
.build());
|
||||
domainCreateHistoryEntry = persistResource(
|
||||
new HistoryEntry.Builder()
|
||||
.setClientId("blobio-1")
|
||||
.setType(Type.DOMAIN_CREATE)
|
||||
.setXmlBytes(ToolsTestData.loadBytes("domain_create_idn.xml").read())
|
||||
.build());
|
||||
persistResource(
|
||||
new HistoryEntry.Builder()
|
||||
.setClientId("blobio-1")
|
||||
.setType(Type.DOMAIN_CREATE)
|
||||
.setXmlBytes(ToolsTestData.loadBytes("domain_create_claim_notice.xml").read())
|
||||
.build());
|
||||
persistResource(
|
||||
new HistoryEntry.Builder()
|
||||
.setClientId("blobio-1")
|
||||
.setType(Type.DOMAIN_CREATE)
|
||||
.setXmlBytes(ToolsTestData.loadBytes("domain_create_anchor_tenant_fee_standard.xml").read())
|
||||
.build());
|
||||
persistResource(
|
||||
new HistoryEntry.Builder()
|
||||
.setClientId("blobio-1")
|
||||
.setType(Type.DOMAIN_CREATE)
|
||||
.setXmlBytes(ToolsTestData.loadBytes("domain_create_dsdata.xml").read())
|
||||
.build());
|
||||
persistResource(
|
||||
new HistoryEntry.Builder()
|
||||
.setClientId("blobio-1")
|
||||
.setType(Type.DOMAIN_DELETE)
|
||||
.setXmlBytes(ToolsTestData.loadBytes("domain_delete.xml").read())
|
||||
.build());
|
||||
persistResource(
|
||||
new HistoryEntry.Builder()
|
||||
.setClientId("blobio-2")
|
||||
.setType(Type.DOMAIN_DELETE)
|
||||
.setXmlBytes(ToolsTestData.loadBytes("domain_delete.xml").read())
|
||||
.build());
|
||||
domainRestoreHistoryEntry = persistResource(
|
||||
new HistoryEntry.Builder()
|
||||
.setClientId("blobio-1")
|
||||
.setType(Type.DOMAIN_RESTORE)
|
||||
.setXmlBytes(ToolsTestData.loadBytes("domain_restore.xml").read())
|
||||
.build());
|
||||
persistResource(
|
||||
new HistoryEntry.Builder()
|
||||
.setClientId("blobio-1")
|
||||
.setType(Type.DOMAIN_TRANSFER_APPROVE)
|
||||
.setXmlBytes(ToolsTestData.loadBytes("domain_transfer_approve.xml").read())
|
||||
.build());
|
||||
persistResource(
|
||||
new HistoryEntry.Builder()
|
||||
.setClientId("blobio-1")
|
||||
.setType(Type.DOMAIN_TRANSFER_CANCEL)
|
||||
.setXmlBytes(ToolsTestData.loadBytes("domain_transfer_cancel.xml").read())
|
||||
.build());
|
||||
persistResource(
|
||||
new HistoryEntry.Builder()
|
||||
.setClientId("blobio-1")
|
||||
.setType(Type.DOMAIN_TRANSFER_REJECT)
|
||||
.setXmlBytes(ToolsTestData.loadBytes("domain_transfer_reject.xml").read())
|
||||
.build());
|
||||
persistResource(
|
||||
new HistoryEntry.Builder()
|
||||
.setClientId("blobio-1")
|
||||
.setType(Type.DOMAIN_TRANSFER_REQUEST)
|
||||
.setXmlBytes(ToolsTestData.loadBytes("domain_transfer_request.xml").read())
|
||||
.build());
|
||||
persistResource(
|
||||
new HistoryEntry.Builder()
|
||||
.setClientId("blobio-1")
|
||||
.setType(Type.DOMAIN_UPDATE)
|
||||
.setXmlBytes(ToolsTestData.loadBytes("domain_update_with_secdns.xml").read())
|
||||
.build());
|
||||
persistResource(
|
||||
new HistoryEntry.Builder()
|
||||
.setClientId("blobio-1")
|
||||
.setType(Type.HOST_CREATE)
|
||||
.setXmlBytes(ToolsTestData.loadBytes("host_create_complete.xml").read())
|
||||
.build());
|
||||
hostDeleteHistoryEntry =
|
||||
persistResource(
|
||||
new HistoryEntry.Builder()
|
||||
.setClientId("blobio-1")
|
||||
.setType(Type.HOST_DELETE)
|
||||
.setXmlBytes(ToolsTestData.loadBytes("host_delete.xml").read())
|
||||
.build());
|
||||
// Persist 10 host updates for a total of 25 history entries. Since these also sort last by
|
||||
// modification time, when these cause all tests to pass, only the first will be recorded and
|
||||
// the rest will be skipped.
|
||||
for (int i = 0; i < 10; i++) {
|
||||
persistResource(
|
||||
new HistoryEntry.Builder()
|
||||
.setClientId("blobio-1")
|
||||
.setType(Type.HOST_UPDATE)
|
||||
.setXmlBytes(ToolsTestData.loadBytes("host_update.xml").read())
|
||||
.setTrid(Trid.create(null, String.format("blahtrid-%d", i)))
|
||||
.setModificationTime(END_OF_TIME)
|
||||
.build());
|
||||
}
|
||||
OteStatsTestHelper.setupHistoryEntries();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSuccess_summarize_allPass() {
|
||||
Map<String, Object> response =
|
||||
action.handleJsonRequest(
|
||||
ImmutableMap.of("summarize", "true", "registrars", ImmutableList.of("blobio")));
|
||||
assertThat(response)
|
||||
.containsExactly(
|
||||
"blobio", "# actions: 31 - Reqs: [----------------] 16/16 - Overall: PASS");
|
||||
assertThat(getResponse(true))
|
||||
.isEqualTo("# actions: 31 - Reqs: [----------------] 16/16 - Overall: PASS");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSuccess_summarize_someFailures() {
|
||||
deleteResource(hostDeleteHistoryEntry);
|
||||
deleteResource(domainCreateHistoryEntry);
|
||||
deleteResource(domainRestoreHistoryEntry);
|
||||
Map<String, Object> response =
|
||||
action.handleJsonRequest(
|
||||
ImmutableMap.of("summarize", "true", "registrars", ImmutableList.of("blobio")));
|
||||
assertThat(response)
|
||||
.containsExactly(
|
||||
"blobio", "# actions: 35 - Reqs: [-.-----.------.-] 13/16 - Overall: FAIL");
|
||||
public void testFailure_summarize_someFailures() {
|
||||
OteStatsTestHelper.deleteDomainCreateHistoryEntry();
|
||||
OteStatsTestHelper.deleteDomainRestoreHistoryEntry();
|
||||
OteStatsTestHelper.deleteHostDeleteHistoryEntry();
|
||||
assertThat(getResponse(true))
|
||||
.isEqualTo("# actions: 35 - Reqs: [-.-----.------.-] 13/16 - Overall: FAIL");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSuccess_passNotSummarized() {
|
||||
Map<String, Object> response =
|
||||
action.handleJsonRequest(
|
||||
ImmutableMap.of("summarize", "false", "registrars", ImmutableList.of("blobio")));
|
||||
|
||||
for (Entry<String, Object> registrar : response.entrySet()) {
|
||||
assertThat(registrar.getKey()).matches("blobio");
|
||||
String expectedOteStatus =
|
||||
"domain creates idn: 1\n"
|
||||
+ "domain creates start date sunrise: 1\n"
|
||||
+ "domain creates with claims notice: 1\n"
|
||||
+ "domain creates with fee: 1\n"
|
||||
+ "domain creates with sec dns: 1\n"
|
||||
+ ".*"
|
||||
+ "domain deletes: 2\n"
|
||||
+ ".*"
|
||||
+ "domain restores: 1\n"
|
||||
+ "domain transfer approves: 1\n"
|
||||
+ "domain transfer cancels: 1\n"
|
||||
+ "domain transfer rejects: 1\n"
|
||||
+ "domain transfer requests: 1\n"
|
||||
+ ".*"
|
||||
+ "domain updates with sec dns: 1\n"
|
||||
+ ".*"
|
||||
+ "host creates subordinate: 1\n"
|
||||
+ "host deletes: 1\n"
|
||||
+ "host updates: 1\n"
|
||||
+ ".*"
|
||||
+ "Requirements passed: 16/16\n"
|
||||
+ "Overall OT&E status: PASS\n";
|
||||
Pattern expectedOteStatusPattern = Pattern.compile(expectedOteStatus, Pattern.DOTALL);
|
||||
assertThat(registrar.getValue().toString()).containsMatch(expectedOteStatusPattern);
|
||||
}
|
||||
String expectedOteStatus =
|
||||
"domain creates idn: 1\n"
|
||||
+ "domain creates start date sunrise: 1\n"
|
||||
+ "domain creates with claims notice: 1\n"
|
||||
+ "domain creates with fee: 1\n"
|
||||
+ "domain creates with sec dns: 1\n"
|
||||
+ ".*"
|
||||
+ "domain deletes: 2\n"
|
||||
+ ".*"
|
||||
+ "domain restores: 1\n"
|
||||
+ "domain transfer approves: 1\n"
|
||||
+ "domain transfer cancels: 1\n"
|
||||
+ "domain transfer rejects: 1\n"
|
||||
+ "domain transfer requests: 1\n"
|
||||
+ ".*"
|
||||
+ "domain updates with sec dns: 1\n"
|
||||
+ ".*"
|
||||
+ "host creates subordinate: 1\n"
|
||||
+ "host deletes: 1\n"
|
||||
+ "host updates: 1\n"
|
||||
+ ".*"
|
||||
+ "Requirements passed: 16/16\n"
|
||||
+ "Overall OT&E status: PASS\n";
|
||||
Pattern expectedOteStatusPattern = Pattern.compile(expectedOteStatus, Pattern.DOTALL);
|
||||
assertThat(getResponse(false)).containsMatch(expectedOteStatusPattern);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFailure_missingHostDelete() {
|
||||
deleteResource(hostDeleteHistoryEntry);
|
||||
OteStatsTestHelper.deleteHostDeleteHistoryEntry();
|
||||
String expectedOteStatus =
|
||||
"domain creates idn: 1\n"
|
||||
+ "domain creates start date sunrise: 1\n"
|
||||
+ "domain creates with claims notice: 1\n"
|
||||
+ "domain creates with fee: 1\n"
|
||||
+ "domain creates with sec dns: 1\n"
|
||||
+ ".*"
|
||||
+ "domain deletes: 2\n"
|
||||
+ ".*"
|
||||
+ "domain restores: 1\n"
|
||||
+ "domain transfer approves: 1\n"
|
||||
+ "domain transfer cancels: 1\n"
|
||||
+ "domain transfer rejects: 1\n"
|
||||
+ "domain transfer requests: 1\n"
|
||||
+ ".*"
|
||||
+ "domain updates with sec dns: 1\n"
|
||||
+ ".*"
|
||||
+ "host creates subordinate: 1\n"
|
||||
+ "host deletes: 0\n"
|
||||
+ "host updates: 10\n"
|
||||
+ ".*"
|
||||
+ "Requirements passed: 15/16\n"
|
||||
+ "Overall OT&E status: FAIL\n";
|
||||
Pattern expectedOteStatusPattern = Pattern.compile(expectedOteStatus, Pattern.DOTALL);
|
||||
assertThat(getResponse(false)).containsMatch(expectedOteStatusPattern);
|
||||
}
|
||||
|
||||
private String getResponse(boolean summarize) {
|
||||
Map<String, Object> response =
|
||||
action.handleJsonRequest(
|
||||
ImmutableMap.of("summarize", "false", "registrars", ImmutableList.of("blobio")));
|
||||
|
||||
for (Entry<String, Object> registrar : response.entrySet()) {
|
||||
assertThat(registrar.getKey()).matches("blobio");
|
||||
String oteStatus = registrar.getValue().toString();
|
||||
|
||||
String expectedOteStatus =
|
||||
"domain creates idn: 1\n"
|
||||
+ "domain creates start date sunrise: 1\n"
|
||||
+ "domain creates with claims notice: 1\n"
|
||||
+ "domain creates with fee: 1\n"
|
||||
+ "domain creates with sec dns: 1\n"
|
||||
+ ".*"
|
||||
+ "domain deletes: 2\n"
|
||||
+ ".*"
|
||||
+ "domain restores: 1\n"
|
||||
+ "domain transfer approves: 1\n"
|
||||
+ "domain transfer cancels: 1\n"
|
||||
+ "domain transfer rejects: 1\n"
|
||||
+ "domain transfer requests: 1\n"
|
||||
+ ".*"
|
||||
+ "domain updates with sec dns: 1\n"
|
||||
+ ".*"
|
||||
+ "host creates subordinate: 1\n"
|
||||
+ "host deletes: 0\n"
|
||||
+ "host updates: 10\n"
|
||||
+ ".*"
|
||||
+ "Requirements passed: 15/16\n"
|
||||
+ "Overall OT&E status: FAIL\n";
|
||||
Pattern expectedOteStatusPattern = Pattern.compile(expectedOteStatus, Pattern.DOTALL);
|
||||
assertThat(oteStatus).containsMatch(expectedOteStatusPattern);
|
||||
}
|
||||
ImmutableMap.of(
|
||||
"summarize",
|
||||
Boolean.toString(summarize),
|
||||
"registrars",
|
||||
ImmutableList.of("blobio")));
|
||||
assertThat(response).containsKey("blobio");
|
||||
return response.get("blobio").toString();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue