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; 18 19 import static org.junit.Assert.assertEquals; 20 import static org.junit.Assert.assertTrue; 21 22 import com.google.cloud.FieldSelector.Helper; 23 import com.google.common.collect.ImmutableList; 24 import java.util.List; 25 import org.junit.Test; 26 27 public class FieldSelectorHelperTest { 28 29 private static final FieldSelector FIELD1 = 30 new FieldSelector() { 31 @Override 32 public String getSelector() { 33 return "field1"; 34 } 35 }; 36 private static final FieldSelector FIELD2 = 37 new FieldSelector() { 38 @Override 39 public String getSelector() { 40 return "field2"; 41 } 42 }; 43 private static final FieldSelector FIELD3 = 44 new FieldSelector() { 45 @Override 46 public String getSelector() { 47 return "field3"; 48 } 49 }; 50 private static final String[] FIRST_LEVEL_FIELDS = {"firstLevel1", "firstLevel2"}; 51 private static final List<FieldSelector> REQUIRED_FIELDS = ImmutableList.of(FIELD1, FIELD2); 52 private static final String CONTAINER = "container"; 53 54 @Test testSelector()55 public void testSelector() { 56 String selector = Helper.selector(REQUIRED_FIELDS, FIELD3); 57 assertTrue(selector.contains("field1")); 58 assertTrue(selector.contains("field2")); 59 assertTrue(selector.contains("field3")); 60 assertEquals(20, selector.length()); 61 } 62 63 @Test testListSelector()64 public void testListSelector() { 65 String selector = Helper.listSelector(CONTAINER, REQUIRED_FIELDS, FIELD3); 66 assertTrue(selector.startsWith("nextPageToken,container(")); 67 assertTrue(selector.contains("field1")); 68 assertTrue(selector.contains("field2")); 69 assertTrue(selector.contains("field3")); 70 assertTrue(selector.endsWith(")")); 71 assertEquals(45, selector.length()); 72 } 73 74 @Test testListSelectorWithExtraFields()75 public void testListSelectorWithExtraFields() { 76 String selector = 77 Helper.listSelector(CONTAINER, REQUIRED_FIELDS, new FieldSelector[] {FIELD3}, "field4"); 78 assertTrue(selector.startsWith("nextPageToken,container(")); 79 assertTrue(selector.contains("field1")); 80 assertTrue(selector.contains("field2")); 81 assertTrue(selector.contains("field3")); 82 assertTrue(selector.contains("field4")); 83 assertTrue(selector.endsWith(")")); 84 assertEquals(52, selector.length()); 85 } 86 87 @Test testListSelectorWithFirstLevelFields()88 public void testListSelectorWithFirstLevelFields() { 89 String selector = 90 Helper.listSelector( 91 FIRST_LEVEL_FIELDS, CONTAINER, REQUIRED_FIELDS, new FieldSelector[] {FIELD3}, "field4"); 92 assertTrue(selector.contains("firstLevel1")); 93 assertTrue(selector.contains("firstLevel2")); 94 assertTrue(selector.contains("nextPageToken")); 95 assertTrue(selector.contains("container(")); 96 assertTrue(selector.contains("field1")); 97 assertTrue(selector.contains("field2")); 98 assertTrue(selector.contains("field3")); 99 assertTrue(selector.contains("field4")); 100 assertTrue(selector.endsWith(")")); 101 assertEquals(76, selector.length()); 102 } 103 } 104