下面列出了com.google.common.collect.FluentIterable#of ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Test
public void testSwapWithSharedBundes() {
BuildTarget sharedLibrary = BuildTargetFactory.newInstance("//foo:shared#shared");
BuildTarget bundleTarget = BuildTargetFactory.newInstance("//foo", "sharedFramework");
TargetNode<?> bundleNode =
AppleBundleBuilder.createBuilder(bundleTarget)
.setBinary(sharedLibrary)
.setExtension(Either.ofLeft(AppleBundleExtension.FRAMEWORK))
.setInfoPlist(FakeSourcePath.of("Info.plist"))
.setProductName(Optional.of("shared"))
.build();
TargetNode<?> sharedNode = AppleLibraryBuilder.createBuilder(sharedLibrary).build();
ImmutableMap<BuildTarget, TargetNode<?>> sharedLibraryToBundle =
ImmutableMap.of(sharedLibrary, bundleNode);
FluentIterable<TargetNode<?>> input = FluentIterable.of(sharedNode);
FluentIterable<TargetNode<?>> output =
XcodeNativeTargetGenerator.swapSharedLibrariesForBundles(input, sharedLibraryToBundle);
assertTrue(output.contains(bundleNode));
assertFalse(output.contains(sharedNode));
assertEquals(output.size(), 1);
}
@SafeVarargs
private static <T> Set<T> union(Set<T>... sets) {
FluentIterable<T> result = FluentIterable.of();
for (Set<T> set : sets) {
result = result.append(set);
}
return result.toSet();
}
@Test
public void whenCreatingFluentIterableFromArray_shouldContainAllUsers() throws Exception {
User[] usersArray = {new User(1L, "John", 45), new User(2L, "Max", 15)};
FluentIterable<User> users = FluentIterable.of(usersArray);
Assert.assertThat(users.size(), equalTo(2));
}
@Test
public void whenJoiningFluentIterableElements_shouldOutputAllUsers() throws Exception {
User[] usersArray = {new User(1L, "John", 45), new User(2L, "Max", 15)};
FluentIterable<User> users = FluentIterable.of(usersArray);
Assert.assertThat(users.join(Joiner.on("; ")),
equalTo("User{id=1, name=John, age=45}; User{id=2, name=Max, age=15}"));
}
@Test
public void modifiableAsJavaBean() throws Exception {
ImmutableSet<String> rwProperties =
ImmutableSet.of("primary", "id", "description", "names", "options", "extra");
FluentIterable<PropertyDescriptor> propertyDescriptors =
FluentIterable.of(
Introspector.getBeanInfo(ModifiableBeanFriendly.class)
.getPropertyDescriptors());
check(propertyDescriptors.transform(p -> p.getName()).toSet().containsAll(rwProperties));
for (PropertyDescriptor pd : propertyDescriptors) {
check(pd.getReadMethod()).notNull();
if (rwProperties.contains(pd.getName())) {
check(pd.getWriteMethod()).notNull();
}
}
ModifiableBeanFriendly bean = new ModifiableBeanFriendly();
bean.setPrimary(true);
bean.setDescription("description");
bean.setId(1000);
bean.setNames(ImmutableList.of("name"));
bean.addNames("name2");
bean.putOptions("foo", "bar");
// This bean can become immutable.
BeanFriendly immutableBean = bean.toImmutable();
check(immutableBean.isPrimary());
check(immutableBean.getDescription()).is("description");
check(immutableBean.getId()).is(1000);
check(immutableBean.getNames()).isOf("name", "name2");
check(immutableBean.getOptions()).is(ImmutableMap.of("foo", "bar"));
}