mirror of
https://github.com/google/nomulus.git
synced 2025-05-08 15:58:21 +02:00
182 lines
6.3 KiB
Java
182 lines
6.3 KiB
Java
// Copyright 2019 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.rdap;
|
|
import static com.google.common.truth.Truth.assertThat;
|
|
import static google.registry.rdap.RdapTestHelper.createJson;
|
|
|
|
import com.google.common.collect.ImmutableSet;
|
|
import google.registry.rdap.RdapDataStructures.Event;
|
|
import google.registry.rdap.RdapDataStructures.EventAction;
|
|
import google.registry.rdap.RdapDataStructures.EventWithoutActor;
|
|
import google.registry.rdap.RdapDataStructures.LanguageIdentifier;
|
|
import google.registry.rdap.RdapDataStructures.Link;
|
|
import google.registry.rdap.RdapDataStructures.Notice;
|
|
import google.registry.rdap.RdapDataStructures.ObjectClassName;
|
|
import google.registry.rdap.RdapDataStructures.Port43WhoisServer;
|
|
import google.registry.rdap.RdapDataStructures.PublicId;
|
|
import google.registry.rdap.RdapDataStructures.RdapConformance;
|
|
import google.registry.rdap.RdapDataStructures.RdapStatus;
|
|
import google.registry.rdap.RdapDataStructures.Remark;
|
|
import org.joda.time.DateTime;
|
|
import org.junit.Test;
|
|
import org.junit.runner.RunWith;
|
|
import org.junit.runners.JUnit4;
|
|
|
|
@RunWith(JUnit4.class)
|
|
public final class RdapDataStructuresTest {
|
|
|
|
private void assertRestrictedNames(Object object, String... names) {
|
|
assertThat(AbstractJsonableObject.getNameRestriction(object.getClass()).get())
|
|
.containsExactlyElementsIn(ImmutableSet.copyOf(names));
|
|
}
|
|
|
|
@Test
|
|
public void testRdapConformance() {
|
|
assertThat(RdapConformance.INSTANCE.toJson())
|
|
.isEqualTo(createJson(
|
|
"[",
|
|
" 'rdap_level_0',",
|
|
" 'icann_rdap_response_profile_0',",
|
|
" 'icann_rdap_technical_implementation_guide_0'",
|
|
"]"));
|
|
}
|
|
|
|
@Test
|
|
public void testLink() {
|
|
Link link =
|
|
Link.builder()
|
|
.setHref("myHref")
|
|
.setRel("myRel")
|
|
.setTitle("myTitle")
|
|
.setType("myType")
|
|
.build();
|
|
assertThat(link.toJson())
|
|
.isEqualTo(createJson("{'href':'myHref','rel':'myRel','title':'myTitle','type':'myType'}"));
|
|
assertRestrictedNames(link, "links[]");
|
|
}
|
|
|
|
@Test
|
|
public void testNotice() {
|
|
Notice notice = Notice.builder()
|
|
.setDescription("AAA", "BBB")
|
|
.setTitle("myTitle")
|
|
.addLink(Link.builder().setHref("myHref").setTitle("myLink").build())
|
|
.setType(Notice.Type.RESULT_TRUNCATED_AUTHORIZATION)
|
|
.build();
|
|
assertThat(notice.toJson())
|
|
.isEqualTo(
|
|
createJson(
|
|
"{",
|
|
" 'title':'myTitle',",
|
|
" 'type':'result set truncated due to authorization',",
|
|
" 'description':['AAA','BBB'],",
|
|
" 'links':[{'href':'myHref','title':'myLink'}]",
|
|
"}"));
|
|
assertRestrictedNames(notice, "notices[]");
|
|
}
|
|
|
|
@Test
|
|
public void testRemark() {
|
|
Remark remark = Remark.builder()
|
|
.setDescription("AAA", "BBB")
|
|
.setTitle("myTitle")
|
|
.addLink(Link.builder().setHref("myHref").setTitle("myLink").build())
|
|
.setType(Remark.Type.OBJECT_TRUNCATED_AUTHORIZATION)
|
|
.build();
|
|
assertThat(remark.toJson())
|
|
.isEqualTo(
|
|
createJson(
|
|
"{",
|
|
" 'title':'myTitle',",
|
|
" 'type':'object truncated due to authorization',",
|
|
" 'description':['AAA','BBB'],",
|
|
" 'links':[{'href':'myHref','title':'myLink'}]",
|
|
"}"));
|
|
assertRestrictedNames(remark, "remarks[]");
|
|
}
|
|
|
|
@Test
|
|
public void testLanguage() {
|
|
assertThat(LanguageIdentifier.EN.toJson()).isEqualTo(createJson("'en'"));
|
|
assertRestrictedNames(LanguageIdentifier.EN, "lang");
|
|
}
|
|
|
|
@Test
|
|
public void testEvent() {
|
|
Event event =
|
|
Event.builder()
|
|
.setEventAction(EventAction.REGISTRATION)
|
|
.setEventActor("Event Actor")
|
|
.setEventDate(DateTime.parse("2012-04-03T14:54Z"))
|
|
.addLink(Link.builder().setHref("myHref").build())
|
|
.build();
|
|
assertThat(event.toJson())
|
|
.isEqualTo(
|
|
createJson(
|
|
"{",
|
|
" 'eventAction':'registration',",
|
|
" 'eventActor':'Event Actor',",
|
|
" 'eventDate':'2012-04-03T14:54:00.000Z',",
|
|
" 'links':[{'href':'myHref'}]",
|
|
"}"));
|
|
assertRestrictedNames(event, "events[]");
|
|
}
|
|
|
|
@Test
|
|
public void testEventWithoutActor() {
|
|
EventWithoutActor event =
|
|
EventWithoutActor.builder()
|
|
.setEventAction(EventAction.REGISTRATION)
|
|
.setEventDate(DateTime.parse("2012-04-03T14:54Z"))
|
|
.addLink(Link.builder().setHref("myHref").build())
|
|
.build();
|
|
assertThat(event.toJson())
|
|
.isEqualTo(
|
|
createJson(
|
|
"{",
|
|
" 'eventAction':'registration',",
|
|
" 'eventDate':'2012-04-03T14:54:00.000Z',",
|
|
" 'links':[{'href':'myHref'}]",
|
|
"}"));
|
|
assertRestrictedNames(event, "asEventActor[]");
|
|
}
|
|
|
|
@Test
|
|
public void testRdapStatus() {
|
|
assertThat(RdapStatus.ACTIVE.toJson()).isEqualTo(createJson("'active'"));
|
|
assertRestrictedNames(RdapStatus.ACTIVE, "status[]");
|
|
}
|
|
|
|
@Test
|
|
public void testPort43() {
|
|
Port43WhoisServer port43 = Port43WhoisServer.create("myServer");
|
|
assertThat(port43.toJson()).isEqualTo(createJson("'myServer'"));
|
|
assertRestrictedNames(port43, "port43");
|
|
}
|
|
|
|
@Test
|
|
public void testPublicId() {
|
|
PublicId publicId = PublicId.create(PublicId.Type.IANA_REGISTRAR_ID, "myId");
|
|
assertThat(publicId.toJson())
|
|
.isEqualTo(createJson("{'identifier':'myId','type':'IANA Registrar ID'}"));
|
|
assertRestrictedNames(publicId, "publicIds[]");
|
|
}
|
|
|
|
@Test
|
|
public void testObjectClassName() {
|
|
assertThat(ObjectClassName.DOMAIN.toJson()).isEqualTo(createJson("'domain'"));
|
|
assertRestrictedNames(ObjectClassName.DOMAIN, "objectClassName");
|
|
}
|
|
}
|