1 /* 2 * Copyright 2016 Google LLC 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.google.cloud.dns; 18 19 import static org.junit.Assert.assertEquals; 20 import static org.junit.Assert.assertTrue; 21 22 import com.google.cloud.dns.spi.v1.DnsRpc; 23 import org.junit.Test; 24 25 public class DnsTest { 26 27 private static final Integer PAGE_SIZE = 20; 28 private static final String PAGE_TOKEN = "page token"; 29 private static final String DNS_NAME = "www.example.com."; 30 31 @Test testRecordSetListOption()32 public void testRecordSetListOption() { 33 // dns name 34 String dnsName = "some name"; 35 Dns.RecordSetListOption recordSetListOption = Dns.RecordSetListOption.dnsName(dnsName); 36 assertEquals(dnsName, recordSetListOption.getValue()); 37 assertEquals(DnsRpc.Option.NAME, recordSetListOption.getRpcOption()); 38 // page token 39 recordSetListOption = Dns.RecordSetListOption.pageToken(PAGE_TOKEN); 40 assertEquals(PAGE_TOKEN, recordSetListOption.getValue()); 41 assertEquals(DnsRpc.Option.PAGE_TOKEN, recordSetListOption.getRpcOption()); 42 // page size 43 recordSetListOption = Dns.RecordSetListOption.pageSize(PAGE_SIZE); 44 assertEquals(PAGE_SIZE, recordSetListOption.getValue()); 45 assertEquals(DnsRpc.Option.PAGE_SIZE, recordSetListOption.getRpcOption()); 46 // record type 47 RecordSet.Type recordType = RecordSet.Type.AAAA; 48 recordSetListOption = Dns.RecordSetListOption.type(recordType); 49 assertEquals(recordType.name(), recordSetListOption.getValue()); 50 assertEquals(DnsRpc.Option.DNS_TYPE, recordSetListOption.getRpcOption()); 51 // fields 52 recordSetListOption = 53 Dns.RecordSetListOption.fields(Dns.RecordSetField.NAME, Dns.RecordSetField.TTL); 54 assertEquals(DnsRpc.Option.FIELDS, recordSetListOption.getRpcOption()); 55 assertTrue(recordSetListOption.getValue() instanceof String); 56 assertTrue( 57 ((String) recordSetListOption.getValue()).contains(Dns.RecordSetField.NAME.getSelector())); 58 assertTrue( 59 ((String) recordSetListOption.getValue()).contains(Dns.RecordSetField.TTL.getSelector())); 60 assertTrue( 61 ((String) recordSetListOption.getValue()).contains(Dns.RecordSetField.NAME.getSelector())); 62 } 63 64 @Test testZoneOption()65 public void testZoneOption() { 66 Dns.ZoneOption fields = 67 Dns.ZoneOption.fields(Dns.ZoneField.CREATION_TIME, Dns.ZoneField.DESCRIPTION); 68 assertEquals(DnsRpc.Option.FIELDS, fields.getRpcOption()); 69 assertTrue(fields.getValue() instanceof String); 70 assertTrue(((String) fields.getValue()).contains(Dns.ZoneField.CREATION_TIME.getSelector())); 71 assertTrue(((String) fields.getValue()).contains(Dns.ZoneField.DESCRIPTION.getSelector())); 72 } 73 74 @Test testZoneList()75 public void testZoneList() { 76 // fields 77 Dns.ZoneListOption fields = 78 Dns.ZoneListOption.fields(Dns.ZoneField.CREATION_TIME, Dns.ZoneField.DESCRIPTION); 79 assertEquals(DnsRpc.Option.FIELDS, fields.getRpcOption()); 80 assertTrue(fields.getValue() instanceof String); 81 assertTrue(((String) fields.getValue()).contains(Dns.ZoneField.CREATION_TIME.getSelector())); 82 assertTrue(((String) fields.getValue()).contains(Dns.ZoneField.DESCRIPTION.getSelector())); 83 assertTrue(((String) fields.getValue()).contains(Dns.ZoneField.NAME.getSelector())); 84 // page token 85 Dns.ZoneListOption option = Dns.ZoneListOption.pageToken(PAGE_TOKEN); 86 assertEquals(PAGE_TOKEN, option.getValue()); 87 assertEquals(DnsRpc.Option.PAGE_TOKEN, option.getRpcOption()); 88 // page size 89 option = Dns.ZoneListOption.pageSize(PAGE_SIZE); 90 assertEquals(PAGE_SIZE, option.getValue()); 91 assertEquals(DnsRpc.Option.PAGE_SIZE, option.getRpcOption()); 92 // dnsName filter 93 option = Dns.ZoneListOption.dnsName(DNS_NAME); 94 assertEquals(DNS_NAME, option.getValue()); 95 assertEquals(DnsRpc.Option.DNS_NAME, option.getRpcOption()); 96 } 97 98 @Test testProjectGetOption()99 public void testProjectGetOption() { 100 // fields 101 Dns.ProjectOption fields = Dns.ProjectOption.fields(Dns.ProjectField.QUOTA); 102 assertEquals(DnsRpc.Option.FIELDS, fields.getRpcOption()); 103 assertTrue(fields.getValue() instanceof String); 104 assertTrue(((String) fields.getValue()).contains(Dns.ProjectField.QUOTA.getSelector())); 105 assertTrue(((String) fields.getValue()).contains(Dns.ProjectField.PROJECT_ID.getSelector())); 106 } 107 108 @Test testChangeRequestOption()109 public void testChangeRequestOption() { 110 // fields 111 Dns.ChangeRequestOption fields = 112 Dns.ChangeRequestOption.fields( 113 Dns.ChangeRequestField.START_TIME, Dns.ChangeRequestField.STATUS); 114 assertEquals(DnsRpc.Option.FIELDS, fields.getRpcOption()); 115 assertTrue(fields.getValue() instanceof String); 116 assertTrue( 117 ((String) fields.getValue()).contains(Dns.ChangeRequestField.START_TIME.getSelector())); 118 assertTrue(((String) fields.getValue()).contains(Dns.ChangeRequestField.STATUS.getSelector())); 119 assertTrue(((String) fields.getValue()).contains(Dns.ChangeRequestField.ID.getSelector())); 120 } 121 122 @Test testChangeRequestListOption()123 public void testChangeRequestListOption() { 124 // fields 125 Dns.ChangeRequestListOption fields = 126 Dns.ChangeRequestListOption.fields( 127 Dns.ChangeRequestField.START_TIME, Dns.ChangeRequestField.STATUS); 128 assertEquals(DnsRpc.Option.FIELDS, fields.getRpcOption()); 129 assertTrue(fields.getValue() instanceof String); 130 assertTrue( 131 ((String) fields.getValue()).contains(Dns.ChangeRequestField.START_TIME.getSelector())); 132 assertTrue(((String) fields.getValue()).contains(Dns.ChangeRequestField.STATUS.getSelector())); 133 assertTrue(((String) fields.getValue()).contains(Dns.ChangeRequestField.ID.getSelector())); 134 // page token 135 Dns.ChangeRequestListOption option = Dns.ChangeRequestListOption.pageToken(PAGE_TOKEN); 136 assertEquals(PAGE_TOKEN, option.getValue()); 137 assertEquals(DnsRpc.Option.PAGE_TOKEN, option.getRpcOption()); 138 // page size 139 option = Dns.ChangeRequestListOption.pageSize(PAGE_SIZE); 140 assertEquals(PAGE_SIZE, option.getValue()); 141 assertEquals(DnsRpc.Option.PAGE_SIZE, option.getRpcOption()); 142 // sort order 143 option = Dns.ChangeRequestListOption.sortOrder(Dns.SortingOrder.ASCENDING); 144 assertEquals(DnsRpc.Option.SORTING_ORDER, option.getRpcOption()); 145 assertEquals(Dns.SortingOrder.ASCENDING.selector(), option.getValue()); 146 } 147 } 148