Skip to content

Commit f069c58

Browse files
committed
Added sleep and renamed change completion check.
Moved integration test to a separate package and adjusted accordingly. Added missing fails.
1 parent 75269ff commit f069c58

1 file changed

Lines changed: 64 additions & 61 deletions

File tree

gcloud-java-dns/src/test/java/com/google/gcloud/dns/ITDnsTest.java renamed to gcloud-java-dns/src/test/java/com/google/gcloud/dns/it/ITDnsTest.java

Lines changed: 64 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package com.google.gcloud.dns;
17+
package com.google.gcloud.dns.it;
1818

1919
import static org.junit.Assert.assertEquals;
2020
import static org.junit.Assert.assertFalse;
@@ -25,6 +25,14 @@
2525

2626
import com.google.common.collect.ImmutableList;
2727
import com.google.gcloud.Page;
28+
import com.google.gcloud.dns.ChangeRequest;
29+
import com.google.gcloud.dns.Dns;
30+
import com.google.gcloud.dns.DnsException;
31+
import com.google.gcloud.dns.DnsOptions;
32+
import com.google.gcloud.dns.DnsRecord;
33+
import com.google.gcloud.dns.ProjectInfo;
34+
import com.google.gcloud.dns.Zone;
35+
import com.google.gcloud.dns.ZoneInfo;
2836

2937
import org.junit.AfterClass;
3038
import org.junit.BeforeClass;
@@ -62,24 +70,20 @@ public class ITDnsTest {
6270
.description(ZONE_DESCRIPTION1)
6371
.dnsName(ZONE_DNS_NAME1)
6472
.build();
65-
public static final ZoneInfo ZONE_NAME_ERROR =
66-
ZoneInfo.builder(ZONE_NAME_TOO_LONG)
67-
.description(ZONE_DESCRIPTION1)
68-
.dnsName(ZONE_DNS_NAME1)
69-
.build();
70-
public static final ZoneInfo ZONE_MISSING_DESCRIPTION =
71-
ZoneInfo.builder(ZONE_NAME1)
72-
.dnsName(ZONE_DNS_NAME1)
73-
.build();
74-
public static final ZoneInfo ZONE_MISSING_DNS_NAME =
75-
ZoneInfo.builder(ZONE_NAME1)
76-
.description(ZONE_DESCRIPTION1)
77-
.build();
78-
public static final ZoneInfo ZONE_DNS_NO_PERIOD =
79-
ZoneInfo.builder(ZONE_NAME1)
80-
.description(ZONE_DESCRIPTION1)
81-
.dnsName(ZONE_DNS_NAME_NO_PERIOD)
82-
.build();
73+
public static final ZoneInfo ZONE_NAME_ERROR = ZoneInfo.builder(ZONE_NAME_TOO_LONG)
74+
.description(ZONE_DESCRIPTION1)
75+
.dnsName(ZONE_DNS_NAME1)
76+
.build();
77+
public static final ZoneInfo ZONE_MISSING_DESCRIPTION = ZoneInfo.builder(ZONE_NAME1)
78+
.dnsName(ZONE_DNS_NAME1)
79+
.build();
80+
public static final ZoneInfo ZONE_MISSING_DNS_NAME = ZoneInfo.builder(ZONE_NAME1)
81+
.description(ZONE_DESCRIPTION1)
82+
.build();
83+
public static final ZoneInfo ZONE_DNS_NO_PERIOD = ZoneInfo.builder(ZONE_NAME1)
84+
.description(ZONE_DESCRIPTION1)
85+
.dnsName(ZONE_DNS_NAME_NO_PERIOD)
86+
.build();
8387
public static final DnsRecord A_RECORD_ZONE1 =
8488
DnsRecord.builder("www." + ZONE1.dnsName(), DnsRecord.Type.A)
8589
.records(ImmutableList.of("123.123.55.1"))
@@ -116,7 +120,7 @@ public static void clear() {
116120
if (!toDelete.isEmpty()) {
117121
ChangeRequest deletion =
118122
zone.applyChangeRequest(ChangeRequest.builder().deletions(toDelete).build());
119-
checkChangeComplete(zone.name(), deletion.id());
123+
waitUntilComplete(zone.name(), deletion.id());
120124
}
121125
zone.delete();
122126
}
@@ -145,17 +149,23 @@ public static void after() {
145149
}
146150

147151
private static void assertEqChangesIgnoreStatus(ChangeRequest expected, ChangeRequest actual) {
148-
ChangeRequest unifiedEx = ChangeRequest.fromPb(expected.toPb().setStatus("pending"));
149-
ChangeRequest unifiedAct = ChangeRequest.fromPb(actual.toPb().setStatus("pending"));
150-
assertEquals(unifiedEx, unifiedAct);
152+
assertEquals(expected.additions(), actual.additions());
153+
assertEquals(expected.deletions(), actual.deletions());
154+
assertEquals(expected.id(), actual.id());
155+
assertEquals(expected.startTimeMillis(), actual.startTimeMillis());
151156
}
152157

153-
private static void checkChangeComplete(String zoneName, String changeId) {
158+
private static void waitUntilComplete(String zoneName, String changeId) {
154159
while (true) {
155160
ChangeRequest changeRequest = DNS.getChangeRequest(zoneName, changeId,
156161
Dns.ChangeRequestOption.fields(Dns.ChangeRequestField.STATUS));
157162
if (ChangeRequest.Status.DONE.equals(changeRequest.status())) {
158-
break;
163+
return;
164+
}
165+
try {
166+
Thread.sleep(10);
167+
} catch (InterruptedException e) {
168+
fail("Thread was interrupted while waiting for change proceesing.");
159169
}
160170
}
161171
}
@@ -404,13 +414,15 @@ public void testListZones() {
404414
// error in options
405415
try {
406416
DNS.listZones(Dns.ZoneListOption.pageSize(0));
417+
fail();
407418
} catch (DnsException ex) {
408419
// expected
409420
assertEquals(400, ex.code());
410421
// todo(mderka) test not-retryable
411422
}
412423
try {
413424
DNS.listZones(Dns.ZoneListOption.pageSize(-1));
425+
fail();
414426
} catch (DnsException ex) {
415427
// expected
416428
assertEquals(400, ex.code());
@@ -422,6 +434,7 @@ public void testListZones() {
422434
// dns name problems
423435
try {
424436
DNS.listZones(Dns.ZoneListOption.dnsName("aaaaa"));
437+
fail();
425438
} catch (DnsException ex) {
426439
// expected
427440
assertEquals(400, ex.code());
@@ -529,7 +542,6 @@ public void testDeleteZone() {
529542
}
530543
}
531544

532-
533545
@Test
534546
public void testCreateChange() {
535547
try {
@@ -542,9 +554,9 @@ public void testCreateChange() {
542554
assertTrue(ImmutableList.of(ChangeRequest.Status.PENDING, ChangeRequest.Status.DONE)
543555
.contains(created.status()));
544556
assertEqChangesIgnoreStatus(created, DNS.getChangeRequest(ZONE1.name(), "1"));
545-
checkChangeComplete(ZONE1.name(), "1");
557+
waitUntilComplete(ZONE1.name(), "1");
546558
DNS.applyChangeRequest(ZONE1.name(), CHANGE_DELETE_ZONE1);
547-
checkChangeComplete(ZONE1.name(), "2");
559+
waitUntilComplete(ZONE1.name(), "2");
548560
// with options
549561
created = DNS.applyChangeRequest(ZONE1.name(), CHANGE_ADD_ZONE1,
550562
Dns.ChangeRequestOption.fields(Dns.ChangeRequestField.ID));
@@ -553,29 +565,29 @@ public void testCreateChange() {
553565
assertTrue(created.deletions().isEmpty());
554566
assertEquals("3", created.id());
555567
assertNull(created.status());
556-
checkChangeComplete(ZONE1.name(), "3");
568+
waitUntilComplete(ZONE1.name(), "3");
557569
DNS.applyChangeRequest(ZONE1.name(), CHANGE_DELETE_ZONE1);
558-
checkChangeComplete(ZONE1.name(), "4");
570+
waitUntilComplete(ZONE1.name(), "4");
559571
created = DNS.applyChangeRequest(ZONE1.name(), CHANGE_ADD_ZONE1,
560572
Dns.ChangeRequestOption.fields(Dns.ChangeRequestField.STATUS));
561573
assertTrue(created.additions().isEmpty());
562574
assertNull(created.startTimeMillis());
563575
assertTrue(created.deletions().isEmpty());
564576
assertEquals("5", created.id());
565577
assertNotNull(created.status());
566-
checkChangeComplete(ZONE1.name(), "5");
578+
waitUntilComplete(ZONE1.name(), "5");
567579
DNS.applyChangeRequest(ZONE1.name(), CHANGE_DELETE_ZONE1);
568-
checkChangeComplete(ZONE1.name(), "6");
580+
waitUntilComplete(ZONE1.name(), "6");
569581
created = DNS.applyChangeRequest(ZONE1.name(), CHANGE_ADD_ZONE1,
570582
Dns.ChangeRequestOption.fields(Dns.ChangeRequestField.START_TIME));
571583
assertTrue(created.additions().isEmpty());
572584
assertNotNull(created.startTimeMillis());
573585
assertTrue(created.deletions().isEmpty());
574586
assertEquals("7", created.id());
575587
assertNull(created.status());
576-
checkChangeComplete(ZONE1.name(), "7");
588+
waitUntilComplete(ZONE1.name(), "7");
577589
DNS.applyChangeRequest(ZONE1.name(), CHANGE_DELETE_ZONE1);
578-
checkChangeComplete(ZONE1.name(), "8");
590+
waitUntilComplete(ZONE1.name(), "8");
579591
created = DNS.applyChangeRequest(ZONE1.name(), CHANGE_ADD_ZONE1,
580592
Dns.ChangeRequestOption.fields(Dns.ChangeRequestField.ADDITIONS));
581593
assertEquals(CHANGE_ADD_ZONE1.additions(), created.additions());
@@ -584,16 +596,16 @@ public void testCreateChange() {
584596
assertEquals("9", created.id());
585597
assertNull(created.status());
586598
// finishes with delete otherwise we cannot delete the zone
587-
checkChangeComplete(ZONE1.name(), "9");
599+
waitUntilComplete(ZONE1.name(), "9");
588600
created = DNS.applyChangeRequest(ZONE1.name(), CHANGE_DELETE_ZONE1,
589601
Dns.ChangeRequestOption.fields(Dns.ChangeRequestField.DELETIONS));
590-
checkChangeComplete(ZONE1.name(), "10");
602+
waitUntilComplete(ZONE1.name(), "10");
591603
assertEquals(CHANGE_DELETE_ZONE1.deletions(), created.deletions());
592604
assertNull(created.startTimeMillis());
593605
assertTrue(created.additions().isEmpty());
594606
assertEquals("10", created.id());
595607
assertNull(created.status());
596-
checkChangeComplete(ZONE1.name(), "10");
608+
waitUntilComplete(ZONE1.name(), "10");
597609
} finally {
598610
clear();
599611
}
@@ -618,25 +630,27 @@ public void testListChanges() {
618630
assertEquals(1, changes.size()); // default change creating SOA and NS
619631
// zone has changes
620632
ChangeRequest change = DNS.applyChangeRequest(ZONE1.name(), CHANGE_ADD_ZONE1);
621-
checkChangeComplete(ZONE1.name(), change.id());
633+
waitUntilComplete(ZONE1.name(), change.id());
622634
change = DNS.applyChangeRequest(ZONE1.name(), CHANGE_DELETE_ZONE1);
623-
checkChangeComplete(ZONE1.name(), change.id());
635+
waitUntilComplete(ZONE1.name(), change.id());
624636
change = DNS.applyChangeRequest(ZONE1.name(), CHANGE_ADD_ZONE1);
625-
checkChangeComplete(ZONE1.name(), change.id());
637+
waitUntilComplete(ZONE1.name(), change.id());
626638
change = DNS.applyChangeRequest(ZONE1.name(), CHANGE_DELETE_ZONE1);
627-
checkChangeComplete(ZONE1.name(), change.id());
639+
waitUntilComplete(ZONE1.name(), change.id());
628640
changes = ImmutableList.copyOf(DNS.listChangeRequests(ZONE1.name()).iterateAll());
629641
assertEquals(5, changes.size());
630642
// error in options
631643
try {
632644
DNS.listChangeRequests(ZONE1.name(), Dns.ChangeRequestListOption.pageSize(0));
645+
fail();
633646
} catch (DnsException ex) {
634647
// expected
635648
assertEquals(400, ex.code());
636649
// todo(mderka) test retry functionality
637650
}
638651
try {
639652
DNS.listChangeRequests(ZONE1.name(), Dns.ChangeRequestListOption.pageSize(-1));
653+
fail();
640654
} catch (DnsException ex) {
641655
// expected
642656
assertEquals(400, ex.code());
@@ -754,27 +768,16 @@ public void testGetProject() {
754768
// fetches all fields
755769
ProjectInfo project = DNS.getProject();
756770
assertNotNull(project.quota());
757-
assertNotNull(project.number());
758-
assertNotNull(project.id());
759-
assertEquals(PROJECT_ID, project.id());
760771
// options
761772
project = DNS.getProject(Dns.ProjectOption.fields(Dns.ProjectField.QUOTA));
762773
assertNotNull(project.quota());
763-
assertNull(project.number());
764-
assertNotNull(project.id()); // id is always returned
765774
project = DNS.getProject(Dns.ProjectOption.fields(Dns.ProjectField.PROJECT_ID));
766775
assertNull(project.quota());
767-
assertNull(project.number());
768-
assertNotNull(project.id());
769776
project = DNS.getProject(Dns.ProjectOption.fields(Dns.ProjectField.PROJECT_NUMBER));
770777
assertNull(project.quota());
771-
assertNotNull(project.number());
772-
assertNotNull(project.id());
773778
project = DNS.getProject(Dns.ProjectOption.fields(Dns.ProjectField.PROJECT_NUMBER,
774779
Dns.ProjectField.QUOTA, Dns.ProjectField.PROJECT_ID));
775780
assertNotNull(project.quota());
776-
assertNotNull(project.number());
777-
assertNotNull(project.id());
778781
}
779782

780783
@Test
@@ -846,7 +849,7 @@ public void testListDnsRecords() {
846849
assertEquals(1, ImmutableList.copyOf(dnsRecordPage.values().iterator()).size());
847850
// test name filter
848851
ChangeRequest change = DNS.applyChangeRequest(ZONE1.name(), CHANGE_ADD_ZONE1);
849-
checkChangeComplete(ZONE1.name(), change.id());
852+
waitUntilComplete(ZONE1.name(), change.id());
850853
dnsRecordIterator = DNS.listDnsRecords(ZONE1.name(),
851854
Dns.DnsRecordListOption.dnsName(A_RECORD_ZONE1.name())).iterateAll();
852855
counter = 0;
@@ -858,7 +861,7 @@ public void testListDnsRecords() {
858861
}
859862
assertEquals(2, counter);
860863
// test type filter
861-
checkChangeComplete(ZONE1.name(), change.id());
864+
waitUntilComplete(ZONE1.name(), change.id());
862865
dnsRecordIterator = DNS.listDnsRecords(ZONE1.name(),
863866
Dns.DnsRecordListOption.dnsName(A_RECORD_ZONE1.name()),
864867
Dns.DnsRecordListOption.type(A_RECORD_ZONE1.type()))
@@ -874,30 +877,30 @@ public void testListDnsRecords() {
874877
// check wrong arguments
875878
try {
876879
// name is not set
877-
DNS.listDnsRecords(ZONE1.name(),
878-
Dns.DnsRecordListOption.type(A_RECORD_ZONE1.type()));
880+
DNS.listDnsRecords(ZONE1.name(), Dns.DnsRecordListOption.type(A_RECORD_ZONE1.type()));
881+
fail();
879882
} catch (DnsException ex) {
880883
// expected
881884
assertEquals(400, ex.code());
882885
// todo(mderka) test retry functionality when available
883886
}
884887
try {
885-
DNS.listDnsRecords(ZONE1.name(),
886-
Dns.DnsRecordListOption.pageSize(0));
888+
DNS.listDnsRecords(ZONE1.name(), Dns.DnsRecordListOption.pageSize(0));
889+
fail();
887890
} catch (DnsException ex) {
888891
// expected
889892
assertEquals(400, ex.code());
890893
// todo(mderka) test retry functionality when available
891894
}
892895
try {
893-
DNS.listDnsRecords(ZONE1.name(),
894-
Dns.DnsRecordListOption.pageSize(-1));
896+
DNS.listDnsRecords(ZONE1.name(), Dns.DnsRecordListOption.pageSize(-1));
897+
fail();
895898
} catch (DnsException ex) {
896899
// expected
897900
assertEquals(400, ex.code());
898901
// todo(mderka) test retry functionality when available
899902
}
900-
checkChangeComplete(ZONE1.name(), change.id());
903+
waitUntilComplete(ZONE1.name(), change.id());
901904
} finally {
902905
clear();
903906
}

0 commit comments

Comments
 (0)